Skip to content

Commit

Permalink
Add named constants for main menu choices
Browse files Browse the repository at this point in the history
  • Loading branch information
nextghost committed Jan 30, 2022
1 parent 6f7ba54 commit 29692e2
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 49 deletions.
98 changes: 56 additions & 42 deletions signus/src/mainmenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,8 @@ static int ProcessMenu(const char *mask1, const char *mask2) {
sel = 0;
}

if (sel > 3) {
sel = 3;
if (sel > MAINMENU_MAX) {
sel = MAINMENU_MAX;
}

// Select
Expand All @@ -140,25 +140,25 @@ static int ProcessMenu(const char *mask1, const char *mask2) {
break;
// Exit
case kbEsc:
sel = 3;
sel = MAINMENU_EXIT;
run = FALSE;
break;
// Select up
case kbUp:
sel = sel > 0 ? sel - 1 : 3;
sel = sel > 0 ? sel - 1 : MAINMENU_MAX;
PlaySample(MenuSnd, 8, 32, 128);
DrawMN(pt1, pt2, bg, sel);
break;
// Select down
case kbDown:
sel = sel < 3 ? sel + 1 : 0;
sel = sel < MAINMENU_MAX ? sel + 1 : 0;
PlaySample(MenuSnd, 8, 32, 128);
DrawMN(pt1, pt2, bg, sel);
break;
}
} else if (e.What == evQuit) {
PutEvent(&e);
sel = 3;
sel = MAINMENU_EXIT;
run = FALSE;
}
}
Expand All @@ -174,42 +174,56 @@ static int ProcessMenu(const char *mask1, const char *mask2) {

extern char ActualDifficulty;

int DoMainMenu()
{
int rtval = -1;
//char *pa = (char*) GraphicsDF->get("menupal");
uint8_t *pa = (uint8_t*) GraphicsDF->get("palette");

PlayMusic("solution.s3m");

DoneInteract();
ClearScr();
SetPalette(pa);
MenuSnd = LoadSample("menu", FALSE);
FlashSnd = LoadSample("flash", FALSE);

while (rtval == -1) {
rtval = ProcessMenu("mmnu0", "mmnu1");
if (rtval == 0) /*new game*/ {
rtval = ProcessMenu("mmnu2", "mmnu3"); // dificulty
if (rtval == 3) {rtval = -1; continue;}
switch (rtval) {
case 0 : ActualDifficulty = 'e'; break;
case 1 : ActualDifficulty = 'n'; break;
case 2 : ActualDifficulty = 'h'; break;
}
rtval = 0;
break;
}
}

FreeSample(MenuSnd);
FreeSample(FlashSnd);
ClearScr();
SetPalette(Palette);
InitInteract();
memfree(pa);
return rtval;
int DoMainMenu() {
int rtval = -1;
//char *pa = (char*) GraphicsDF->get("menupal");
uint8_t *pa = (uint8_t*) GraphicsDF->get("palette");

PlayMusic("solution.s3m");

DoneInteract();
ClearScr();
SetPalette(pa);
MenuSnd = LoadSample("menu", FALSE);
FlashSnd = LoadSample("flash", FALSE);

while (rtval == -1) {
rtval = ProcessMenu("mmnu0", "mmnu1");

if (rtval == MAINMENU_NEWGAME) {
rtval = ProcessMenu("mmnu2", "mmnu3"); // dificulty

if (rtval == MAINMENU_EXIT) {
rtval = -1;
continue;
}

switch (rtval) {
case 0:
ActualDifficulty = 'e';
break;

case 1:
ActualDifficulty = 'n';
break;

case 2:
ActualDifficulty = 'h';
break;
}

rtval = 0;
break;
}
}

FreeSample(MenuSnd);
FreeSample(FlashSnd);
ClearScr();
SetPalette(Palette);
InitInteract();
memfree(pa);
return rtval;
}


Expand Down
6 changes: 5 additions & 1 deletion signus/src/mainmenu.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@ MAINMENU : Vstupni menu hry - osetreni
#ifndef _MAINMENU_H
#define _MAINMENU_H


#define MAINMENU_NEWGAME 0
#define MAINMENU_LOADGAME 1
#define MAINMENU_CREDITS 2
#define MAINMENU_EXIT 3
#define MAINMENU_MAX 3

extern int DoMainMenu();
// provadi vyber v menu a vraci prislusne hodnoty
Expand Down
17 changes: 11 additions & 6 deletions signus/src/signus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@

#define LOADED_NORMAL 1
#define LOADED_CRASH 2
#define CRASH_RECOVERY 666


/////////////////////////////// PROMNENE ////////////////////////////////
Expand Down Expand Up @@ -1314,13 +1315,13 @@ void signus_main() {

while (result != 3) {
if (crash) {
result = 666;
result = CRASH_RECOVERY;
} else {
result = DoMainMenu();
}

switch (result) {
case 0:
case MAINMENU_NEWGAME:
PlayAnimation("intro2");
ActualMission = 1;
if (getenv("HELLMASTER")) {
Expand All @@ -1330,7 +1331,9 @@ void signus_main() {
while (RunSignus(FALSE));
break;

case 1: ActualMission = -1;
case MAINMENU_LOADGAME:
ActualMission = -1;

if (!LoadGame()) {
break;
}
Expand All @@ -1343,7 +1346,9 @@ void signus_main() {

break;

case 666: // signus nacten v CrashLoad() --> server chce rovnou spustit AI...
case CRASH_RECOVERY:
// Game loaded from crash autosave => start enemy turn
// immediately
fs = LOADED_CRASH;
crash = FALSE;

Expand All @@ -1353,11 +1358,11 @@ void signus_main() {

break;

case 2:
case MAINMENU_CREDITS:
ShowCredits();
break;

case 3:
case MAINMENU_EXIT:
break;
}
}
Expand Down

0 comments on commit 29692e2

Please sign in to comment.