Loading files menu transitions to game after loading

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2 2 years ago
parent 61f57f5fd8
commit c9be7c5c6a
  1. BIN
      C++ProjectTemplate
  2. 2
      SeasonI.h
  3. 36
      cutscene.h
  4. 6
      defines.h
  5. 20
      main.cpp

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;
}

@ -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

@ -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…
Cancel
Save