|
|
@ -75,7 +75,6 @@ int messageBoxStopMarker=0; //End of text display for current printout. |
|
|
|
int messageBoxFrameWaitTime=1; |
|
|
|
int messageBoxFrameWaitTime=1; |
|
|
|
bool messageBoxLoad=false; //Set to true when ready to load a message in.
|
|
|
|
bool messageBoxLoad=false; //Set to true when ready to load a message in.
|
|
|
|
std::map<int,vi2d> additionalChars={}; |
|
|
|
std::map<int,vi2d> additionalChars={}; |
|
|
|
Cutscene*TestCutscene=nullptr; |
|
|
|
|
|
|
|
Cutscene*CurrentCutscene=nullptr; |
|
|
|
Cutscene*CurrentCutscene=nullptr; |
|
|
|
ActionType CurrentAction=ActionType::NONE; |
|
|
|
ActionType CurrentAction=ActionType::NONE; |
|
|
|
double CUTSCENE_FADE_VALUE=0; |
|
|
|
double CUTSCENE_FADE_VALUE=0; |
|
|
@ -203,6 +202,7 @@ std::vector<Particle*> PARTICLES={}; |
|
|
|
std::vector<DamageNumber*> DAMAGE_NUMBERS={}; |
|
|
|
std::vector<DamageNumber*> DAMAGE_NUMBERS={}; |
|
|
|
std::map<std::pair<int,int>,vd2d> MOVEMENT_GRID={}; |
|
|
|
std::map<std::pair<int,int>,vd2d> MOVEMENT_GRID={}; |
|
|
|
std::map<ItemName,Item*>ITEMLIST={}; |
|
|
|
std::map<ItemName,Item*>ITEMLIST={}; |
|
|
|
|
|
|
|
std::map<CutsceneName::Cutscene,Cutscene*> CUTSCENES={}; |
|
|
|
vi2d SELECTED_MOVE_SQUARE={}; |
|
|
|
vi2d SELECTED_MOVE_SQUARE={}; |
|
|
|
|
|
|
|
|
|
|
|
FountainEffect*FOUNTAIN_EFFECT=nullptr; |
|
|
|
FountainEffect*FOUNTAIN_EFFECT=nullptr; |
|
|
@ -234,6 +234,7 @@ bool SeasonI::OnUserCreate(){ |
|
|
|
SetupObjectInfo(); |
|
|
|
SetupObjectInfo(); |
|
|
|
SetupEncounters(); |
|
|
|
SetupEncounters(); |
|
|
|
SetupBattleProperties(); |
|
|
|
SetupBattleProperties(); |
|
|
|
|
|
|
|
SetupCutscenes(); |
|
|
|
SetGameFlag(Flag::TEST_FLAG1,false); |
|
|
|
SetGameFlag(Flag::TEST_FLAG1,false); |
|
|
|
SetGameFlag(Flag::TEST_FLAG2,false); |
|
|
|
SetGameFlag(Flag::TEST_FLAG2,false); |
|
|
|
SetGameFlag(Flag::TEST_FLAG3,false); |
|
|
|
SetGameFlag(Flag::TEST_FLAG3,false); |
|
|
@ -252,23 +253,6 @@ bool SeasonI::OnUserCreate(){ |
|
|
|
//OBJ_INFO["PLAYER"]=PLAYER_ANIMATION;
|
|
|
|
//OBJ_INFO["PLAYER"]=PLAYER_ANIMATION;
|
|
|
|
LoadMap(CURRENT_MAP); |
|
|
|
LoadMap(CURRENT_MAP); |
|
|
|
|
|
|
|
|
|
|
|
TestCutscene=new Cutscene({ |
|
|
|
|
|
|
|
액션 Fade(), |
|
|
|
|
|
|
|
액션 CreateObjects({ |
|
|
|
|
|
|
|
new Standard_Obj(PLAYER,"player",{64,64},ANIMATIONS["player.png"],{1,1},MAGENTA), |
|
|
|
|
|
|
|
new Standard_Obj(PLAYER,"player",{136,136},ANIMATIONS["player.png"],{1,1},RED), |
|
|
|
|
|
|
|
new Standard_Obj(PLAYER,"player",{96,96},ANIMATIONS["player.png"],{1,1},DARK_GREEN), |
|
|
|
|
|
|
|
}), |
|
|
|
|
|
|
|
액션 Fade(true), |
|
|
|
|
|
|
|
액션 SetFlagWhenCutsceneEnds(Flag::TEST_FLAG1), |
|
|
|
|
|
|
|
액션 PanCamera({128,128},BOTH,1), |
|
|
|
|
|
|
|
액션 MoveCutsceneObjectAsync(1,{80,64},5), |
|
|
|
|
|
|
|
액션 PanCamera({64,0},BOTH), |
|
|
|
|
|
|
|
액션 DialogBoxAsync(R"(Hello! |
|
|
|
|
|
|
|
This is a test message that lets us trigger straight from a cutscene! Cool!)"), |
|
|
|
|
|
|
|
액션 ModifyObject(0,ANIMATIONS["player.png"],{5,5},MAGENTA), |
|
|
|
|
|
|
|
액션 MoveCutsceneObject(1,{320,64},1),}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AddItemToPlayerInventory(ItemName::LIGHT_JACKET); |
|
|
|
AddItemToPlayerInventory(ItemName::LIGHT_JACKET); |
|
|
|
AddItemToPlayerInventory(ItemName::LIGHT_JACKET); |
|
|
|
AddItemToPlayerInventory(ItemName::LIGHT_JACKET); |
|
|
|
AddItemToPlayerInventory(ItemName::HEAVY_JACKET); |
|
|
|
AddItemToPlayerInventory(ItemName::HEAVY_JACKET); |
|
|
@ -3770,6 +3754,12 @@ void SeasonI::HandleCutscenes() { |
|
|
|
obj->animationSpd=action->GetAnimationSpeed(); |
|
|
|
obj->animationSpd=action->GetAnimationSpeed(); |
|
|
|
CurrentCutscene->AdvanceAction(); |
|
|
|
CurrentCutscene->AdvanceAction(); |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
|
|
|
|
case ActionType::LOAD_MAP:{ |
|
|
|
|
|
|
|
class LoadMap*action=(class LoadMap*)CurrentCutscene->GetAction(); |
|
|
|
|
|
|
|
Map*map=action->GetTargetMap(); |
|
|
|
|
|
|
|
LoadMap(map); |
|
|
|
|
|
|
|
CurrentCutscene->AdvanceAction(); |
|
|
|
|
|
|
|
}break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (int i=0;i<CUTSCENE_QUEUE.size();i++) { |
|
|
|
for (int i=0;i<CUTSCENE_QUEUE.size();i++) { |
|
|
@ -5052,6 +5042,33 @@ void SeasonI::ChoiceMade(int choice) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SeasonI::StartCutscene(Cutscene*cutscene) { |
|
|
|
|
|
|
|
CurrentCutscene=cutscene; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SeasonI::SetupCutscenes(){ |
|
|
|
|
|
|
|
CUTSCENES={ |
|
|
|
|
|
|
|
{CutsceneName::TEST_CUTSCENE,new Cutscene({ |
|
|
|
|
|
|
|
액션 Fade(), |
|
|
|
|
|
|
|
액션 CreateObjects({ |
|
|
|
|
|
|
|
new Standard_Obj(PLAYER,"player",{64,64},ANIMATIONS["player.png"],{1,1},MAGENTA), |
|
|
|
|
|
|
|
new Standard_Obj(PLAYER,"player",{136,136},ANIMATIONS["player.png"],{1,1},RED), |
|
|
|
|
|
|
|
new Standard_Obj(PLAYER,"player",{96,96},ANIMATIONS["player.png"],{1,1},DARK_GREEN), |
|
|
|
|
|
|
|
}), |
|
|
|
|
|
|
|
액션 Fade(true), |
|
|
|
|
|
|
|
액션 SetFlagWhenCutsceneEnds(Flag::TEST_FLAG1), |
|
|
|
|
|
|
|
액션 PanCamera({128,128},BOTH,1), |
|
|
|
|
|
|
|
액션 MoveCutsceneObjectAsync(1,{80,64},5), |
|
|
|
|
|
|
|
액션 PanCamera({64,0},BOTH), |
|
|
|
|
|
|
|
액션 DialogBoxAsync(R"(Hello! |
|
|
|
|
|
|
|
This is a test message that lets us trigger straight from a cutscene! Cool!)"), |
|
|
|
|
|
|
|
액션 ModifyObject(0,ANIMATIONS["player.png"],{5,5},MAGENTA), |
|
|
|
|
|
|
|
액션 MoveCutsceneObject(1,{320,64},1),})}, |
|
|
|
|
|
|
|
{CutsceneName::TRANSFER_MAP_TWOSON_CUTSCENE,new MapTransitionCutscene(MAPS[MapName::TWOSON])}, |
|
|
|
|
|
|
|
{CutsceneName::TRANSFER_MAP_ONETT_CUTSCENE,new MapTransitionCutscene(MAPS[MapName::ONETT])}, |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifndef TEST_SUITE |
|
|
|
#ifndef TEST_SUITE |
|
|
|
int main() |
|
|
|
int main() |
|
|
|
{ |
|
|
|
{ |
|
|
|