|
|
|
@ -19,6 +19,7 @@ enum CUTSCENE{ |
|
|
|
|
PAN_DOME, |
|
|
|
|
PAUSE_TO_CUTSCENE_3, |
|
|
|
|
CUTSCENE_4, |
|
|
|
|
TRANSITION_CUTSCENE, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum WEATHER_POWER{ |
|
|
|
@ -34,7 +35,7 @@ enum WEATHER_POWER{ |
|
|
|
|
#define ALPHA_SCREEN1 128 |
|
|
|
|
#define ALPHA_SCREEN2 20 |
|
|
|
|
#define FADE_SPD 6 |
|
|
|
|
#define MOVE_SPD 0.2 |
|
|
|
|
#define MOVE_SPD 0.075 |
|
|
|
|
#define MESSAGE_SCROLL_WAIT_SPD 2 //Number of frames to wait.
|
|
|
|
|
#define BATTLE_CAMERA_SCROLL_SPD 0.05 //How fast to scroll over to the battle.
|
|
|
|
|
|
|
|
|
@ -113,6 +114,8 @@ public: |
|
|
|
|
sAppName = "Seasons of Loneliness"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define STARTING_MAP "assets/maps/map2" |
|
|
|
|
|
|
|
|
|
public: |
|
|
|
|
GAMESTATE GAME_STATE=GAMEWORLD; |
|
|
|
|
int textInd=0; |
|
|
|
@ -123,12 +126,13 @@ public: |
|
|
|
|
int frameCount=0; |
|
|
|
|
float elapsedTime=0; |
|
|
|
|
const float TARGET_RATE = 1/60.0; |
|
|
|
|
std::string MAP_NAME = ""; |
|
|
|
|
std::string CUTSCENE_CONSOLE_TEXT = ""; |
|
|
|
|
int**MAP=NULL; |
|
|
|
|
int MAP_WIDTH=-1; |
|
|
|
|
int MAP_HEIGHT=-1; |
|
|
|
|
olc::Decal*TILES; |
|
|
|
|
float PLAYER_COORDS[2] = {21,35}; |
|
|
|
|
float PLAYER_COORDS[2] = {14,4}; |
|
|
|
|
std::vector<Object> OBJECTS; |
|
|
|
|
bool CUTSCENE_ACTIVE=false; |
|
|
|
|
CUTSCENE CURRENT_CUTSCENE=NONE; |
|
|
|
@ -294,7 +298,7 @@ public: |
|
|
|
|
BASE_OBJECTS["METEORSHOWER_NODE"]=new ObjectLoadInfo(POWER_METEOR_SHOWER_DECAL,&POWER_METEOR_SHOWER_ANIMATION); |
|
|
|
|
BASE_OBJECTS["METEORSTORM_NODE"]=new ObjectLoadInfo(POWER_METEOR_STORM_DECAL,&POWER_METEOR_STORM_ANIMATION); |
|
|
|
|
BASE_OBJECTS["SNOWSTORM_NODE"]=new ObjectLoadInfo(POWER_SNOWSTORM_DECAL,&POWER_SNOWSTORM_ANIMATION); |
|
|
|
|
LoadMap("assets/maps/map1"); |
|
|
|
|
LoadMap(STARTING_MAP); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -393,6 +397,15 @@ public: |
|
|
|
|
GAME_STATE=GAMEWORLD; |
|
|
|
|
}break; |
|
|
|
|
} |
|
|
|
|
switch (CURRENT_CUTSCENE) { |
|
|
|
|
case TRANSITION_CUTSCENE:{ |
|
|
|
|
LoadMap("assets/maps/map1"); |
|
|
|
|
PLAYER_COORDS[0]=40; |
|
|
|
|
PLAYER_COORDS[1]=37; |
|
|
|
|
fadeIn(); |
|
|
|
|
EndCutscene(); |
|
|
|
|
}break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void fadeInCompleted() { |
|
|
|
@ -404,7 +417,7 @@ public: |
|
|
|
|
switch (scene) { |
|
|
|
|
case PAN_DOME:{ |
|
|
|
|
PLAYER_COORDS[0]=14; |
|
|
|
|
PLAYER_COORDS[1]=18+(64/2/32); |
|
|
|
|
PLAYER_COORDS[1]=35+(64/2/32); |
|
|
|
|
}break; |
|
|
|
|
case PAUSE_TO_CUTSCENE_3:{ |
|
|
|
|
CUTSCENE_CONSOLE_TEXT.clear(); |
|
|
|
@ -527,9 +540,13 @@ public: |
|
|
|
|
cout<<"Increased SNOWSTORM power inventory count by "<<amountGained<<".\n"; |
|
|
|
|
OBJECTS.erase(OBJECTS.begin()+i--); |
|
|
|
|
} |
|
|
|
|
if (obj.name.compare("EXIT")==0&&collidesWithPlayer(obj)) { |
|
|
|
|
fadeOut(); |
|
|
|
|
PlayCutscene(TRANSITION_CUTSCENE); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!IN_BATTLE_ENCOUNTER) { |
|
|
|
|
if (!IN_BATTLE_ENCOUNTER&&MAP_NAME.compare("assets/maps/map1")==0) { |
|
|
|
|
for (int i=0;i<ENCOUNTERS.size();i++) { |
|
|
|
|
Encounter enc = ENCOUNTERS.at(i); |
|
|
|
|
if (collidesWithPlayer(enc)) { |
|
|
|
@ -558,7 +575,7 @@ public: |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (PLAYER_COORDS[0]!=TARGET_COORDS_Y) { |
|
|
|
|
if (PLAYER_COORDS[1]!=TARGET_COORDS_Y) { |
|
|
|
|
if (PLAYER_COORDS[1]<TARGET_COORDS_Y) { |
|
|
|
|
PLAYER_COORDS[1]+=BATTLE_CAMERA_SCROLL_SPD; |
|
|
|
|
if (PLAYER_COORDS[1]>TARGET_COORDS_Y) { |
|
|
|
@ -849,6 +866,7 @@ public: |
|
|
|
|
void LoadMap(char*mapName) { |
|
|
|
|
std::ifstream f(mapName); |
|
|
|
|
std::string data; |
|
|
|
|
MAP_NAME=mapName; |
|
|
|
|
MAP_WIDTH=MAP_HEIGHT=-1; |
|
|
|
|
if (MAP!=NULL) { |
|
|
|
|
for (int y=0;y<MAP_HEIGHT;y++) { |
|
|
|
@ -921,8 +939,13 @@ public: |
|
|
|
|
return PLAYER_COORDS[0]>=obj.x&&PLAYER_COORDS[0]<=obj.x+obj.anim->width/32.0&& |
|
|
|
|
PLAYER_COORDS[1]>=obj.y&&PLAYER_COORDS[1]<=obj.y+obj.anim->height/32.0; |
|
|
|
|
} else { |
|
|
|
|
return PLAYER_COORDS[0]>=obj.x&&PLAYER_COORDS[0]<=obj.x+obj.spr->sprite->width/32.0&& |
|
|
|
|
PLAYER_COORDS[1]>=obj.y&&PLAYER_COORDS[1]<=obj.y+obj.spr->sprite->height/32.0; |
|
|
|
|
if (obj.spr==NULL) { |
|
|
|
|
return PLAYER_COORDS[0]>=obj.x&&PLAYER_COORDS[0]<=obj.x+1&& |
|
|
|
|
PLAYER_COORDS[1]>=obj.y&&PLAYER_COORDS[1]<=obj.y+1; |
|
|
|
|
} else { |
|
|
|
|
return PLAYER_COORDS[0]>=obj.x&&PLAYER_COORDS[0]<=obj.x+obj.spr->sprite->width/32.0&& |
|
|
|
|
PLAYER_COORDS[1]>=obj.y&&PLAYER_COORDS[1]<=obj.y+obj.spr->sprite->height/32.0; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|