generated from sigonasr2/CPlusPlusProjectTemplate
corrected star field pixel issues
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
913e2d48e5
commit
b1552bf57a
@ -19,6 +19,7 @@ using namespace olc;
|
|||||||
#define SKIP_CHAPTER2 true
|
#define SKIP_CHAPTER2 true
|
||||||
#define SKIP_STORYBOOK true
|
#define SKIP_STORYBOOK true
|
||||||
#define SKIP_CHAPTER3 true
|
#define SKIP_CHAPTER3 true
|
||||||
|
#define SKIP_LAUNCHPAD true
|
||||||
|
|
||||||
#define STARTING_MAP MAP_1
|
#define STARTING_MAP MAP_1
|
||||||
#define STARTING_STATE CUTSCENE_3
|
#define STARTING_STATE CUTSCENE_3
|
||||||
@ -59,6 +60,7 @@ enum GAMESTATE{
|
|||||||
DISPLAY_BOOK,
|
DISPLAY_BOOK,
|
||||||
DISPLAY_BOOK2,
|
DISPLAY_BOOK2,
|
||||||
CUTSCENE_6,
|
CUTSCENE_6,
|
||||||
|
IN_SPACE,
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace cutscene{
|
namespace cutscene{
|
||||||
@ -97,6 +99,7 @@ namespace cutscene{
|
|||||||
LAUNCHPAD_OPEN,
|
LAUNCHPAD_OPEN,
|
||||||
LAUNCHPAD_PREPARE,
|
LAUNCHPAD_PREPARE,
|
||||||
READY_TO_BOARD,
|
READY_TO_BOARD,
|
||||||
|
INTRUDERS_DETECTED,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,6 +145,7 @@ namespace gameflag{
|
|||||||
ROCKET_LAUNCH_READY,
|
ROCKET_LAUNCH_READY,
|
||||||
COLLECTED_ITEMS_IN_DOME,
|
COLLECTED_ITEMS_IN_DOME,
|
||||||
BOARDED_ROCKET,
|
BOARDED_ROCKET,
|
||||||
|
INTRUDER_DETECTED,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -630,8 +634,10 @@ public:
|
|||||||
Pixel FOREGROUND_EFFECT_COLOR;
|
Pixel FOREGROUND_EFFECT_COLOR;
|
||||||
Pixel ORIGINAL_FOREGROUND_EFFECT_COLOR;
|
Pixel ORIGINAL_FOREGROUND_EFFECT_COLOR;
|
||||||
int PIXEL_LIMIT=0;
|
int PIXEL_LIMIT=0;
|
||||||
vf2d PIXEL_POS;
|
vf2d PIXEL_POS={0,0};
|
||||||
vf2d PIXEL_SIZE;
|
vf2d PIXEL_SIZE={WIDTH,HEIGHT};
|
||||||
|
vf2d STAR_POS={0,0};
|
||||||
|
vf2d STAR_SIZE={WIDTH,HEIGHT};
|
||||||
float PIXEL_EFFECT_TRANSPARENCY=0;
|
float PIXEL_EFFECT_TRANSPARENCY=0;
|
||||||
int CUTSCENE_OBJ_COUNT=0;
|
int CUTSCENE_OBJ_COUNT=0;
|
||||||
int TERMINAL_SELECTED_CHAR=0;
|
int TERMINAL_SELECTED_CHAR=0;
|
||||||
@ -648,6 +654,7 @@ public:
|
|||||||
int BATTLE_REASON_CODE=-1;
|
int BATTLE_REASON_CODE=-1;
|
||||||
bool BATTLE_DROUGHT_ACTIVE=false;
|
bool BATTLE_DROUGHT_ACTIVE=false;
|
||||||
bool ROCKET_BOARD_OPTION=false;
|
bool ROCKET_BOARD_OPTION=false;
|
||||||
|
int LOCKED_IN_DELAY=0;
|
||||||
|
|
||||||
Map*MAP_1=new Map("map1");
|
Map*MAP_1=new Map("map1");
|
||||||
Map*MAP_2=new Map("map2");
|
Map*MAP_2=new Map("map2");
|
||||||
@ -674,6 +681,7 @@ public:
|
|||||||
Encounter ENCOUNTER_SANDWORM_1;
|
Encounter ENCOUNTER_SANDWORM_1;
|
||||||
Encounter ENCOUNTER_MEGAMOTH;
|
Encounter ENCOUNTER_MEGAMOTH;
|
||||||
Encounter ENCOUNTER_SNAKEPACK;
|
Encounter ENCOUNTER_SNAKEPACK;
|
||||||
|
Encounter ENCOUNTER_Y_Y;
|
||||||
Encounter CURRENT_ENCOUNTER;
|
Encounter CURRENT_ENCOUNTER;
|
||||||
std::vector<WEATHER_POWER*>MOVESET_SPIDEY;
|
std::vector<WEATHER_POWER*>MOVESET_SPIDEY;
|
||||||
std::vector<WEATHER_POWER*>MOVESET_SANDWORM;
|
std::vector<WEATHER_POWER*>MOVESET_SANDWORM;
|
||||||
@ -683,6 +691,7 @@ public:
|
|||||||
std::vector<WEATHER_POWER*>MOVESET_XMINION;
|
std::vector<WEATHER_POWER*>MOVESET_XMINION;
|
||||||
std::vector<WEATHER_POWER*>MOVESET_MEGAMOTH;
|
std::vector<WEATHER_POWER*>MOVESET_MEGAMOTH;
|
||||||
std::vector<WEATHER_POWER*>MOVESET_SIDEWINDER;
|
std::vector<WEATHER_POWER*>MOVESET_SIDEWINDER;
|
||||||
|
std::vector<WEATHER_POWER*>MOVESET_Y_Y;
|
||||||
std::vector<Seed*>SEEDS;
|
std::vector<Seed*>SEEDS;
|
||||||
std::vector<Seed*>TREES;
|
std::vector<Seed*>TREES;
|
||||||
bool SOUND_IS_MUTED=false;
|
bool SOUND_IS_MUTED=false;
|
||||||
@ -704,6 +713,7 @@ public:
|
|||||||
|
|
||||||
#define MAX_PIXELS 500
|
#define MAX_PIXELS 500
|
||||||
effect::Pixel*pixels[MAX_PIXELS];
|
effect::Pixel*pixels[MAX_PIXELS];
|
||||||
|
effect::Pixel*starpixels[150];
|
||||||
|
|
||||||
bool OnUserCreate() override
|
bool OnUserCreate() override
|
||||||
{
|
{
|
||||||
@ -717,27 +727,33 @@ public:
|
|||||||
EnableLayer(i,true);
|
EnableLayer(i,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SKIP_INTRO||SKIP_CHAPTER1||SKIP_CHAPTER2||SKIP_CHAPTER3) {
|
if (SKIP_INTRO||SKIP_CHAPTER1||SKIP_CHAPTER2||SKIP_CHAPTER3||SKIP_LAUNCHPAD) {
|
||||||
GAME_FLAGS[gameflag::TUTORIAL_WALKED_OFF_FARM]=true;
|
GAME_FLAGS[gameflag::TUTORIAL_WALKED_OFF_FARM]=true;
|
||||||
GAME_FLAGS[gameflag::VISIT_BROKEN_ROVER]=true;
|
GAME_FLAGS[gameflag::VISIT_BROKEN_ROVER]=true;
|
||||||
GAME_STATE=GAMEWORLD;
|
GAME_STATE=GAMEWORLD;
|
||||||
}
|
}
|
||||||
if (SKIP_CHAPTER1||SKIP_CHAPTER2||SKIP_CHAPTER3) {
|
if (SKIP_CHAPTER1||SKIP_CHAPTER2||SKIP_CHAPTER3||SKIP_LAUNCHPAD) {
|
||||||
GAME_FLAGS[gameflag::COLLECTED_SILICON_1]=true;
|
GAME_FLAGS[gameflag::COLLECTED_SILICON_1]=true;
|
||||||
GAME_FLAGS[gameflag::REPAIRED_ROVER_1]=true;
|
GAME_FLAGS[gameflag::REPAIRED_ROVER_1]=true;
|
||||||
GAME_FLAGS[gameflag::REST_IN_DOME]=true;
|
GAME_FLAGS[gameflag::REST_IN_DOME]=true;
|
||||||
GAME_STATE=GAMEWORLD;
|
GAME_STATE=GAMEWORLD;
|
||||||
}
|
}
|
||||||
if (SKIP_CHAPTER2||SKIP_CHAPTER3) {
|
if (SKIP_CHAPTER2||SKIP_CHAPTER3||SKIP_LAUNCHPAD) {
|
||||||
//GAME_FLAGS[gameflag::CHECK_ROVER_3]=true;
|
//GAME_FLAGS[gameflag::CHECK_ROVER_3]=true;
|
||||||
GAME_FLAGS[gameflag::COLLECTED_SILICON_3]=true;
|
GAME_FLAGS[gameflag::COLLECTED_SILICON_3]=true;
|
||||||
GAME_FLAGS[gameflag::CHECK_ROVER_2]=true;
|
GAME_FLAGS[gameflag::CHECK_ROVER_2]=true;
|
||||||
}
|
}
|
||||||
if (SKIP_CHAPTER3) {
|
if (SKIP_CHAPTER3||SKIP_LAUNCHPAD) {
|
||||||
GAME_FLAGS[gameflag::CHECK_ROVER_4]=true;
|
GAME_FLAGS[gameflag::CHECK_ROVER_4]=true;
|
||||||
GAME_FLAGS[gameflag::LITTLESNAKES_KILLED]=true;
|
GAME_FLAGS[gameflag::LITTLESNAKES_KILLED]=true;
|
||||||
GAME_FLAGS[gameflag::COLLECTED_SILICON_4]=true;
|
GAME_FLAGS[gameflag::COLLECTED_SILICON_4]=true;
|
||||||
}
|
}
|
||||||
|
if (SKIP_LAUNCHPAD) {
|
||||||
|
GAME_FLAGS[gameflag::CHECK_ROVER_5]=true;
|
||||||
|
GAME_FLAGS[gameflag::ROCKET_LAUNCH_READY]=true;
|
||||||
|
GAME_FLAGS[gameflag::COLLECTED_ITEMS_IN_DOME]=true;
|
||||||
|
GAME_FLAGS[gameflag::BOARDED_ROCKET]=true;
|
||||||
|
}
|
||||||
if (SKIP_CHAPTER2||SKIP_BOSS) {
|
if (SKIP_CHAPTER2||SKIP_BOSS) {
|
||||||
GAME_FLAGS[gameflag::SLEEP]=true;
|
GAME_FLAGS[gameflag::SLEEP]=true;
|
||||||
GAME_FLAGS[gameflag::FIRST_ENCOUNTER_X_X]=true;
|
GAME_FLAGS[gameflag::FIRST_ENCOUNTER_X_X]=true;
|
||||||
@ -759,9 +775,26 @@ public:
|
|||||||
GAME_FLAGS[gameflag::NEXT_COORDS2]=true;
|
GAME_FLAGS[gameflag::NEXT_COORDS2]=true;
|
||||||
PLAYER_HP=PLAYER_MAXHP=100;
|
PLAYER_HP=PLAYER_MAXHP=100;
|
||||||
PLAYER_COORDS[0]=38;
|
PLAYER_COORDS[0]=38;
|
||||||
PLAYER_COORDS[1]=37;
|
PLAYER_COORDS[1]=38;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SKIP_LAUNCHPAD) {
|
||||||
|
GAME_STATE=IN_SPACE;
|
||||||
|
PlayCutscene(cutscene::READY_TO_BOARD);
|
||||||
|
fadeOut();
|
||||||
|
HAILSTORM->playerOwnCount=6;
|
||||||
|
PETAL_STORM->playerOwnCount=6;
|
||||||
|
HURRICANE->playerOwnCount=6;
|
||||||
|
METEOR_RAIN->playerOwnCount=6;
|
||||||
|
METEOR_STORM->playerOwnCount=6;
|
||||||
|
SNOWSTORM->playerOwnCount=6;
|
||||||
|
FLASH_FLOOD->playerOwnCount=6;
|
||||||
|
SUNNY_DAY->playerOwnCount=6;
|
||||||
|
FIRESTORM->playerOwnCount=6;
|
||||||
|
SOLAR_FLARE->playerOwnCount=6;
|
||||||
|
foodCount=16;
|
||||||
|
PLAYER_HP=PLAYER_MAXHP=130;
|
||||||
|
}
|
||||||
|
|
||||||
SONG_MAIN = sound::Wave("./assets/SeasonsOfLoneliness.wav");
|
SONG_MAIN = sound::Wave("./assets/SeasonsOfLoneliness.wav");
|
||||||
|
|
||||||
@ -1011,6 +1044,14 @@ public:
|
|||||||
MOVESET_SIDEWINDER.push_back(MEGA_FANG);
|
MOVESET_SIDEWINDER.push_back(MEGA_FANG);
|
||||||
MOVESET_SIDEWINDER.push_back(MEGA_FANG);
|
MOVESET_SIDEWINDER.push_back(MEGA_FANG);
|
||||||
|
|
||||||
|
MOVESET_Y_Y.push_back(METEOR_RAIN);
|
||||||
|
MOVESET_Y_Y.push_back(AVALANCHE);
|
||||||
|
MOVESET_Y_Y.push_back(LIGHT_STORM);
|
||||||
|
MOVESET_Y_Y.push_back(TORNADO);
|
||||||
|
MOVESET_Y_Y.push_back(GUST);
|
||||||
|
MOVESET_Y_Y.push_back(DROUGHT);
|
||||||
|
MOVESET_Y_Y.push_back(HAILSTORM);
|
||||||
|
|
||||||
COLLECTED_ITEMS.push_back({20,5});
|
COLLECTED_ITEMS.push_back({20,5});
|
||||||
COLLECTED_ITEMS.push_back({20,6});
|
COLLECTED_ITEMS.push_back({20,6});
|
||||||
COLLECTED_ITEMS.push_back({19,5});
|
COLLECTED_ITEMS.push_back({19,5});
|
||||||
@ -1063,6 +1104,13 @@ public:
|
|||||||
ENCOUNTER_SNAKEPACK.playerY=6;
|
ENCOUNTER_SNAKEPACK.playerY=6;
|
||||||
ENCOUNTER_SNAKEPACK.map=MAP_5;
|
ENCOUNTER_SNAKEPACK.map=MAP_5;
|
||||||
ENCOUNTERS.push_back(ENCOUNTER_SNAKEPACK);
|
ENCOUNTERS.push_back(ENCOUNTER_SNAKEPACK);
|
||||||
|
ENCOUNTER_Y_Y.entities.push_back(new Entity(Y_Y_DECAL,"Y.Y",4-1,3.5-2,895,895,MOVESET_Y_Y,{1,1},true));
|
||||||
|
ENCOUNTER_Y_Y.x=1000-4;
|
||||||
|
ENCOUNTER_Y_Y.y=1000-3.5;
|
||||||
|
ENCOUNTER_Y_Y.playerX=4;
|
||||||
|
ENCOUNTER_Y_Y.playerY=6;
|
||||||
|
ENCOUNTER_Y_Y.map=MAP_6;
|
||||||
|
//ENCOUNTERS.push_back(ENCOUNTER_Y_Y);
|
||||||
|
|
||||||
|
|
||||||
BASE_OBJECTS["DOME"]=new ObjectLoadInfo(DOME_DECAL);
|
BASE_OBJECTS["DOME"]=new ObjectLoadInfo(DOME_DECAL);
|
||||||
@ -1099,7 +1147,13 @@ public:
|
|||||||
for (int i=0;i<MAX_PIXELS;i++) {
|
for (int i=0;i<MAX_PIXELS;i++) {
|
||||||
pixels[i]=new effect::Pixel();
|
pixels[i]=new effect::Pixel();
|
||||||
}
|
}
|
||||||
|
for (int i=0;i<150;i++) {
|
||||||
|
starpixels[i]=new effect::Pixel();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SKIP_LAUNCHPAD) {
|
||||||
|
LoadMap(MAP_6);
|
||||||
|
} else
|
||||||
if (SKIP_STORYBOOK) {
|
if (SKIP_STORYBOOK) {
|
||||||
LoadMap(MAP_5);
|
LoadMap(MAP_5);
|
||||||
} else {
|
} else {
|
||||||
@ -1582,6 +1636,11 @@ public:
|
|||||||
fadeIn();
|
fadeIn();
|
||||||
EndCutscene();
|
EndCutscene();
|
||||||
}break;
|
}break;
|
||||||
|
case cutscene::READY_TO_BOARD:{
|
||||||
|
GAME_STATE=IN_SPACE;
|
||||||
|
fadeIn();
|
||||||
|
EndCutscene();
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1591,6 +1650,24 @@ public:
|
|||||||
TIMER=0;
|
TIMER=0;
|
||||||
GAME_STATE=LATER_THAT_NIGHTWAIT;
|
GAME_STATE=LATER_THAT_NIGHTWAIT;
|
||||||
}break;
|
}break;
|
||||||
|
case IN_SPACE:{
|
||||||
|
PLAYER_COORDS[0]=1000;
|
||||||
|
PLAYER_COORDS[1]=1000;
|
||||||
|
STAR_POS={0,0};
|
||||||
|
STAR_SIZE={WIDTH,HEIGHT};
|
||||||
|
for (int i=0;i<150;i++) {
|
||||||
|
int brightness=rand()%60+195;
|
||||||
|
starpixels[i]->r=brightness;
|
||||||
|
starpixels[i]->g=brightness;
|
||||||
|
starpixels[i]->b=brightness;
|
||||||
|
starpixels[i]->pos={WIDTH/2,HEIGHT/2-24};
|
||||||
|
starpixels[i]->spd={range(-4,4),range(-3,3)};
|
||||||
|
float size = range(1,2);
|
||||||
|
starpixels[i]->size={size,size};
|
||||||
|
starpixels[i]->a=255;
|
||||||
|
}
|
||||||
|
TIMER=0;
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
switch (CURRENT_CUTSCENE) {
|
switch (CURRENT_CUTSCENE) {
|
||||||
case cutscene::DISPLAY_VOLCANIC_AREA:{
|
case cutscene::DISPLAY_VOLCANIC_AREA:{
|
||||||
@ -1919,6 +1996,7 @@ public:
|
|||||||
BATTLE_CARD_SELECTION_IND=0;
|
BATTLE_CARD_SELECTION_IND=0;
|
||||||
BATTLE_CARD_SELECTION=availablePowers[BATTLE_CARD_SELECTION_IND];
|
BATTLE_CARD_SELECTION=availablePowers[BATTLE_CARD_SELECTION_IND];
|
||||||
PLAYER_SELECTED_TARGET=-1;
|
PLAYER_SELECTED_TARGET=-1;
|
||||||
|
LOCKED_IN_DELAY=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1943,15 +2021,19 @@ public:
|
|||||||
int TARGET_COORDS_Y=CURRENT_ENCOUNTER.y+HEIGHT/32/2;
|
int TARGET_COORDS_Y=CURRENT_ENCOUNTER.y+HEIGHT/32/2;
|
||||||
if (PLAYER_COORDS[0]==TARGET_COORDS_X&&PLAYER_COORDS[1]==TARGET_COORDS_Y
|
if (PLAYER_COORDS[0]==TARGET_COORDS_X&&PLAYER_COORDS[1]==TARGET_COORDS_Y
|
||||||
&&BATTLE_PLAYER_COORDS.x==CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.playerX&&BATTLE_PLAYER_COORDS.y==CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.playerY) {
|
&&BATTLE_PLAYER_COORDS.x==CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.playerX&&BATTLE_PLAYER_COORDS.y==CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.playerY) {
|
||||||
if (!GAME_FLAGS[gameflag::FIRST_ENCOUNTER_X_X]&&GAME_FLAGS[gameflag::SLEEP]) {
|
if (LOCKED_IN_DELAY>30) {
|
||||||
GAME_FLAGS[gameflag::FIRST_ENCOUNTER_X_X]=true;
|
if (!GAME_FLAGS[gameflag::FIRST_ENCOUNTER_X_X]&&GAME_FLAGS[gameflag::SLEEP]) {
|
||||||
DisplayMessageBox(22);
|
GAME_FLAGS[gameflag::FIRST_ENCOUNTER_X_X]=true;
|
||||||
break;
|
DisplayMessageBox(22);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//std::cout<<"Battle State is "<<BATTLE_STATE<<" (2)\n";
|
||||||
|
BATTLE_STATE = battle::PLAYER_SELECTION;
|
||||||
|
clearPixelEffect();
|
||||||
|
EFFECT_TIMER = 0;
|
||||||
|
} else {
|
||||||
|
LOCKED_IN_DELAY++;
|
||||||
}
|
}
|
||||||
//std::cout<<"Battle State is "<<BATTLE_STATE<<" (2)\n";
|
|
||||||
BATTLE_STATE = battle::PLAYER_SELECTION;
|
|
||||||
clearPixelEffect();
|
|
||||||
EFFECT_TIMER = 0;
|
|
||||||
}
|
}
|
||||||
if (PLAYER_COORDS[0]!=TARGET_COORDS_X) {
|
if (PLAYER_COORDS[0]!=TARGET_COORDS_X) {
|
||||||
if (PLAYER_COORDS[0]<TARGET_COORDS_X) {
|
if (PLAYER_COORDS[0]<TARGET_COORDS_X) {
|
||||||
@ -2717,9 +2799,9 @@ public:
|
|||||||
}
|
}
|
||||||
if (CUTSCENE_TIMER>60*8) {
|
if (CUTSCENE_TIMER>60*8) {
|
||||||
PlayCutscene(cutscene::LAUNCHPAD_PREPARE);
|
PlayCutscene(cutscene::LAUNCHPAD_PREPARE);
|
||||||
CUTSCENE_OBJS[1]=CreateObject({30,35},LAUNCHPAD_DECAL);
|
CUTSCENE_OBJS[1]=CreateObject({30,35},LAUNCHPAD_DECAL,true);
|
||||||
CUTSCENE_OBJS[2]=CreateObject({30,35},LAUNCHPAD_HALF1_DECAL);
|
CUTSCENE_OBJS[2]=CreateObject({30,35},LAUNCHPAD_HALF1_DECAL,true);
|
||||||
CUTSCENE_OBJS[3]=CreateObject({30,35},LAUNCHPAD_HALF2_DECAL);
|
CUTSCENE_OBJS[3]=CreateObject({30,35},LAUNCHPAD_HALF2_DECAL,true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
@ -2748,6 +2830,36 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
case cutscene::INTRUDERS_DETECTED:{
|
||||||
|
if (!messageBoxVisible) {
|
||||||
|
if (!CUTSCENE_FLAGS[0]) {
|
||||||
|
CUTSCENE_FLAGS[0]=true;
|
||||||
|
DisplayMessageBox(54);
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[1]) {
|
||||||
|
CUTSCENE_FLAGS[1]=true;
|
||||||
|
DisplayMessageBox(55);
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[2]) {
|
||||||
|
CUTSCENE_FLAGS[2]=true;
|
||||||
|
CUTSCENE_OBJS[0]=CreateObject({999.5,999.25},PLAYER_DECAL,playerAnim,true);
|
||||||
|
} else
|
||||||
|
if (MoveObjectTowardsPoint({999.5,1002},CUTSCENE_OBJS[0],VERT_FIRST)) {
|
||||||
|
if (!CUTSCENE_FLAGS[3]) {
|
||||||
|
DisplayMessageBox(56);
|
||||||
|
CUTSCENE_FLAGS[3]=true;
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[4]) {
|
||||||
|
DisplayMessageBox(57);
|
||||||
|
CUTSCENE_FLAGS[4]=true;
|
||||||
|
} else {
|
||||||
|
updatePlayerState();
|
||||||
|
ENCOUNTERS.push_back(ENCOUNTER_Y_Y);
|
||||||
|
EndCutscene();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GAME_STATE==CUTSCENE_3&&!SOUND_IS_PLAYING) {
|
if (GAME_STATE==CUTSCENE_3&&!SOUND_IS_PLAYING) {
|
||||||
@ -2848,6 +2960,38 @@ public:
|
|||||||
GAME_STATE=LATER_THAT_NIGHTFADEOUT;
|
GAME_STATE=LATER_THAT_NIGHTFADEOUT;
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
case IN_SPACE:{
|
||||||
|
for (int i=0;i<150;i++) {
|
||||||
|
starpixels[i]->pos+=starpixels[i]->spd;
|
||||||
|
bool hitEdge=false;
|
||||||
|
if (starpixels[i]->pos.x<STAR_POS.x) {
|
||||||
|
starpixels[i]->pos.x=STAR_POS.x+STAR_SIZE.x;
|
||||||
|
hitEdge=true;
|
||||||
|
} else
|
||||||
|
if (starpixels[i]->pos.x>STAR_POS.x+STAR_SIZE.x) {
|
||||||
|
starpixels[i]->pos.x=STAR_POS.x;
|
||||||
|
hitEdge=true;
|
||||||
|
} else
|
||||||
|
if (starpixels[i]->pos.y<STAR_POS.y) {
|
||||||
|
starpixels[i]->pos.y=STAR_POS.y+STAR_SIZE.y;
|
||||||
|
hitEdge=true;
|
||||||
|
} else
|
||||||
|
if (starpixels[i]->pos.y>STAR_POS.y+STAR_SIZE.y) {
|
||||||
|
starpixels[i]->pos.y=STAR_POS.y;
|
||||||
|
hitEdge=true;
|
||||||
|
}
|
||||||
|
if (hitEdge) {
|
||||||
|
starpixels[i]->pos={WIDTH/2,HEIGHT/2-24};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (TIMER>300) {
|
||||||
|
if (!GAME_FLAGS[gameflag::INTRUDER_DETECTED]) {
|
||||||
|
GAME_FLAGS[gameflag::INTRUDER_DETECTED]=true;
|
||||||
|
DisplayMessageBox(53);
|
||||||
|
PlayCutscene(cutscene::INTRUDERS_DETECTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PIXEL_EFFECT_TRANSPARENCY>0) {
|
if (PIXEL_EFFECT_TRANSPARENCY>0) {
|
||||||
@ -2973,6 +3117,7 @@ public:
|
|||||||
case CUTSCENE_2:
|
case CUTSCENE_2:
|
||||||
case GAMEWORLD:
|
case GAMEWORLD:
|
||||||
case COLLECTED_SILICON:{
|
case COLLECTED_SILICON:{
|
||||||
|
DrawMap();
|
||||||
DrawGameWorld();
|
DrawGameWorld();
|
||||||
int meterYOffset=2;
|
int meterYOffset=2;
|
||||||
if (CURRENT_CUTSCENE==cutscene::NONE) {
|
if (CURRENT_CUTSCENE==cutscene::NONE) {
|
||||||
@ -3030,6 +3175,21 @@ public:
|
|||||||
case DISPLAY_BOOK2:{
|
case DISPLAY_BOOK2:{
|
||||||
DrawDecal({WIDTH/2-BOOK2_DECAL->sprite->width*2/2,HEIGHT/2-BOOK2_DECAL->sprite->height*2/2},BOOK2_DECAL,{2,2});
|
DrawDecal({WIDTH/2-BOOK2_DECAL->sprite->width*2/2,HEIGHT/2-BOOK2_DECAL->sprite->height*2/2},BOOK2_DECAL,{2,2});
|
||||||
}break;
|
}break;
|
||||||
|
case IN_SPACE:{
|
||||||
|
Clear(BLACK);
|
||||||
|
DrawStars();
|
||||||
|
if (!IN_BATTLE_ENCOUNTER) {
|
||||||
|
DrawDecal({WIDTH/2-32,HEIGHT/2-32},Y_Y_DECAL);
|
||||||
|
}
|
||||||
|
DrawGameWorld();
|
||||||
|
SetDrawTarget(2);
|
||||||
|
if (IN_BATTLE_ENCOUNTER) {
|
||||||
|
DrawPartialDecal({(float)((BATTLE_PLAYER_COORDS.x-PLAYER_COORDS[0])*32+WIDTH/2-16+(current_playerAnim->flipped?32:0)),(float)((BATTLE_PLAYER_COORDS.y-PLAYER_COORDS[1])*32+HEIGHT/2-16)},current_playerAnim->spr,current_playerAnim->getCurrentFrame(),{32,32},{(float)(current_playerAnim->flipped?-1:1),1});
|
||||||
|
}
|
||||||
|
if (IN_BATTLE_ENCOUNTER&&BATTLE_ENTRY_TIMER<45) {
|
||||||
|
DrawStringDecal({(float)((BATTLE_PLAYER_COORDS.x-PLAYER_COORDS[0])*32+WIDTH/2-16+(current_playerAnim->flipped?32:0)),(float)((BATTLE_PLAYER_COORDS.y-PLAYER_COORDS[1])*32+HEIGHT/2-16-sin(frameCount*12/60.0)*4-12)},"!!",RED);
|
||||||
|
}
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
switch (BATTLE_STATE) {
|
switch (BATTLE_STATE) {
|
||||||
case battle::PLAYER_SELECTION:{
|
case battle::PLAYER_SELECTION:{
|
||||||
@ -3147,7 +3307,7 @@ public:
|
|||||||
//FillRectDecal({WIDTH/2-2,HEIGHT/2-2},{4,4},WHITE);
|
//FillRectDecal({WIDTH/2-2,HEIGHT/2-2},{4,4},WHITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawGameWorld() {
|
void DrawMap() {
|
||||||
for (int y=-1;y<=HEIGHT/32+1;y++) {
|
for (int y=-1;y<=HEIGHT/32+1;y++) {
|
||||||
for (int x=-1;x<=WIDTH/32+1;x++) {
|
for (int x=-1;x<=WIDTH/32+1;x++) {
|
||||||
float xOffset=PLAYER_COORDS[0]-(WIDTH/32/2);
|
float xOffset=PLAYER_COORDS[0]-(WIDTH/32/2);
|
||||||
@ -3166,6 +3326,9 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DrawGameWorld() {
|
||||||
for (auto&obj:OBJECTS) {
|
for (auto&obj:OBJECTS) {
|
||||||
if (obj->spr!=NULL) {
|
if (obj->spr!=NULL) {
|
||||||
if (obj->name.compare("PLANT")==0) {
|
if (obj->name.compare("PLANT")==0) {
|
||||||
@ -3493,7 +3656,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool playerCanMove() {
|
bool playerCanMove() {
|
||||||
return PLAYER_HP>0&&GAME_STATE==GAMEWORLD&&CURRENT_CUTSCENE==cutscene::NONE&&!messageBoxVisible&&!IN_BATTLE_ENCOUNTER;
|
return PLAYER_HP>0&&(GAME_STATE==GAMEWORLD||GAME_STATE==IN_SPACE)&&CURRENT_CUTSCENE==cutscene::NONE&&!messageBoxVisible&&!IN_BATTLE_ENCOUNTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawCard(WEATHER_POWER*data,vf2d offset={0,0},vf2d scale={1,1},float darknessFactor=1.0) {
|
void DrawCard(WEATHER_POWER*data,vf2d offset={0,0},vf2d scale={1,1},float darknessFactor=1.0) {
|
||||||
@ -4027,6 +4190,13 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DrawStars(){
|
||||||
|
for (int i=0;i<150;i++) {
|
||||||
|
float distanceFromCenter=distancetoCoords(starpixels[i]->pos,{WIDTH/2,HEIGHT/2-24});
|
||||||
|
FillRectDecal(starpixels[i]->pos,starpixels[i]->size,{(uint8_t)(starpixels[i]->r),(uint8_t)(starpixels[i]->g),(uint8_t)(starpixels[i]->b),(uint8_t)(std::clamp(distanceFromCenter/64.0*255,0.0,255.0))});
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
15
data.h
15
data.h
@ -221,6 +221,21 @@ I can finally get off this planet, once and for all.)",//51
|
|||||||
R"(
|
R"(
|
||||||
$PLAYER
|
$PLAYER
|
||||||
I should probably stock up on food and supplies before leaving. Once I board, I won't be able to return.)",//52
|
I should probably stock up on food and supplies before leaving. Once I board, I won't be able to return.)",//52
|
||||||
|
R"(
|
||||||
|
Y.Y
|
||||||
|
ATTENTION! INTRUDERS DETECTED ON BOARD THE SHIP!)",//53
|
||||||
|
R"(
|
||||||
|
$PLAYER
|
||||||
|
Intruders...? There's not a soul in sigh-)",//54
|
||||||
|
R"(
|
||||||
|
Y.Y
|
||||||
|
BEGINNING IMMEDIATE DETAINING PROCEDURES.)",//55
|
||||||
|
R"(
|
||||||
|
$PLAYER
|
||||||
|
Wait- I'M THE INTRUDER?!)",//56
|
||||||
|
R"(
|
||||||
|
Y.Y
|
||||||
|
PREPARE TO BE ELIMINATED.)",//57
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user