Cutscene display text sizing corrected

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
sigonasr2 2022-11-05 20:16:37 -07:00
parent f74aa855c0
commit d67ffa3e7f
4 changed files with 39 additions and 0 deletions

Binary file not shown.

View File

@ -37,6 +37,7 @@ enum class ActionType{
MOVE_PLAYER_OBJS, MOVE_PLAYER_OBJS,
LOAD_FILE, LOAD_FILE,
SET_FLAG, SET_FLAG,
SET_CUTSCENE_DISPLAY_TEXT,
}; };
class CutsceneAction{ class CutsceneAction{
@ -317,6 +318,23 @@ class SetFlag:public CutsceneAction{
} }
}; };
class SetCutsceneDisplayText:public CutsceneAction{
protected:
std::string text;
int delay;
public:
//delay in frames
SetCutsceneDisplayText(std::string text,int delay)
:text(text),delay(delay) {}
ActionType GetActionType() override{return ActionType::SET_CUTSCENE_DISPLAY_TEXT;}
std::string GetCutsceneText(){
return text;
}
int GetDelay() {
return delay;
}
};
/* /*
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.

View File

@ -177,6 +177,8 @@ std::array<std::string,7> PARTY_MEMBER_NAMES={"PLAYER","NESS","PAULA","JEFF","AN
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; int SAVE_FILE_CURSOR=0;
std::string CUTSCENE_DISPLAY_TEXT="";
int CUTSCENE_DISPLAY_TEXT_DELAY_TIME=0;
/* /*
[Choice1,Choice2,Choice3] [Choice1,Choice2,Choice3]
@ -3323,6 +3325,10 @@ void SeasonI::drawGame(){
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,64,128)); FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,64,128));
} }
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,0,(int)CUTSCENE_FADE_VALUE)); FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,0,(int)CUTSCENE_FADE_VALUE));
if (GAME_STATE==GameState::DISPLAY_CUTSCENE_TEXT) {
vi2d textSize=GetTextSizeProp(Wrap(CUTSCENE_DISPLAY_TEXT,WIDTH,true,{2,2}))*2;
DrawStringPropDecal(GetScreenSize()/2-textSize/2,Wrap(CUTSCENE_DISPLAY_TEXT,WIDTH,true,{2,2}),WHITE,{2,2});
}
}; };
ActionType SeasonI::GetCurrentCutsceneAction() { ActionType SeasonI::GetCurrentCutsceneAction() {
@ -4013,6 +4019,18 @@ void SeasonI::HandleCutscenes() {
SetGameFlag(action->GetFlag(),action->GetValue()); SetGameFlag(action->GetFlag(),action->GetValue());
CurrentCutscene->AdvanceAction(); CurrentCutscene->AdvanceAction();
}break; }break;
case ActionType::SET_CUTSCENE_DISPLAY_TEXT:{
SetCutsceneDisplayText*action=(SetCutsceneDisplayText*)CurrentCutscene->GetAction();
if (CUTSCENE_DISPLAY_TEXT_DELAY_TIME==0) {
CUTSCENE_DISPLAY_TEXT=action->GetCutsceneText();
CUTSCENE_DISPLAY_TEXT_DELAY_TIME=action->GetDelay();
GAME_STATE=GameState::DISPLAY_CUTSCENE_TEXT;
} else
if (--CUTSCENE_DISPLAY_TEXT_DELAY_TIME==0) {
CurrentCutscene->AdvanceAction();
GAME_STATE=GameState::GAME_WORLD;
}
}break;
} }
for (int i=0;i<CUTSCENE_QUEUE.size();i++) { for (int i=0;i<CUTSCENE_QUEUE.size();i++) {
@ -5337,10 +5355,12 @@ void SeasonI::SetupCutscenes(){
FadeAsync(true), FadeAsync(true),
PanCamera({64+128,512-128},BOTH,0.5), PanCamera({64+128,512-128},BOTH,0.5),
Fade(), Fade(),
SetCutsceneDisplayText("Eagleland...",60*5),
PanCamera({360,256},BOTH,999), PanCamera({360,256},BOTH,999),
FadeAsync(true), FadeAsync(true),
PanCamera({360-128,256-128},BOTH,0.5), PanCamera({360-128,256-128},BOTH,0.5),
Fade(), Fade(),
SetCutsceneDisplayText("A faraway region",60*5),
})}, })},
}; };
} }

View File

@ -24,6 +24,7 @@ namespace GameState{
MAP_SELECT, MAP_SELECT,
MAP_POSITION_SELECT, MAP_POSITION_SELECT,
FILE_LOAD_SELECT, FILE_LOAD_SELECT,
DISPLAY_CUTSCENE_TEXT,
}; };
} }