generated from sigonasr2/CPlusPlusProjectTemplate
Loading files menu transitions to game after loading
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
61f57f5fd8
commit
c9be7c5c6a
Binary file not shown.
@ -5,7 +5,6 @@
|
|||||||
#include "soundwaveEngine.h"
|
#include "soundwaveEngine.h"
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
#include "flags.h"
|
#include "flags.h"
|
||||||
#include "cutscene.h"
|
|
||||||
|
|
||||||
using namespace olc;
|
using namespace olc;
|
||||||
|
|
||||||
@ -17,6 +16,7 @@ class Object;
|
|||||||
enum class ActionType;
|
enum class ActionType;
|
||||||
class Entity;
|
class Entity;
|
||||||
class Effect;
|
class Effect;
|
||||||
|
class Cutscene;
|
||||||
namespace Battle{
|
namespace Battle{
|
||||||
class Move;
|
class Move;
|
||||||
}
|
}
|
||||||
|
|||||||
36
cutscene.h
36
cutscene.h
@ -3,22 +3,18 @@
|
|||||||
#include "pixelGameEngine.h"
|
#include "pixelGameEngine.h"
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
#include "flags.h"
|
#include "flags.h"
|
||||||
|
#include "object.h"
|
||||||
|
|
||||||
#define CAMERA_MOVESPD 5
|
#define CAMERA_MOVESPD 5
|
||||||
#define BATTLE_CAMERA_MOVESPD 2.5
|
#define BATTLE_CAMERA_MOVESPD 2.5
|
||||||
|
|
||||||
using namespace olc;
|
using namespace olc;
|
||||||
|
|
||||||
enum PriorityDirection{
|
|
||||||
HORZ_FIRST,
|
|
||||||
VERT_FIRST,
|
|
||||||
BOTH
|
|
||||||
};
|
|
||||||
|
|
||||||
namespace CutsceneName{
|
namespace CutsceneName{
|
||||||
enum Cutscene{
|
enum Cutscene{
|
||||||
TEST_CUTSCENE,
|
TEST_CUTSCENE,
|
||||||
TRANSFER_MAP_CUTSCENE,
|
TRANSFER_MAP_CUTSCENE,
|
||||||
|
LOAD_FILE_CUTSCENE,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,6 +34,7 @@ enum class ActionType{
|
|||||||
MODIFY_OBJECT,
|
MODIFY_OBJECT,
|
||||||
LOAD_MAP,
|
LOAD_MAP,
|
||||||
MOVE_PLAYER_OBJS,
|
MOVE_PLAYER_OBJS,
|
||||||
|
LOAD_FILE,
|
||||||
};
|
};
|
||||||
|
|
||||||
class CutsceneAction{
|
class CutsceneAction{
|
||||||
@ -290,6 +287,18 @@ class MovePlayerObjects:public CutsceneAction{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class LoadGame:public CutsceneAction{
|
||||||
|
protected:
|
||||||
|
int saveslot;
|
||||||
|
public:
|
||||||
|
LoadGame(int saveslot)
|
||||||
|
:saveslot(saveslot) {}
|
||||||
|
ActionType GetActionType() override{return ActionType::LOAD_FILE;}
|
||||||
|
int GetSaveFileSlot(){
|
||||||
|
return saveslot;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
To use this class, specify multiple actions back-to-back, filling their appropriate arguments.
|
To use this class, specify multiple actions back-to-back, filling their appropriate arguments.
|
||||||
|
|
||||||
@ -383,4 +392,19 @@ class MapTransitionCutscene:public Cutscene{
|
|||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern std::array<NPC_Obj*,4> PARTY_MEMBER_OBJ;
|
||||||
|
|
||||||
|
class LoadFileCutscene:public Cutscene{
|
||||||
|
public:
|
||||||
|
LoadFileCutscene()
|
||||||
|
:Cutscene({
|
||||||
|
액션 Fade(),
|
||||||
|
액션 LoadGame(0),
|
||||||
|
액션 Fade(true),
|
||||||
|
}){}
|
||||||
|
std::vector<CutsceneAction*>GetActions(){
|
||||||
|
return actions;
|
||||||
|
}
|
||||||
|
};
|
||||||
#endif
|
#endif
|
||||||
@ -68,6 +68,12 @@ enum class Direction{
|
|||||||
NORTHWEST,
|
NORTHWEST,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum PriorityDirection{
|
||||||
|
HORZ_FIRST,
|
||||||
|
VERT_FIRST,
|
||||||
|
BOTH
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
extern vd2d cameraPos;
|
extern vd2d cameraPos;
|
||||||
#endif
|
#endif
|
||||||
20
main.cpp
20
main.cpp
@ -176,6 +176,7 @@ Map* ORIGINATING_MAP=nullptr;
|
|||||||
std::array<std::string,7> PARTY_MEMBER_NAMES={"PLAYER","NESS","PAULA","JEFF","ANNA","KING","POO"};
|
std::array<std::string,7> PARTY_MEMBER_NAMES={"PLAYER","NESS","PAULA","JEFF","ANNA","KING","POO"};
|
||||||
std::array<SaveFileData,3> SAVE_FILE_DATA={{}};
|
std::array<SaveFileData,3> SAVE_FILE_DATA={{}};
|
||||||
int CHAPTER_NUMBER=0;
|
int CHAPTER_NUMBER=0;
|
||||||
|
int SAVE_FILE_CURSOR=0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
[Choice1,Choice2,Choice3]
|
[Choice1,Choice2,Choice3]
|
||||||
@ -1378,7 +1379,7 @@ void SeasonI::updateGame(){
|
|||||||
}
|
}
|
||||||
if (moved) {
|
if (moved) {
|
||||||
const vi2d cameraOffset={WIDTH/2,HEIGHT/2};
|
const vi2d cameraOffset={WIDTH/2,HEIGHT/2};
|
||||||
cameraPos=PARTY_MEMBER_OBJ[0]->GetPos()-cameraOffset;
|
cameraPos=PARTY_MEMBER_OBJ[0]->GetPos()+PARTY_MEMBER_OBJ[0]->originPoint/2-cameraOffset;
|
||||||
}
|
}
|
||||||
if (moved&&BATTLE_ENCOUNTER==nullptr) {
|
if (moved&&BATTLE_ENCOUNTER==nullptr) {
|
||||||
for (int i=0;i<CURRENT_MAP->encounters.size();i++) {
|
for (int i=0;i<CURRENT_MAP->encounters.size();i++) {
|
||||||
@ -1957,6 +1958,12 @@ void SeasonI::keyUpdates() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (GAME_STATE) {
|
switch (GAME_STATE) {
|
||||||
|
case GameState::FILE_LOAD_SELECT:{
|
||||||
|
CursorControl(SAVE_FILE_CURSOR,3);
|
||||||
|
if (ACTIONKEYPRESSED) {
|
||||||
|
StartCutscene(CUTSCENES[CutsceneName::LOAD_FILE_CUTSCENE]);
|
||||||
|
}
|
||||||
|
}break;
|
||||||
case GameState::TILE_SELECT:{
|
case GameState::TILE_SELECT:{
|
||||||
if (UpPressed()) {
|
if (UpPressed()) {
|
||||||
SELECTED_TILE.y=SELECTED_TILE.y-1;
|
SELECTED_TILE.y=SELECTED_TILE.y-1;
|
||||||
@ -2755,8 +2762,9 @@ void SeasonI::drawGame(){
|
|||||||
case GameState::FILE_LOAD_SELECT:{
|
case GameState::FILE_LOAD_SELECT:{
|
||||||
DrawDialogBox({4,4},{(int)(WIDTH-8),HEIGHT/4},Pixel(70, 33, 105,220),Pixel(62, 54, 69,220),Pixel(185, 148, 255,220));
|
DrawDialogBox({4,4},{(int)(WIDTH-8),HEIGHT/4},Pixel(70, 33, 105,220),Pixel(62, 54, 69,220),Pixel(185, 148, 255,220));
|
||||||
for (int i=0;i<3;i++) {
|
for (int i=0;i<3;i++) {
|
||||||
DrawStringDecal({8.f,(float)(8+i*12)},SAVE_FILE_DATA[i].playerName+" Chapter "+std::to_string(SAVE_FILE_DATA[i].chapterNumber)+" "+SAVE_FILE_DATA[i].playTime);
|
DrawStringDecal({16.f,(float)(12+i*16)},SAVE_FILE_DATA[i].playerName+" Chapter "+std::to_string(SAVE_FILE_DATA[i].chapterNumber)+" "+SAVE_FILE_DATA[i].playTime);
|
||||||
}
|
}
|
||||||
|
DrawRotatedDecal({10.F,(float)16+SAVE_FILE_CURSOR*16},SPRITES["cursor.png"],0,{4,4});
|
||||||
}break;
|
}break;
|
||||||
case GameState::GAME_WORLD:
|
case GameState::GAME_WORLD:
|
||||||
case GameState::OVERWORLD_MENU:
|
case GameState::OVERWORLD_MENU:
|
||||||
@ -3925,6 +3933,13 @@ void SeasonI::HandleCutscenes() {
|
|||||||
cameraPos=PARTY_MEMBER_OBJ[0]->GetPos()-cameraOffset;
|
cameraPos=PARTY_MEMBER_OBJ[0]->GetPos()-cameraOffset;
|
||||||
CurrentCutscene->AdvanceAction();
|
CurrentCutscene->AdvanceAction();
|
||||||
}break;
|
}break;
|
||||||
|
case ActionType::LOAD_FILE:{
|
||||||
|
LoadGameSaveData(SAVE_FILE_CURSOR);
|
||||||
|
const vi2d cameraOffset={WIDTH/2,HEIGHT/2};
|
||||||
|
cameraPos=PARTY_MEMBER_OBJ[0]->GetPos()+PARTY_MEMBER_OBJ[0]->originPoint/2-cameraOffset;
|
||||||
|
GAME_STATE=GameState::GAME_WORLD;
|
||||||
|
CurrentCutscene->AdvanceAction();
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i=0;i<CUTSCENE_QUEUE.size();i++) {
|
for (int i=0;i<CUTSCENE_QUEUE.size();i++) {
|
||||||
@ -5237,6 +5252,7 @@ void SeasonI::SetupCutscenes(){
|
|||||||
액션 ModifyObject(0,ANIMATIONS["player.png"],{5,5},MAGENTA),
|
액션 ModifyObject(0,ANIMATIONS["player.png"],{5,5},MAGENTA),
|
||||||
액션 MoveCutsceneObject(1,{320,64},1),})},
|
액션 MoveCutsceneObject(1,{320,64},1),})},
|
||||||
{CutsceneName::TRANSFER_MAP_CUTSCENE,new MapTransitionCutscene()},
|
{CutsceneName::TRANSFER_MAP_CUTSCENE,new MapTransitionCutscene()},
|
||||||
|
{CutsceneName::LOAD_FILE_CUTSCENE,new LoadFileCutscene()},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user