|
|
@ -673,7 +673,7 @@ public: |
|
|
|
std::string CONSOLE_REF_TEXT; |
|
|
|
std::string CONSOLE_REF_TEXT; |
|
|
|
bool SOUND_IS_PLAYING=false; |
|
|
|
bool SOUND_IS_PLAYING=false; |
|
|
|
int MAIN_MENU_SELECTION=0; |
|
|
|
int MAIN_MENU_SELECTION=0; |
|
|
|
std::string MENU_OPTIONS[4]={"NEW GAME","CONTINUE","MUTE SOUND","EXIT"}; |
|
|
|
std::string MENU_OPTIONS[4]={"NEW GAME","MUTE SOUND","EXIT"}; |
|
|
|
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; |
|
|
@ -682,6 +682,8 @@ public: |
|
|
|
vf2d BOSS_SIZE={1,1}; |
|
|
|
vf2d BOSS_SIZE={1,1}; |
|
|
|
vf2d CREDITS_SCROLLING_OFFSET={0,12}; |
|
|
|
vf2d CREDITS_SCROLLING_OFFSET={0,12}; |
|
|
|
bool HIDE_CARDS=false; |
|
|
|
bool HIDE_CARDS=false; |
|
|
|
|
|
|
|
bool USE_TOUCH_CONTROLS=false; |
|
|
|
|
|
|
|
bool MOUSE_DOWN=false; |
|
|
|
|
|
|
|
|
|
|
|
Map*MAP_1=new Map("map1"); |
|
|
|
Map*MAP_1=new Map("map1"); |
|
|
|
Map*MAP_2=new Map("map2"); |
|
|
|
Map*MAP_2=new Map("map2"); |
|
|
@ -700,7 +702,7 @@ public: |
|
|
|
*SANDWORM_DECAL,*SNAKE_DECAL,*MOTH_DECAL,*FLASH_FLOOD_DECAL,*SUNNY_DAY_DECAL,*FIRESTORM_DECAL,*SOLARFLARE_DECAL, |
|
|
|
*SANDWORM_DECAL,*SNAKE_DECAL,*MOTH_DECAL,*FLASH_FLOOD_DECAL,*SUNNY_DAY_DECAL,*FIRESTORM_DECAL,*SOLARFLARE_DECAL, |
|
|
|
*HP_REGEN_DECAL,*SLOWED_DECAL, *SPEED_DECAL,*HIDDEN_DECAL,*BOOK_DECAL,*BOOK2_DECAL, |
|
|
|
*HP_REGEN_DECAL,*SLOWED_DECAL, *SPEED_DECAL,*HIDDEN_DECAL,*BOOK_DECAL,*BOOK2_DECAL, |
|
|
|
*LAUNCHPAD_CLOSED_DECAL,*LAUNCHPAD_HALF1_DECAL,*LAUNCHPAD_HALF2_DECAL,*LAUNCHPAD_DECAL,*Y_Y_DECAL, |
|
|
|
*LAUNCHPAD_CLOSED_DECAL,*LAUNCHPAD_HALF1_DECAL,*LAUNCHPAD_HALF2_DECAL,*LAUNCHPAD_DECAL,*Y_Y_DECAL, |
|
|
|
*PETRIFY_DECAL,*A_A_DECAL,*A_A_RECHARGE_DECAL, *ENERGYBALL_DECAL; |
|
|
|
*PETRIFY_DECAL,*A_A_DECAL,*A_A_RECHARGE_DECAL, *ENERGYBALL_DECAL, *TOUCHSCREEN_DECAL; |
|
|
|
std::map<std::string,ObjectLoadInfo*> BASE_OBJECTS; |
|
|
|
std::map<std::string,ObjectLoadInfo*> BASE_OBJECTS; |
|
|
|
std::vector<Encounter> ENCOUNTERS; |
|
|
|
std::vector<Encounter> ENCOUNTERS; |
|
|
|
Encounter ENCOUNTER_SPIDEY_1; |
|
|
|
Encounter ENCOUNTER_SPIDEY_1; |
|
|
@ -734,6 +736,8 @@ public: |
|
|
|
int PETRIFY_TURNS=0; |
|
|
|
int PETRIFY_TURNS=0; |
|
|
|
int LAST_FRAME_SOUND_PLAYED=0; |
|
|
|
int LAST_FRAME_SOUND_PLAYED=0; |
|
|
|
bool queueBGMPlayback=false; |
|
|
|
bool queueBGMPlayback=false; |
|
|
|
|
|
|
|
bool MOUSE_PRESSED_DOWN=false; |
|
|
|
|
|
|
|
bool MOUSE_RELEASED=false; |
|
|
|
|
|
|
|
|
|
|
|
Map*CURRENT_MAP=MAP_1; |
|
|
|
Map*CURRENT_MAP=MAP_1; |
|
|
|
|
|
|
|
|
|
|
@ -885,6 +889,7 @@ public: |
|
|
|
A_A_DECAL=new Decal(new Sprite("assets/A.A.png")); |
|
|
|
A_A_DECAL=new Decal(new Sprite("assets/A.A.png")); |
|
|
|
A_A_RECHARGE_DECAL=new Decal(new Sprite("assets/A.A_recharge.png")); |
|
|
|
A_A_RECHARGE_DECAL=new Decal(new Sprite("assets/A.A_recharge.png")); |
|
|
|
ENERGYBALL_DECAL=new Decal(new Sprite("assets/energyball.png")); |
|
|
|
ENERGYBALL_DECAL=new Decal(new Sprite("assets/energyball.png")); |
|
|
|
|
|
|
|
TOUCHSCREEN_DECAL=new Decal(new Sprite("assets/touchcontroller.png")); |
|
|
|
|
|
|
|
|
|
|
|
playerAnim->spr=PLAYER_DECAL; |
|
|
|
playerAnim->spr=PLAYER_DECAL; |
|
|
|
playerAnimRight->spr=PLAYER_DECAL; |
|
|
|
playerAnimRight->spr=PLAYER_DECAL; |
|
|
@ -1272,6 +1277,11 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (GetMouse(0).bPressed) { |
|
|
|
|
|
|
|
USE_TOUCH_CONTROLS=true; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
USE_TOUCH_CONTROLS=false; |
|
|
|
|
|
|
|
} |
|
|
|
if (!GetKey(W).bPressed&&!GetKey(A).bPressed&&!GetKey(S).bPressed&&!GetKey(D).bPressed&& |
|
|
|
if (!GetKey(W).bPressed&&!GetKey(A).bPressed&&!GetKey(S).bPressed&&!GetKey(D).bPressed&& |
|
|
|
!GetKey(UP).bPressed&&!GetKey(RIGHT).bPressed&&!GetKey(DOWN).bPressed&&!GetKey(LEFT).bPressed) { |
|
|
|
!GetKey(UP).bPressed&&!GetKey(RIGHT).bPressed&&!GetKey(DOWN).bPressed&&!GetKey(LEFT).bPressed) { |
|
|
|
ActionButtonPress(); |
|
|
|
ActionButtonPress(); |
|
|
@ -1309,6 +1319,13 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void ActionButtonPress() { |
|
|
|
void ActionButtonPress() { |
|
|
|
|
|
|
|
if (GetMouse(0).bPressed) { |
|
|
|
|
|
|
|
MOUSE_DOWN=true; |
|
|
|
|
|
|
|
MOUSE_PRESSED_DOWN=true; |
|
|
|
|
|
|
|
if (GetMouseX()<128&&GetMouseY()>128) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
if (playerCanMove()) { |
|
|
|
if (playerCanMove()) { |
|
|
|
switch (GAME_STATE) { |
|
|
|
switch (GAME_STATE) { |
|
|
|
case GAMEWORLD:{ |
|
|
|
case GAMEWORLD:{ |
|
|
@ -1326,23 +1343,22 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
if (GAME_STATE==CUTSCENE_3) { |
|
|
|
if (GAME_STATE==CUTSCENE_3) { |
|
|
|
switch (MAIN_MENU_SELECTION) { |
|
|
|
switch (MAIN_MENU_SELECTION) { |
|
|
|
case 0: |
|
|
|
case 0:{ |
|
|
|
case 1:{ |
|
|
|
|
|
|
|
PlaySound(&SOUND_SELECT); |
|
|
|
PlaySound(&SOUND_SELECT); |
|
|
|
fadeOut(); |
|
|
|
fadeOut(); |
|
|
|
audioFadeOut(); |
|
|
|
audioFadeOut(); |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
case 2:{ |
|
|
|
case 1:{ |
|
|
|
SOUND_IS_MUTED=!SOUND_IS_MUTED; |
|
|
|
SOUND_IS_MUTED=!SOUND_IS_MUTED; |
|
|
|
if (SOUND_IS_MUTED) { |
|
|
|
if (SOUND_IS_MUTED) { |
|
|
|
MENU_OPTIONS[2]="UNMUTE SOUND"; |
|
|
|
MENU_OPTIONS[1]="UNMUTE SOUND"; |
|
|
|
engine.SetOutputVolume(0); |
|
|
|
engine.SetOutputVolume(0); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
MENU_OPTIONS[2]="MUTE SOUND"; |
|
|
|
MENU_OPTIONS[1]="MUTE SOUND"; |
|
|
|
engine.SetOutputVolume(0.6); |
|
|
|
engine.SetOutputVolume(0.6); |
|
|
|
} |
|
|
|
} |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
case 3:{ |
|
|
|
case 2:{ |
|
|
|
END_THE_GAME=true; |
|
|
|
END_THE_GAME=true; |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
} |
|
|
|
} |
|
|
@ -1412,41 +1428,45 @@ public: |
|
|
|
bool OnUserUpdate(float fElapsedTime) override |
|
|
|
bool OnUserUpdate(float fElapsedTime) override |
|
|
|
{ |
|
|
|
{ |
|
|
|
elapsedTime+=fElapsedTime; |
|
|
|
elapsedTime+=fElapsedTime; |
|
|
|
|
|
|
|
if (GetMouse(0).bReleased) { |
|
|
|
|
|
|
|
MOUSE_DOWN=false; |
|
|
|
|
|
|
|
MOUSE_RELEASED=true; |
|
|
|
|
|
|
|
} |
|
|
|
while (elapsedTime>TARGET_RATE) { |
|
|
|
while (elapsedTime>TARGET_RATE) { |
|
|
|
elapsedTime-=TARGET_RATE; |
|
|
|
elapsedTime-=TARGET_RATE; |
|
|
|
updateGame(); |
|
|
|
updateGame(); |
|
|
|
rand(); |
|
|
|
rand(); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(F1).bPressed) { |
|
|
|
if (GetKey(F1).bPressed) { |
|
|
|
ConsoleShow(F1,false); |
|
|
|
//ConsoleShow(F1,false); //Disable for official release.
|
|
|
|
} |
|
|
|
} |
|
|
|
if (playerCanMove()) { |
|
|
|
if (playerCanMove()) { |
|
|
|
if (GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed) { |
|
|
|
if (RightPressed()) { |
|
|
|
changeAnimation(playerAnimWalkRight); |
|
|
|
changeAnimation(playerAnimWalkRight); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(A).bPressed||GetKey(LEFT).bPressed||GetKey(NP4).bPressed) { |
|
|
|
if (LeftPressed()) { |
|
|
|
changeAnimation(playerAnimWalkLeft); |
|
|
|
changeAnimation(playerAnimWalkLeft); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(W).bPressed||GetKey(UP).bPressed||GetKey(NP8).bPressed) { |
|
|
|
if (UpPressed()) { |
|
|
|
changeAnimation(playerAnimWalkUp); |
|
|
|
changeAnimation(playerAnimWalkUp); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(S).bPressed||GetKey(DOWN).bPressed||GetKey(NP5).bPressed||GetKey(NP2).bPressed) { |
|
|
|
if (DownPressed()) { |
|
|
|
changeAnimation(playerAnimWalkDown); |
|
|
|
changeAnimation(playerAnimWalkDown); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!GetKey(D).bHeld&&!GetKey(RIGHT).bHeld&&!GetKey(NP6).bHeld&& |
|
|
|
if (!RightHeld()&& |
|
|
|
!GetKey(A).bHeld&&!GetKey(LEFT).bHeld&&!GetKey(NP4).bHeld&& |
|
|
|
!LeftHeld()&& |
|
|
|
!GetKey(S).bHeld&&!GetKey(UP).bHeld&&!GetKey(NP8).bHeld&& |
|
|
|
!UpHeld()&& |
|
|
|
!GetKey(W).bHeld&&!GetKey(DOWN).bHeld&&!GetKey(NP5).bHeld&&!GetKey(NP2).bHeld) { |
|
|
|
!DownHeld()) { |
|
|
|
if (GetKey(D).bReleased||GetKey(RIGHT).bReleased||GetKey(NP6).bReleased) { |
|
|
|
if (RightReleased()) { |
|
|
|
changeAnimation(playerAnimRight); |
|
|
|
changeAnimation(playerAnimRight); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(A).bReleased||GetKey(LEFT).bReleased||GetKey(NP4).bReleased) { |
|
|
|
if (LeftReleased()) { |
|
|
|
changeAnimation(playerAnimLeft); |
|
|
|
changeAnimation(playerAnimLeft); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(W).bReleased||GetKey(UP).bReleased||GetKey(NP8).bReleased) { |
|
|
|
if (UpReleased()) { |
|
|
|
changeAnimation(playerAnim); |
|
|
|
changeAnimation(playerAnim); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(S).bReleased||GetKey(DOWN).bReleased||GetKey(NP5).bReleased||GetKey(NP2).bReleased) { |
|
|
|
if (DownReleased()) { |
|
|
|
changeAnimation(playerAnimDown); |
|
|
|
changeAnimation(playerAnimDown); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -1454,12 +1474,12 @@ public: |
|
|
|
if (IN_BATTLE_ENCOUNTER&&!messageBoxVisible) { |
|
|
|
if (IN_BATTLE_ENCOUNTER&&!messageBoxVisible) { |
|
|
|
switch (BATTLE_STATE) { |
|
|
|
switch (BATTLE_STATE) { |
|
|
|
case battle::PLAYER_SELECTION:{ |
|
|
|
case battle::PLAYER_SELECTION:{ |
|
|
|
if (GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed) { |
|
|
|
if (RightPressed()) { |
|
|
|
BATTLE_CARD_SELECTION_IND=(BATTLE_CARD_SELECTION_IND+1)%availablePowers.size(); |
|
|
|
BATTLE_CARD_SELECTION_IND=(BATTLE_CARD_SELECTION_IND+1)%availablePowers.size(); |
|
|
|
BATTLE_CARD_SELECTION=availablePowers[BATTLE_CARD_SELECTION_IND]; |
|
|
|
BATTLE_CARD_SELECTION=availablePowers[BATTLE_CARD_SELECTION_IND]; |
|
|
|
PlaySound(&SOUND_CHANGE_OPTION); |
|
|
|
PlaySound(&SOUND_CHANGE_OPTION); |
|
|
|
}
|
|
|
|
}
|
|
|
|
if (GetKey(A).bPressed||GetKey(LEFT).bPressed||GetKey(NP4).bPressed) { |
|
|
|
if (LeftPressed()) { |
|
|
|
if (--BATTLE_CARD_SELECTION_IND<0) { |
|
|
|
if (--BATTLE_CARD_SELECTION_IND<0) { |
|
|
|
BATTLE_CARD_SELECTION_IND=availablePowers.size()-1; |
|
|
|
BATTLE_CARD_SELECTION_IND=availablePowers.size()-1; |
|
|
|
} |
|
|
|
} |
|
|
@ -1468,7 +1488,7 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
case battle::PLAYER_TARGET_SELECTION:{ |
|
|
|
case battle::PLAYER_TARGET_SELECTION:{ |
|
|
|
if (GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed) { |
|
|
|
if (RightPressed()) { |
|
|
|
while (true) { |
|
|
|
while (true) { |
|
|
|
PLAYER_SELECTED_TARGET=(PLAYER_SELECTED_TARGET+1)%CURRENT_ENCOUNTER.entities.size(); |
|
|
|
PLAYER_SELECTED_TARGET=(PLAYER_SELECTED_TARGET+1)%CURRENT_ENCOUNTER.entities.size(); |
|
|
|
if (CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->hp>0) { |
|
|
|
if (CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->hp>0) { |
|
|
@ -1477,12 +1497,12 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
PlaySound(&SOUND_CHANGE_OPTION); |
|
|
|
PlaySound(&SOUND_CHANGE_OPTION); |
|
|
|
}
|
|
|
|
}
|
|
|
|
if (GetKey(W).bPressed||GetKey(UP).bPressed||GetKey(NP8).bPressed) { |
|
|
|
if (UpPressed()) { |
|
|
|
PLAYER_SELECTED_TARGET=-1; |
|
|
|
PLAYER_SELECTED_TARGET=-1; |
|
|
|
//std::cout<<"Battle State is "<<BATTLE_STATE<<" (1)\n";
|
|
|
|
//std::cout<<"Battle State is "<<BATTLE_STATE<<" (1)\n";
|
|
|
|
BATTLE_STATE=battle::PLAYER_SELECTION; |
|
|
|
BATTLE_STATE=battle::PLAYER_SELECTION; |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(A).bPressed||GetKey(LEFT).bPressed||GetKey(NP4).bPressed) { |
|
|
|
if (LeftPressed()) { |
|
|
|
while (true) { |
|
|
|
while (true) { |
|
|
|
if (--PLAYER_SELECTED_TARGET<0) { |
|
|
|
if (--PLAYER_SELECTED_TARGET<0) { |
|
|
|
PLAYER_SELECTED_TARGET=CURRENT_ENCOUNTER.entities.size()-1; |
|
|
|
PLAYER_SELECTED_TARGET=CURRENT_ENCOUNTER.entities.size()-1; |
|
|
@ -1497,28 +1517,28 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if (GAME_STATE==CUTSCENE_3) { |
|
|
|
if (GAME_STATE==CUTSCENE_3) { |
|
|
|
if (GetKey(A).bPressed||GetKey(LEFT).bPressed||GetKey(NP4).bPressed|GetKey(W).bPressed||GetKey(UP).bPressed||GetKey(NP8).bPressed) { |
|
|
|
if (LeftPressed()||UpPressed()) { |
|
|
|
MAIN_MENU_SELECTION--; |
|
|
|
MAIN_MENU_SELECTION--; |
|
|
|
if (MAIN_MENU_SELECTION<0) { |
|
|
|
if (MAIN_MENU_SELECTION<0) { |
|
|
|
MAIN_MENU_SELECTION=3; |
|
|
|
MAIN_MENU_SELECTION=2; |
|
|
|
} |
|
|
|
} |
|
|
|
PlaySound(&SOUND_CHANGE_OPTION); |
|
|
|
PlaySound(&SOUND_CHANGE_OPTION); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed||GetKey(S).bPressed||GetKey(DOWN).bPressed||GetKey(NP5).bPressed||GetKey(NP2).bPressed) { |
|
|
|
if (DownPressed()||RightPressed()) { |
|
|
|
MAIN_MENU_SELECTION=(MAIN_MENU_SELECTION+1)%4; |
|
|
|
MAIN_MENU_SELECTION=(MAIN_MENU_SELECTION+1)%3; |
|
|
|
PlaySound(&SOUND_CHANGE_OPTION); |
|
|
|
PlaySound(&SOUND_CHANGE_OPTION); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
switch (CURRENT_CUTSCENE) { |
|
|
|
switch (CURRENT_CUTSCENE) { |
|
|
|
case cutscene::INPUT_USERNAME:{ |
|
|
|
case cutscene::INPUT_USERNAME:{ |
|
|
|
if (GetKey(W).bPressed||GetKey(UP).bPressed||GetKey(NP8).bPressed) { |
|
|
|
if (UpPressed()) { |
|
|
|
TERMINAL_SELECTED_CHAR=TERMINAL_SELECTED_CHAR-7; |
|
|
|
TERMINAL_SELECTED_CHAR=TERMINAL_SELECTED_CHAR-7; |
|
|
|
if (TERMINAL_SELECTED_CHAR<0) { |
|
|
|
if (TERMINAL_SELECTED_CHAR<0) { |
|
|
|
TERMINAL_SELECTED_CHAR+=28; |
|
|
|
TERMINAL_SELECTED_CHAR+=28; |
|
|
|
} |
|
|
|
} |
|
|
|
PlaySound(&SOUND_MSG); |
|
|
|
PlaySound(&SOUND_MSG); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed) { |
|
|
|
if (RightPressed()) { |
|
|
|
if ((TERMINAL_SELECTED_CHAR+1)%7==0) { |
|
|
|
if ((TERMINAL_SELECTED_CHAR+1)%7==0) { |
|
|
|
TERMINAL_SELECTED_CHAR-=6; |
|
|
|
TERMINAL_SELECTED_CHAR-=6; |
|
|
|
} else { |
|
|
|
} else { |
|
|
@ -1526,7 +1546,7 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
PlaySound(&SOUND_MSG); |
|
|
|
PlaySound(&SOUND_MSG); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(A).bPressed||GetKey(LEFT).bPressed||GetKey(NP4).bPressed) { |
|
|
|
if (LeftPressed()) { |
|
|
|
if ((TERMINAL_SELECTED_CHAR-1)%7==6||TERMINAL_SELECTED_CHAR-1<0) { |
|
|
|
if ((TERMINAL_SELECTED_CHAR-1)%7==6||TERMINAL_SELECTED_CHAR-1<0) { |
|
|
|
TERMINAL_SELECTED_CHAR+=6; |
|
|
|
TERMINAL_SELECTED_CHAR+=6; |
|
|
|
} else { |
|
|
|
} else { |
|
|
@ -1534,7 +1554,7 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
PlaySound(&SOUND_MSG); |
|
|
|
PlaySound(&SOUND_MSG); |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(S).bPressed||GetKey(DOWN).bPressed||GetKey(NP5).bPressed||GetKey(NP2).bPressed) { |
|
|
|
if (DownPressed()) { |
|
|
|
if (TERMINAL_SELECTED_CHAR+7>=28) { |
|
|
|
if (TERMINAL_SELECTED_CHAR+7>=28) { |
|
|
|
TERMINAL_SELECTED_CHAR=(TERMINAL_SELECTED_CHAR+7)%28; |
|
|
|
TERMINAL_SELECTED_CHAR=(TERMINAL_SELECTED_CHAR+7)%28; |
|
|
|
} else { |
|
|
|
} else { |
|
|
@ -1544,7 +1564,7 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
case cutscene::READY_TO_BOARD:{ |
|
|
|
case cutscene::READY_TO_BOARD:{ |
|
|
|
if (GetKey(W).bPressed||GetKey(UP).bPressed||GetKey(NP8).bPressed||GetKey(S).bPressed||GetKey(DOWN).bPressed||GetKey(NP5).bPressed||GetKey(NP2).bPressed) { |
|
|
|
if (UpPressed()||DownPressed()) { |
|
|
|
ROCKET_BOARD_OPTION=!ROCKET_BOARD_OPTION; |
|
|
|
ROCKET_BOARD_OPTION=!ROCKET_BOARD_OPTION; |
|
|
|
} |
|
|
|
} |
|
|
|
}break; |
|
|
|
}break; |
|
|
@ -1556,6 +1576,8 @@ public: |
|
|
|
Clear(BLANK); |
|
|
|
Clear(BLANK); |
|
|
|
SetDrawTarget(2); |
|
|
|
SetDrawTarget(2); |
|
|
|
drawGame(); |
|
|
|
drawGame(); |
|
|
|
|
|
|
|
MOUSE_PRESSED_DOWN=false; |
|
|
|
|
|
|
|
MOUSE_RELEASED=false; |
|
|
|
// called once per frame
|
|
|
|
// called once per frame
|
|
|
|
return !END_THE_GAME; |
|
|
|
return !END_THE_GAME; |
|
|
|
} |
|
|
|
} |
|
|
@ -1955,7 +1977,7 @@ public: |
|
|
|
if (playerCanMove()) { |
|
|
|
if (playerCanMove()) { |
|
|
|
bool animationchanged=false; |
|
|
|
bool animationchanged=false; |
|
|
|
bool positionModified=false; |
|
|
|
bool positionModified=false; |
|
|
|
if (GetKey(D).bHeld||GetKey(RIGHT).bHeld||GetKey(NP6).bHeld) { |
|
|
|
if (RightHeld()) { |
|
|
|
if (GAME_STATE!=IN_SPACE&&MAP[(int)PLAYER_COORDS[1]][(int)std::clamp(PLAYER_COORDS[0]+MOVE_SPD,0.1,(double)MAP_WIDTH)]!=4) { |
|
|
|
if (GAME_STATE!=IN_SPACE&&MAP[(int)PLAYER_COORDS[1]][(int)std::clamp(PLAYER_COORDS[0]+MOVE_SPD,0.1,(double)MAP_WIDTH)]!=4) { |
|
|
|
PLAYER_COORDS[0]=std::clamp(PLAYER_COORDS[0]+MOVE_SPD,0.1,(double)MAP_WIDTH); |
|
|
|
PLAYER_COORDS[0]=std::clamp(PLAYER_COORDS[0]+MOVE_SPD,0.1,(double)MAP_WIDTH); |
|
|
|
positionModified=true; |
|
|
|
positionModified=true; |
|
|
@ -1967,7 +1989,7 @@ public: |
|
|
|
animationchanged=true; |
|
|
|
animationchanged=true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(A).bHeld||GetKey(LEFT).bHeld||GetKey(NP4).bHeld) { |
|
|
|
if (LeftHeld()) { |
|
|
|
if (GAME_STATE!=IN_SPACE&&MAP[(int)PLAYER_COORDS[1]][(int)std::clamp(PLAYER_COORDS[0]-MOVE_SPD,0.1,(double)MAP_WIDTH)]!=4) { |
|
|
|
if (GAME_STATE!=IN_SPACE&&MAP[(int)PLAYER_COORDS[1]][(int)std::clamp(PLAYER_COORDS[0]-MOVE_SPD,0.1,(double)MAP_WIDTH)]!=4) { |
|
|
|
PLAYER_COORDS[0]=std::clamp(PLAYER_COORDS[0]-MOVE_SPD,0.1,(double)MAP_WIDTH); |
|
|
|
PLAYER_COORDS[0]=std::clamp(PLAYER_COORDS[0]-MOVE_SPD,0.1,(double)MAP_WIDTH); |
|
|
|
positionModified=true; |
|
|
|
positionModified=true; |
|
|
@ -1979,7 +2001,7 @@ public: |
|
|
|
animationchanged=true; |
|
|
|
animationchanged=true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(W).bHeld||GetKey(UP).bHeld||GetKey(NP8).bHeld) { |
|
|
|
if (UpHeld()) { |
|
|
|
if (GAME_STATE!=IN_SPACE&&MAP[(int)std::clamp(PLAYER_COORDS[1]-MOVE_SPD,0.1,(double)MAP_HEIGHT)][(int)PLAYER_COORDS[0]]!=4) { |
|
|
|
if (GAME_STATE!=IN_SPACE&&MAP[(int)std::clamp(PLAYER_COORDS[1]-MOVE_SPD,0.1,(double)MAP_HEIGHT)][(int)PLAYER_COORDS[0]]!=4) { |
|
|
|
PLAYER_COORDS[1]=std::clamp(PLAYER_COORDS[1]-MOVE_SPD,0.1,(double)MAP_HEIGHT); |
|
|
|
PLAYER_COORDS[1]=std::clamp(PLAYER_COORDS[1]-MOVE_SPD,0.1,(double)MAP_HEIGHT); |
|
|
|
positionModified=true; |
|
|
|
positionModified=true; |
|
|
@ -1996,7 +2018,7 @@ public: |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
HIDE_CARDS=false; |
|
|
|
HIDE_CARDS=false; |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(S).bHeld||GetKey(DOWN).bHeld||GetKey(NP5).bHeld||GetKey(NP2).bHeld) { |
|
|
|
if (DownHeld()) { |
|
|
|
if (GAME_STATE!=IN_SPACE&&MAP[(int)std::clamp(PLAYER_COORDS[1]+MOVE_SPD,0.1,(double)MAP_HEIGHT)][(int)PLAYER_COORDS[0]]!=4) { |
|
|
|
if (GAME_STATE!=IN_SPACE&&MAP[(int)std::clamp(PLAYER_COORDS[1]+MOVE_SPD,0.1,(double)MAP_HEIGHT)][(int)PLAYER_COORDS[0]]!=4) { |
|
|
|
PLAYER_COORDS[1]=std::clamp(PLAYER_COORDS[1]+MOVE_SPD,0.1,(double)MAP_HEIGHT); |
|
|
|
PLAYER_COORDS[1]=std::clamp(PLAYER_COORDS[1]+MOVE_SPD,0.1,(double)MAP_HEIGHT); |
|
|
|
positionModified=true; |
|
|
|
positionModified=true; |
|
|
@ -3690,6 +3712,9 @@ public: |
|
|
|
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(ORIGINAL_FOREGROUND_EFFECT_COLOR.r,ORIGINAL_FOREGROUND_EFFECT_COLOR.g,ORIGINAL_FOREGROUND_EFFECT_COLOR.b,ORIGINAL_FOREGROUND_EFFECT_COLOR.a*PIXEL_EFFECT_TRANSPARENCY)); |
|
|
|
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(ORIGINAL_FOREGROUND_EFFECT_COLOR.r,ORIGINAL_FOREGROUND_EFFECT_COLOR.g,ORIGINAL_FOREGROUND_EFFECT_COLOR.b,ORIGINAL_FOREGROUND_EFFECT_COLOR.a*PIXEL_EFFECT_TRANSPARENCY)); |
|
|
|
SetDrawTarget(2); |
|
|
|
SetDrawTarget(2); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (USE_TOUCH_CONTROLS&&(CURRENT_CUTSCENE==cutscene::NONE||CURRENT_CUTSCENE==cutscene::INPUT_USERNAME||CURRENT_CUTSCENE==cutscene::READY_TO_BOARD)) { |
|
|
|
|
|
|
|
DrawDecal({0,HEIGHT-128},TOUCHSCREEN_DECAL,{1,1},Pixel(255,255,255,128)); |
|
|
|
|
|
|
|
} |
|
|
|
if (messageBoxVisible) { |
|
|
|
if (messageBoxVisible) { |
|
|
|
SetDrawTarget(nullptr); |
|
|
|
SetDrawTarget(nullptr); |
|
|
|
DrawDialogBox({4,HEIGHT-60},{WIDTH/2,16},Pixel(18, 0, 33,180)); |
|
|
|
DrawDialogBox({4,HEIGHT-60},{WIDTH/2,16},Pixel(18, 0, 33,180)); |
|
|
@ -4661,6 +4686,43 @@ public: |
|
|
|
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))}); |
|
|
|
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))}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool UpPressed(){ |
|
|
|
|
|
|
|
return GetKey(W).bPressed||GetKey(UP).bPressed||GetKey(NP8).bPressed||MOUSE_PRESSED_DOWN&&GetMouseY()<=HEIGHT-128+32&&GetMouseY()>=HEIGHT-128; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool DownPressed(){ |
|
|
|
|
|
|
|
return GetKey(S).bPressed||GetKey(DOWN).bPressed||GetKey(NP5).bPressed||GetKey(NP2).bPressed||MOUSE_PRESSED_DOWN&&GetMouseY()<=HEIGHT&&GetMouseY()>=HEIGHT-32; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool LeftPressed(){ |
|
|
|
|
|
|
|
return GetKey(A).bPressed||GetKey(LEFT).bPressed||GetKey(NP4).bPressed||MOUSE_PRESSED_DOWN&&GetMouseX()<=32&&GetMouseX()>=0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool RightPressed(){ |
|
|
|
|
|
|
|
return GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed||MOUSE_PRESSED_DOWN&&GetMouseX()<=128&&GetMouseX()>=96; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool UpHeld(){ |
|
|
|
|
|
|
|
return GetKey(W).bHeld||GetKey(UP).bHeld||GetKey(NP8).bHeld||MOUSE_DOWN&&GetMouseY()<=HEIGHT-128+32&&GetMouseY()>=HEIGHT-128; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool DownHeld(){ |
|
|
|
|
|
|
|
return GetKey(S).bHeld||GetKey(DOWN).bHeld||GetKey(NP5).bHeld||GetKey(NP2).bHeld||MOUSE_DOWN&&GetMouseY()<=HEIGHT&&GetMouseY()>=HEIGHT-32; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool LeftHeld(){ |
|
|
|
|
|
|
|
return GetKey(A).bHeld||GetKey(LEFT).bHeld||GetKey(NP4).bHeld||MOUSE_DOWN&&GetMouseX()<=32&&GetMouseX()>=0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool RightHeld(){ |
|
|
|
|
|
|
|
return GetKey(D).bHeld||GetKey(RIGHT).bHeld||GetKey(NP6).bHeld||MOUSE_DOWN&&GetMouseX()<=128&&GetMouseX()>=96; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool UpReleased(){ |
|
|
|
|
|
|
|
return GetKey(W).bReleased||GetKey(UP).bReleased||GetKey(NP8).bReleased||MOUSE_RELEASED&&GetMouseY()<=HEIGHT-128+32&&GetMouseY()>=HEIGHT-128; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool DownReleased(){ |
|
|
|
|
|
|
|
return GetKey(S).bReleased||GetKey(DOWN).bReleased||GetKey(NP5).bReleased||GetKey(NP2).bReleased||MOUSE_RELEASED&&GetMouseY()<=HEIGHT&&GetMouseY()>=HEIGHT-32; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool LeftReleased(){ |
|
|
|
|
|
|
|
return GetKey(A).bReleased||GetKey(LEFT).bReleased||GetKey(NP4).bReleased||MOUSE_RELEASED&&GetMouseX()<=32&&GetMouseX()>=0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bool RightReleased(){ |
|
|
|
|
|
|
|
return GetKey(D).bReleased||GetKey(RIGHT).bReleased||GetKey(NP6).bReleased||MOUSE_RELEASED&&GetMouseX()<=128&&GetMouseX()>=96; |
|
|
|
|
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|