generated from sigonasr2/CPlusPlusProjectTemplate
Added main menu, ability to mute/unmute sound and start the game.
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
5a153c60c0
commit
8fffc0f458
@ -507,7 +507,8 @@ public:
|
||||
std::vector<vi2d>REPAIRED_ROVERS;
|
||||
std::string CONSOLE_REF_TEXT;
|
||||
bool SOUND_IS_PLAYING=false;
|
||||
|
||||
int MAIN_MENU_SELECTION=0;
|
||||
std::string MENU_OPTIONS[4]={"NEW GAME","CONTINUE","MUTE SOUND","EXIT"};
|
||||
|
||||
Decal*DOME_DECAL,*FOOD_METER_DECAL,*OXYGEN_METER_DECAL,*PLANT_DECAL,
|
||||
*PLAYER_DECAL,
|
||||
@ -524,6 +525,8 @@ public:
|
||||
std::vector<WEATHER_POWER*>MOVESET_SPIDEY;
|
||||
std::vector<WEATHER_POWER*>MOVESET_X_X;
|
||||
std::vector<WEATHER_POWER*>MOVESET_XMINION;
|
||||
bool SOUND_IS_MUTED=false;
|
||||
bool END_THE_GAME=false;
|
||||
|
||||
|
||||
sound::Wave SONG_MAIN;
|
||||
@ -800,6 +803,27 @@ public:
|
||||
}break;
|
||||
}
|
||||
}
|
||||
if (GAME_STATE==CUTSCENE_3) {
|
||||
switch (MAIN_MENU_SELECTION) {
|
||||
case 0:
|
||||
case 1:{
|
||||
fadeOut();
|
||||
}break;
|
||||
case 2:{
|
||||
SOUND_IS_MUTED=!SOUND_IS_MUTED;
|
||||
if (SOUND_IS_MUTED) {
|
||||
MENU_OPTIONS[2]="UNMUTE SOUND";
|
||||
engine.SetOutputVolume(0);
|
||||
} else {
|
||||
MENU_OPTIONS[2]="MUTE SOUND";
|
||||
engine.SetOutputVolume(0.6);
|
||||
}
|
||||
}break;
|
||||
case 3:{
|
||||
END_THE_GAME=true;
|
||||
}break;
|
||||
}
|
||||
}
|
||||
switch (BATTLE_STATE) {
|
||||
case battle::PLAYER_SELECTION:{
|
||||
if (BATTLE_CARD_SELECTION->playerOwnCount>0) {
|
||||
@ -928,6 +952,17 @@ public:
|
||||
}break;
|
||||
}
|
||||
} else {
|
||||
if (GAME_STATE==CUTSCENE_3) {
|
||||
if (GetKey(A).bPressed||GetKey(LEFT).bPressed||GetKey(NP4).bPressed|GetKey(W).bPressed||GetKey(UP).bPressed||GetKey(NP8).bPressed) {
|
||||
MAIN_MENU_SELECTION--;
|
||||
if (MAIN_MENU_SELECTION<0) {
|
||||
MAIN_MENU_SELECTION=3;
|
||||
}
|
||||
}
|
||||
if (GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed||GetKey(S).bPressed||GetKey(DOWN).bPressed||GetKey(NP5).bPressed||GetKey(NP2).bPressed) {
|
||||
MAIN_MENU_SELECTION=(MAIN_MENU_SELECTION+1)%4;
|
||||
}
|
||||
}
|
||||
switch (CURRENT_CUTSCENE) {
|
||||
case cutscene::INPUT_USERNAME:{
|
||||
if (GetKey(W).bPressed||GetKey(UP).bPressed||GetKey(NP8).bPressed) {
|
||||
@ -967,7 +1002,7 @@ public:
|
||||
SetDrawTarget(2);
|
||||
drawGame();
|
||||
// called once per frame
|
||||
return true;
|
||||
return !END_THE_GAME;
|
||||
}
|
||||
|
||||
void fadeOutCompleted() {
|
||||
@ -1706,7 +1741,7 @@ public:
|
||||
}
|
||||
|
||||
if (GAME_STATE==CUTSCENE_3&&!SOUND_IS_PLAYING) {
|
||||
engine.SetOutputVolume(1);
|
||||
engine.SetOutputVolume(0.6);
|
||||
engine.PlayWaveform(&SONG_MAIN,true);
|
||||
SOUND_IS_PLAYING=true;
|
||||
}
|
||||
@ -1894,10 +1929,13 @@ public:
|
||||
} else {
|
||||
FillRectDecal({(float)(48+(cursorX)*16%(WIDTH-32)),(float)(GetTextSize(CUTSCENE_CONSOLE_TEXT).y*2+((cursorX==28)?16:0))},{4*2,8*2},Pixel(100, 10, 255,(0.5*sin(frameCount*4/60.0)+0.5)*256));
|
||||
}
|
||||
DrawStringDecal({(float)(WIDTH/2-GetTextSize("NEW GAME").x*2/2),(float)(HEIGHT/2-GetTextSize("NEW GAME").y*2)},"NEW GAME",WHITE,{2,2});
|
||||
DrawStringDecal({(float)(WIDTH/2-GetTextSize("CONTINUE").x*2/2),(float)(HEIGHT/2-GetTextSize("CONTINUE").y*2+32)},"CONTINUE",WHITE,{2,2});
|
||||
DrawStringDecal({(float)(WIDTH/2-GetTextSize("MUTE SOUND").x*2/2),(float)(HEIGHT/2-GetTextSize("MUTE SOUND").y*2+64)},"MUTE SOUND",WHITE,{2,2});
|
||||
DrawStringDecal({(float)(WIDTH/2-GetTextSize("EXIT").x*2/2),(float)(HEIGHT/2-GetTextSize("EXIT").y*2+96)},"EXIT",WHITE,{2,2});
|
||||
for (int i=0;i<4;i++) {
|
||||
std::string tempStr = MENU_OPTIONS[i];
|
||||
if (MAIN_MENU_SELECTION==i) {
|
||||
tempStr="> "+tempStr+" <";
|
||||
}
|
||||
DrawStringDecal({(float)(WIDTH/2-GetTextSize(tempStr).x*2/2),(float)(HEIGHT/2-GetTextSize(tempStr).y*2+32*i)},tempStr,(MAIN_MENU_SELECTION==i)?MAGENTA:WHITE,{2,2});
|
||||
}
|
||||
GradientFillRectDecal({0,0},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1});
|
||||
GradientFillRectDecal({WIDTH/2,0},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1});
|
||||
GradientFillRectDecal({0,HEIGHT/2},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN2});
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user