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 "defines.h"
|
||||
#include "flags.h"
|
||||
#include "cutscene.h"
|
||||
|
||||
using namespace olc;
|
||||
|
||||
@ -17,6 +16,7 @@ class Object;
|
||||
enum class ActionType;
|
||||
class Entity;
|
||||
class Effect;
|
||||
class Cutscene;
|
||||
namespace Battle{
|
||||
class Move;
|
||||
}
|
||||
|
36
cutscene.h
36
cutscene.h
@ -3,22 +3,18 @@
|
||||
#include "pixelGameEngine.h"
|
||||
#include "defines.h"
|
||||
#include "flags.h"
|
||||
#include "object.h"
|
||||
|
||||
#define CAMERA_MOVESPD 5
|
||||
#define BATTLE_CAMERA_MOVESPD 2.5
|
||||
|
||||
using namespace olc;
|
||||
|
||||
enum PriorityDirection{
|
||||
HORZ_FIRST,
|
||||
VERT_FIRST,
|
||||
BOTH
|
||||
};
|
||||
|
||||
namespace CutsceneName{
|
||||
enum Cutscene{
|
||||
TEST_CUTSCENE,
|
||||
TRANSFER_MAP_CUTSCENE,
|
||||
LOAD_FILE_CUTSCENE,
|
||||
};
|
||||
}
|
||||
|
||||
@ -38,6 +34,7 @@ enum class ActionType{
|
||||
MODIFY_OBJECT,
|
||||
LOAD_MAP,
|
||||
MOVE_PLAYER_OBJS,
|
||||
LOAD_FILE,
|
||||
};
|
||||
|
||||
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.
|
||||
|
||||
@ -383,4 +392,19 @@ class MapTransitionCutscene:public Cutscene{
|
||||
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
|
@ -68,6 +68,12 @@ enum class Direction{
|
||||
NORTHWEST,
|
||||
};
|
||||
|
||||
enum PriorityDirection{
|
||||
HORZ_FIRST,
|
||||
VERT_FIRST,
|
||||
BOTH
|
||||
};
|
||||
|
||||
|
||||
extern vd2d cameraPos;
|
||||
#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<SaveFileData,3> SAVE_FILE_DATA={{}};
|
||||
int CHAPTER_NUMBER=0;
|
||||
int SAVE_FILE_CURSOR=0;
|
||||
|
||||
/*
|
||||
[Choice1,Choice2,Choice3]
|
||||
@ -1378,7 +1379,7 @@ void SeasonI::updateGame(){
|
||||
}
|
||||
if (moved) {
|
||||
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) {
|
||||
for (int i=0;i<CURRENT_MAP->encounters.size();i++) {
|
||||
@ -1957,6 +1958,12 @@ void SeasonI::keyUpdates() {
|
||||
}
|
||||
|
||||
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:{
|
||||
if (UpPressed()) {
|
||||
SELECTED_TILE.y=SELECTED_TILE.y-1;
|
||||
@ -2755,8 +2762,9 @@ void SeasonI::drawGame(){
|
||||
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));
|
||||
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;
|
||||
case GameState::GAME_WORLD:
|
||||
case GameState::OVERWORLD_MENU:
|
||||
@ -3925,6 +3933,13 @@ void SeasonI::HandleCutscenes() {
|
||||
cameraPos=PARTY_MEMBER_OBJ[0]->GetPos()-cameraOffset;
|
||||
CurrentCutscene->AdvanceAction();
|
||||
}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++) {
|
||||
@ -5237,6 +5252,7 @@ void SeasonI::SetupCutscenes(){
|
||||
액션 ModifyObject(0,ANIMATIONS["player.png"],{5,5},MAGENTA),
|
||||
액션 MoveCutsceneObject(1,{320,64},1),})},
|
||||
{CutsceneName::TRANSFER_MAP_CUTSCENE,new MapTransitionCutscene()},
|
||||
{CutsceneName::LOAD_FILE_CUTSCENE,new LoadFileCutscene()},
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user