SOC the entire main menu
This commit is contained in:
parent
d916fee3a6
commit
56dcba3594
4 changed files with 125 additions and 56 deletions
|
|
@ -2147,6 +2147,10 @@ void readtextprompt(MYFILE *f, INT32 num)
|
||||||
|
|
||||||
// super secret menu cvars... :shushing_face:
|
// super secret menu cvars... :shushing_face:
|
||||||
static struct { const char *name; consvar_t *var; } HIDDENVARS[] = {
|
static struct { const char *name; consvar_t *var; } HIDDENVARS[] = {
|
||||||
|
{ "CHOOSESKIN", &cv_chooseskin },
|
||||||
|
{ "DUMMYGPDIFFICULTY", &cv_dummygpdifficulty },
|
||||||
|
{ "DUMMYGPENCORE", &cv_dummygpencore },
|
||||||
|
{ "DUMMYGPCUP", &cv_dummygpcup },
|
||||||
{ "NEXTMAP", &cv_nextmap },
|
{ "NEXTMAP", &cv_nextmap },
|
||||||
{ "NEWGAMETYPE", &cv_newgametype },
|
{ "NEWGAMETYPE", &cv_newgametype },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
|
|
@ -2207,6 +2211,8 @@ static void readmenuitem(MYFILE *f, menu_t *menudef, char *itemname)
|
||||||
flags = IT_SECRET;
|
flags = IT_SECRET;
|
||||||
else if (fastcmp(word+4, "WHITE"))
|
else if (fastcmp(word+4, "WHITE"))
|
||||||
flags = IT_WHITESTRING;
|
flags = IT_WHITESTRING;
|
||||||
|
else if (fastcmp(word+4, "DISABLED"))
|
||||||
|
flags = IT_DISABLED;
|
||||||
else if (word[4])
|
else if (word[4])
|
||||||
{
|
{
|
||||||
deh_warning("MenuItem %s: unknown word '%s'", "", word);
|
deh_warning("MenuItem %s: unknown word '%s'", "", word);
|
||||||
|
|
@ -2276,8 +2282,23 @@ static void readmenuitem(MYFILE *f, menu_t *menudef, char *itemname)
|
||||||
menuitem->status |= IT_SUBMENU;
|
menuitem->status |= IT_SUBMENU;
|
||||||
menuitem->itemaction.submenu = menunum2menudef[mn];
|
menuitem->itemaction.submenu = menunum2menudef[mn];
|
||||||
}
|
}
|
||||||
else if (fastcmp(word, "CALL") || fastcmp(word, "KEYHANDLER"))
|
else if (fastncmp(word, "CALL", 4) || fastcmp(word, "KEYHANDLER"))
|
||||||
{
|
{
|
||||||
|
UINT16 flags;
|
||||||
|
if (word[0] == 'C')
|
||||||
|
{
|
||||||
|
flags = IT_CALL;
|
||||||
|
if (fastcmp(word+4, "NOTMODIFIED"))
|
||||||
|
flags |= IT_CALL_NOTMODIFIED;
|
||||||
|
else if (word[4])
|
||||||
|
{
|
||||||
|
deh_warning("MenuItem %s: unknown word '%s'", "", word);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flags = IT_KEYHANDLER;
|
||||||
|
|
||||||
if (actionset)
|
if (actionset)
|
||||||
{
|
{
|
||||||
deh_warning("MenuItem %s: action already set!", "");
|
deh_warning("MenuItem %s: action already set!", "");
|
||||||
|
|
@ -2290,7 +2311,7 @@ static void readmenuitem(MYFILE *f, menu_t *menudef, char *itemname)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
actionset = true;
|
actionset = true;
|
||||||
menuitem->status |= word[0] == 'C' ? IT_CALL : IT_KEYHANDLER;
|
menuitem->status |= flags;
|
||||||
menuitem->itemaction.routine = routine;
|
menuitem->itemaction.routine = routine;
|
||||||
}
|
}
|
||||||
else if (fastcmp(word, "ALPHAKEY") || fastcmp(word, "Y"))
|
else if (fastcmp(word, "ALPHAKEY") || fastcmp(word, "Y"))
|
||||||
|
|
@ -2302,6 +2323,10 @@ static void readmenuitem(MYFILE *f, menu_t *menudef, char *itemname)
|
||||||
}
|
}
|
||||||
while (!myfeof(f)); // finish when the line is empty
|
while (!myfeof(f)); // finish when the line is empty
|
||||||
|
|
||||||
|
// text pointer cannot be null
|
||||||
|
if (!textset)
|
||||||
|
menuitem->text = "";
|
||||||
|
|
||||||
Z_Free(s);
|
Z_Free(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -693,13 +693,33 @@ const char *const MENUTYPES_LIST[] = {
|
||||||
"OP_CAMERA",
|
"OP_CAMERA",
|
||||||
"OP_P3CAMERA",
|
"OP_P3CAMERA",
|
||||||
"OP_P4CAMERA",
|
"OP_P4CAMERA",
|
||||||
"MISC_REPLAY",
|
"MISC_REPLAYOPTIONS",
|
||||||
"MP_OFFLINESERVER",
|
"MP_OFFLINESERVER",
|
||||||
|
"SP_GRANDPRIX",
|
||||||
|
"MISC_REPLAYHUT",
|
||||||
|
|
||||||
"SPECIAL"
|
"SPECIAL"
|
||||||
};
|
};
|
||||||
|
|
||||||
struct menu_routine_s const MENU_ROUTINES[] = {
|
struct menu_routine_s const MENU_ROUTINES[] = {
|
||||||
|
{ "SINGLEPLAYERMENU", &M_SinglePlayerMenu },
|
||||||
|
{ "OPTIONS", &M_Options },
|
||||||
|
{ "ADDONS", &M_Addons },
|
||||||
|
{ "QUITSRB2", &M_QuitSRB2 },
|
||||||
|
{ "STATISTICS", &M_Statistics },
|
||||||
|
{ "HANDLELEVELSTATS", &M_HandleLevelStats },
|
||||||
|
{ "REPLAYHUT", &M_ReplayHut },
|
||||||
|
{ "QUITREPLAYHUT", &M_QuitReplayHut },
|
||||||
|
{ "HANDLEREPLAYHUTLIST", &M_HandleReplayHutList },
|
||||||
|
{ "GRANDPRIXTEMP", &M_GrandPrixTemp },
|
||||||
|
{ "TIMEATTACK", &M_TimeAttack },
|
||||||
|
{ "ITEMBREAKER", &M_ItemBreaker },
|
||||||
|
{ "STARTGRANDPRIX", &M_StartGrandPrix },
|
||||||
|
{ "QUITTIMEATTACKMENU", &M_QuitTimeAttackMenu },
|
||||||
|
{ "CHOOSETIMEATTACK", &M_ChooseTimeAttack },
|
||||||
|
{ "SETGUESTREPLAY", &M_SetGuestReplay },
|
||||||
|
{ "REPLAYTIMEATTACK", &M_ReplayTimeAttack },
|
||||||
|
{ "HANDLESTAFFREPLAY", &M_HandleStaffReplay },
|
||||||
{ "SETUPMULTIHANDLER", &M_SetupMultiHandler },
|
{ "SETUPMULTIHANDLER", &M_SetupMultiHandler },
|
||||||
{ "HANDLESETUPMULTIPLAYER", &M_HandleSetupMultiPlayer },
|
{ "HANDLESETUPMULTIPLAYER", &M_HandleSetupMultiPlayer },
|
||||||
{ "QUITMULTIPLAYERMENU", &M_QuitMultiPlayerMenu },
|
{ "QUITMULTIPLAYERMENU", &M_QuitMultiPlayerMenu },
|
||||||
|
|
@ -726,11 +746,17 @@ struct menu_routine_s const MENU_ROUTINES[] = {
|
||||||
{ "MANUAL", &M_Manual },
|
{ "MANUAL", &M_Manual },
|
||||||
{ "CREDITS", &M_Credits },
|
{ "CREDITS", &M_Credits },
|
||||||
{ "BLANCREDITS", &M_BlanCredits },
|
{ "BLANCREDITS", &M_BlanCredits },
|
||||||
|
{ "HANDLEADDONS", &M_HandleAddons },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct menu_drawer_s const MENU_DRAWERS[] = {
|
struct menu_drawer_s const MENU_DRAWERS[] = {
|
||||||
{ "DRAWGENERICMENU", &M_DrawGenericMenu },
|
{ "DRAWGENERICMENU", &M_DrawGenericMenu },
|
||||||
|
{ "DRAWCENTEREDMENU", &M_DrawCenteredMenu },
|
||||||
|
{ "DRAWCHECKLIST", &M_DrawChecklist },
|
||||||
|
{ "DRAWLEVELSTATS", &M_DrawLevelStats },
|
||||||
|
{ "DRAWREPLAYHUT", &M_DrawReplayHut },
|
||||||
|
{ "DRAWTIMEATTACKMENU", &M_DrawTimeAttackMenu },
|
||||||
{ "DRAWMPMAINMENU", &M_DrawMPMainMenu },
|
{ "DRAWMPMAINMENU", &M_DrawMPMainMenu },
|
||||||
{ "DRAWSETUPMULTIPLAYERMENU", &M_DrawSetupMultiPlayerMenu },
|
{ "DRAWSETUPMULTIPLAYERMENU", &M_DrawSetupMultiPlayerMenu },
|
||||||
{ "DRAWSERVERMENU", &M_DrawServerMenu },
|
{ "DRAWSERVERMENU", &M_DrawServerMenu },
|
||||||
|
|
@ -738,6 +764,7 @@ struct menu_drawer_s const MENU_DRAWERS[] = {
|
||||||
{ "DRAWVIDEOMODE", &M_DrawVideoMode },
|
{ "DRAWVIDEOMODE", &M_DrawVideoMode },
|
||||||
{ "DRAWSKYROOM", &M_DrawSkyRoom },
|
{ "DRAWSKYROOM", &M_DrawSkyRoom },
|
||||||
{ "DRAWHUDOPTIONS", &M_DrawHUDOptions },
|
{ "DRAWHUDOPTIONS", &M_DrawHUDOptions },
|
||||||
|
{ "DRAWADDONS", &M_DrawAddons },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
94
src/m_menu.c
94
src/m_menu.c
|
|
@ -233,8 +233,6 @@ static char *M_GetConditionString(condition_t cond);
|
||||||
menu_t SR_MainDef, SR_UnlockChecklistDef;
|
menu_t SR_MainDef, SR_UnlockChecklistDef;
|
||||||
|
|
||||||
// Misc. Main Menu
|
// Misc. Main Menu
|
||||||
static void M_SinglePlayerMenu(INT32 choice);
|
|
||||||
static void M_Options(INT32 choice);
|
|
||||||
static void M_SelectableClearMenus(INT32 choice);
|
static void M_SelectableClearMenus(INT32 choice);
|
||||||
static void M_Retry(INT32 choice);
|
static void M_Retry(INT32 choice);
|
||||||
static void M_EndGame(INT32 choice);
|
static void M_EndGame(INT32 choice);
|
||||||
|
|
@ -247,23 +245,12 @@ static void M_ConfirmTeamChange(INT32 choice);
|
||||||
static void M_ConfirmSpectateChange(INT32 choice);
|
static void M_ConfirmSpectateChange(INT32 choice);
|
||||||
//static void M_SecretsMenu(INT32 choice);
|
//static void M_SecretsMenu(INT32 choice);
|
||||||
//static void M_SetupChoosePlayer(INT32 choice);
|
//static void M_SetupChoosePlayer(INT32 choice);
|
||||||
static void M_QuitSRB2(INT32 choice);
|
|
||||||
menu_t SP_MainDef, MP_MainDef, OP_MainDef;
|
menu_t SP_MainDef, MP_MainDef, OP_MainDef;
|
||||||
menu_t MISC_ScrambleTeamDef, MISC_ChangeTeamDef, MISC_ChangeSpectateDef;
|
menu_t MISC_ScrambleTeamDef, MISC_ChangeTeamDef, MISC_ChangeSpectateDef;
|
||||||
|
|
||||||
// Single Player
|
// Single Player
|
||||||
static void M_GrandPrixTemp(INT32 choice);
|
|
||||||
static void M_StartGrandPrix(INT32 choice);
|
|
||||||
static void M_TimeAttack(INT32 choice);
|
|
||||||
static void M_QuitTimeAttackMenu(INT32 choice);
|
|
||||||
static void M_ItemBreaker(INT32 choice);
|
|
||||||
static void M_Statistics(INT32 choice);
|
|
||||||
static void M_HandleStaffReplay(INT32 choice);
|
|
||||||
static void M_ReplayTimeAttack(INT32 choice);
|
|
||||||
static void M_ChooseTimeAttack(INT32 choice);
|
|
||||||
//static void M_ChooseNightsAttack(INT32 choice);
|
//static void M_ChooseNightsAttack(INT32 choice);
|
||||||
static void M_ModeAttackEndGame(INT32 choice);
|
static void M_ModeAttackEndGame(INT32 choice);
|
||||||
static void M_SetGuestReplay(INT32 choice);
|
|
||||||
//static void M_ChoosePlayer(INT32 choice);
|
//static void M_ChoosePlayer(INT32 choice);
|
||||||
menu_t SP_LevelStatsDef;
|
menu_t SP_LevelStatsDef;
|
||||||
static menu_t SP_GrandPrixTempDef;
|
static menu_t SP_GrandPrixTempDef;
|
||||||
|
|
@ -317,7 +304,6 @@ menu_t OP_AdvServerOptionsDef;
|
||||||
//menu_t OP_NetgameOptionsDef, OP_GametypeOptionsDef;
|
//menu_t OP_NetgameOptionsDef, OP_GametypeOptionsDef;
|
||||||
menu_t OP_MonitorToggleDef;
|
menu_t OP_MonitorToggleDef;
|
||||||
|
|
||||||
static void M_Addons(INT32 choice);
|
|
||||||
static patch_t *addonsp[NUM_EXT+5];
|
static patch_t *addonsp[NUM_EXT+5];
|
||||||
|
|
||||||
#define numaddonsshown 4
|
#define numaddonsshown 4
|
||||||
|
|
@ -325,10 +311,7 @@ static patch_t *addonsp[NUM_EXT+5];
|
||||||
// Replay hut
|
// Replay hut
|
||||||
menu_t MISC_ReplayHutDef;
|
menu_t MISC_ReplayHutDef;
|
||||||
menu_t MISC_ReplayOptionsDef;
|
menu_t MISC_ReplayOptionsDef;
|
||||||
static void M_HandleReplayHutList(INT32 choice);
|
|
||||||
static void M_DrawReplayHut(void);
|
|
||||||
static void M_DrawReplayStartMenu(void);
|
static void M_DrawReplayStartMenu(void);
|
||||||
static void M_QuitReplayHut(INT32 choice);
|
|
||||||
static void M_HutStartReplay(INT32 choice);
|
static void M_HutStartReplay(INT32 choice);
|
||||||
|
|
||||||
static void M_DrawPlaybackMenu(void);
|
static void M_DrawPlaybackMenu(void);
|
||||||
|
|
@ -345,17 +328,12 @@ static UINT8 playback_enterheld = 0; // horrid hack to prevent holding the butto
|
||||||
|
|
||||||
// Drawing functions
|
// Drawing functions
|
||||||
static void M_DrawGenericBackgroundMenu(void);
|
static void M_DrawGenericBackgroundMenu(void);
|
||||||
static void M_DrawCenteredMenu(void);
|
|
||||||
static void M_DrawAddons(void);
|
|
||||||
static void M_DrawChecklist(void);
|
|
||||||
static void M_DrawMusicTest(void);
|
static void M_DrawMusicTest(void);
|
||||||
static void M_DrawEmblemHints(void);
|
static void M_DrawEmblemHints(void);
|
||||||
static void M_DrawPauseMenu(void);
|
static void M_DrawPauseMenu(void);
|
||||||
static void M_DrawLevelSelectOnly(boolean leftfade, boolean rightfade);
|
static void M_DrawLevelSelectOnly(boolean leftfade, boolean rightfade);
|
||||||
static void M_DrawImageDef(void);
|
static void M_DrawImageDef(void);
|
||||||
//static void M_DrawLoad(void);
|
//static void M_DrawLoad(void);
|
||||||
static void M_DrawLevelStats(void);
|
|
||||||
static void M_DrawTimeAttackMenu(void);
|
|
||||||
//static void M_DrawNightsAttackMenu(void);
|
//static void M_DrawNightsAttackMenu(void);
|
||||||
//static void M_DrawSetupChoosePlayerMenu(void);
|
//static void M_DrawSetupChoosePlayerMenu(void);
|
||||||
static void M_DrawControl(void);
|
static void M_DrawControl(void);
|
||||||
|
|
@ -365,11 +343,9 @@ static void M_DrawJoystick(void);
|
||||||
|
|
||||||
// Handling functions
|
// Handling functions
|
||||||
static void M_ExitPandorasBox(INT32 choice);
|
static void M_ExitPandorasBox(INT32 choice);
|
||||||
static void M_HandleAddons(INT32 choice);
|
|
||||||
static void M_HandleMusicTest(INT32 choice);
|
static void M_HandleMusicTest(INT32 choice);
|
||||||
static void M_HandleImageDef(INT32 choice);
|
static void M_HandleImageDef(INT32 choice);
|
||||||
//static void M_HandleLoadSave(INT32 choice);
|
//static void M_HandleLoadSave(INT32 choice);
|
||||||
static void M_HandleLevelStats(INT32 choice);
|
|
||||||
static void M_HandleMonitorToggles(INT32 choice);
|
static void M_HandleMonitorToggles(INT32 choice);
|
||||||
|
|
||||||
// uhhhhhh hack?
|
// uhhhhhh hack?
|
||||||
|
|
@ -382,7 +358,7 @@ static void Dummymenuplayer_OnChange(void);
|
||||||
static void Dummystaff_OnChange(void);
|
static void Dummystaff_OnChange(void);
|
||||||
|
|
||||||
// temporary measure until menu_t and menupres_t are merged (hopefully)
|
// temporary measure until menu_t and menupres_t are merged (hopefully)
|
||||||
menu_t MP_PlayerSetupDef, MP_ServerDef, MP_OfflineServerDef, OP_AddonsOptionsDef;
|
menu_t MP_PlayerSetupDef, MP_ServerDef, MP_OfflineServerDef, OP_AddonsOptionsDef, MISC_AddonsDef;
|
||||||
menu_t *menunum2menudef[NUMMENUTYPES] = {
|
menu_t *menunum2menudef[NUMMENUTYPES] = {
|
||||||
[MN_OP_CAMERA] = &OP_CamOptionsDef,
|
[MN_OP_CAMERA] = &OP_CamOptionsDef,
|
||||||
[MN_OP_P1CAMERA] = &OP_Player1CamOptionsDef,
|
[MN_OP_P1CAMERA] = &OP_Player1CamOptionsDef,
|
||||||
|
|
@ -407,13 +383,27 @@ menu_t *menunum2menudef[NUMMENUTYPES] = {
|
||||||
[MN_OP_ADDONS] = &OP_AddonsOptionsDef,
|
[MN_OP_ADDONS] = &OP_AddonsOptionsDef,
|
||||||
[MN_OP_SCREENSHOTS] = &OP_ScreenshotOptionsDef,
|
[MN_OP_SCREENSHOTS] = &OP_ScreenshotOptionsDef,
|
||||||
[MN_OP_ERASEDATA] = &OP_EraseDataDef,
|
[MN_OP_ERASEDATA] = &OP_EraseDataDef,
|
||||||
[MN_MISC_REPLAY] = &MISC_ReplayOptionsDef,
|
[MN_MISC_REPLAYOPTIONS] = &MISC_ReplayOptionsDef,
|
||||||
|
|
||||||
[MN_MP_MAIN] = &MP_MainDef,
|
[MN_MP_MAIN] = &MP_MainDef,
|
||||||
[MN_MP_PLAYERSETUP] = &MP_PlayerSetupDef,
|
[MN_MP_PLAYERSETUP] = &MP_PlayerSetupDef,
|
||||||
[MN_MP_SERVER] = &MP_ServerDef,
|
[MN_MP_SERVER] = &MP_ServerDef,
|
||||||
[MN_MP_OFFLINESERVER] = &MP_OfflineServerDef,
|
[MN_MP_OFFLINESERVER] = &MP_OfflineServerDef,
|
||||||
|
|
||||||
|
[MN_SP_MAIN] = &SP_MainDef,
|
||||||
|
[MN_SP_GRANDPRIX] = &SP_GrandPrixTempDef,
|
||||||
|
[MN_SP_TIMEATTACK] = &SP_TimeAttackDef,
|
||||||
|
[MN_SP_GUESTREPLAY] = &SP_GuestReplayDef,
|
||||||
|
[MN_SP_REPLAY] = &SP_ReplayDef,
|
||||||
|
[MN_SP_GHOST] = &SP_GhostDef,
|
||||||
|
|
||||||
|
[MN_SR_MAIN] = &SR_MainDef,
|
||||||
|
[MN_SR_UNLOCKCHECKLIST] = &SR_UnlockChecklistDef,
|
||||||
|
[MN_SP_LEVELSTATS] = &SP_LevelStatsDef,
|
||||||
|
[MN_MISC_REPLAYHUT] = &MISC_ReplayHutDef,
|
||||||
|
|
||||||
|
[MN_AD_MAIN] = &MISC_AddonsDef,
|
||||||
|
|
||||||
[MN_MAIN] = &MainDef,
|
[MN_MAIN] = &MainDef,
|
||||||
|
|
||||||
[MN_FIRSTFREESLOT] = &FreeslotTest,
|
[MN_FIRSTFREESLOT] = &FreeslotTest,
|
||||||
|
|
@ -498,9 +488,9 @@ static consvar_t cv_dummystaff = CVAR_INIT ("dummystaff", "0", CV_HIDEN|CV_CALL,
|
||||||
static CV_PossibleValue_t dummygpdifficulty_cons_t[] = {{0, "Easy"}, {1, "Normal"}, {2, "Hard"}, {3, "Master"}, {0, NULL}};
|
static CV_PossibleValue_t dummygpdifficulty_cons_t[] = {{0, "Easy"}, {1, "Normal"}, {2, "Hard"}, {3, "Master"}, {0, NULL}};
|
||||||
static CV_PossibleValue_t dummygpcup_cons_t[50] = {{1, "TEMP"}}; // A REALLY BIG NUMBER, SINCE THIS IS TEMP UNTIL NEW MENUS
|
static CV_PossibleValue_t dummygpcup_cons_t[50] = {{1, "TEMP"}}; // A REALLY BIG NUMBER, SINCE THIS IS TEMP UNTIL NEW MENUS
|
||||||
|
|
||||||
static consvar_t cv_dummygpdifficulty = CVAR_INIT ("dummygpdifficulty", "Normal", CV_HIDEN, dummygpdifficulty_cons_t, NULL);
|
consvar_t cv_dummygpdifficulty = CVAR_INIT ("dummygpdifficulty", "Normal", CV_HIDEN, dummygpdifficulty_cons_t, NULL);
|
||||||
static consvar_t cv_dummygpencore = CVAR_INIT ("dummygpencore", "Off", CV_HIDEN, CV_OnOff, NULL);
|
consvar_t cv_dummygpencore = CVAR_INIT ("dummygpencore", "Off", CV_HIDEN, CV_OnOff, NULL);
|
||||||
static consvar_t cv_dummygpcup = CVAR_INIT ("dummygpcup", "TEMP", CV_HIDEN, dummygpcup_cons_t, NULL);
|
consvar_t cv_dummygpcup = CVAR_INIT ("dummygpcup", "TEMP", CV_HIDEN, dummygpcup_cons_t, NULL);
|
||||||
|
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
// ORGANIZATION START.
|
// ORGANIZATION START.
|
||||||
|
|
@ -4252,7 +4242,7 @@ static void M_DrawPauseMenu(void)
|
||||||
M_DrawGenericMenu();
|
M_DrawGenericMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_DrawCenteredMenu(void)
|
void M_DrawCenteredMenu(void)
|
||||||
{
|
{
|
||||||
INT32 x, y, i, cursory = 0;
|
INT32 x, y, i, cursory = 0;
|
||||||
|
|
||||||
|
|
@ -4864,7 +4854,7 @@ void M_AddonsOptions(INT32 choice)
|
||||||
#define LOCATIONSTRING1 "Visit \x83SRB2.ORG/MODS\x80 to get & make addons!"
|
#define LOCATIONSTRING1 "Visit \x83SRB2.ORG/MODS\x80 to get & make addons!"
|
||||||
#define LOCATIONSTRING2 "Visit \x88SRB2.ORG/MODS\x80 to get & make addons!"
|
#define LOCATIONSTRING2 "Visit \x88SRB2.ORG/MODS\x80 to get & make addons!"
|
||||||
|
|
||||||
static void M_Addons(INT32 choice)
|
void M_Addons(INT32 choice)
|
||||||
{
|
{
|
||||||
const char *pathname = ".";
|
const char *pathname = ".";
|
||||||
|
|
||||||
|
|
@ -5071,7 +5061,7 @@ static boolean M_AddonsRefresh(void)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_DrawAddons(void)
|
void M_DrawAddons(void)
|
||||||
{
|
{
|
||||||
INT32 x, y;
|
INT32 x, y;
|
||||||
ssize_t i, m;
|
ssize_t i, m;
|
||||||
|
|
@ -5257,7 +5247,7 @@ static boolean M_ChangeStringAddons(INT32 choice)
|
||||||
}
|
}
|
||||||
#undef len
|
#undef len
|
||||||
|
|
||||||
static void M_HandleAddons(INT32 choice)
|
void M_HandleAddons(INT32 choice)
|
||||||
{
|
{
|
||||||
boolean exitmenu = false; // exit to previous menu
|
boolean exitmenu = false; // exit to previous menu
|
||||||
|
|
||||||
|
|
@ -5471,7 +5461,7 @@ void M_ReplayHut(INT32 choice)
|
||||||
S_ChangeMusicInternal("replst", true);
|
S_ChangeMusicInternal("replst", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_HandleReplayHutList(INT32 choice)
|
void M_HandleReplayHutList(INT32 choice)
|
||||||
{
|
{
|
||||||
switch (choice)
|
switch (choice)
|
||||||
{
|
{
|
||||||
|
|
@ -5710,7 +5700,7 @@ static void DrawReplayHutReplayInfo(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_DrawReplayHut(void)
|
void M_DrawReplayHut(void)
|
||||||
{
|
{
|
||||||
INT32 x, y, cursory = 0;
|
INT32 x, y, cursory = 0;
|
||||||
INT16 i;
|
INT16 i;
|
||||||
|
|
@ -5966,7 +5956,7 @@ static void M_DrawReplayStartMenu(void)
|
||||||
V_DrawSmallString(4, BASEVIDHEIGHT-14, V_SNAPTOBOTTOM|V_SNAPTOLEFT|V_ALLOWLOWERCASE, warning);
|
V_DrawSmallString(4, BASEVIDHEIGHT-14, V_SNAPTOBOTTOM|V_SNAPTOLEFT|V_ALLOWLOWERCASE, warning);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_QuitReplayHut(INT32 choice)
|
void M_QuitReplayHut(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
|
|
||||||
|
|
@ -6381,7 +6371,7 @@ static void M_ConfirmSpectateChange(INT32 choice)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_Options(INT32 choice)
|
void M_Options(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
|
|
||||||
|
|
@ -6563,7 +6553,7 @@ static char *M_GetConditionString(condition_t cond)
|
||||||
}
|
}
|
||||||
|
|
||||||
#define NUMCHECKLIST 23
|
#define NUMCHECKLIST 23
|
||||||
static void M_DrawChecklist(void)
|
void M_DrawChecklist(void)
|
||||||
{
|
{
|
||||||
UINT32 i, line = 0, c;
|
UINT32 i, line = 0, c;
|
||||||
INT32 lastid;
|
INT32 lastid;
|
||||||
|
|
@ -7251,7 +7241,7 @@ void M_BlanCredits(INT32 choice)
|
||||||
// SINGLE PLAYER MENU
|
// SINGLE PLAYER MENU
|
||||||
// ==================
|
// ==================
|
||||||
|
|
||||||
static void M_SinglePlayerMenu(INT32 choice)
|
void M_SinglePlayerMenu(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
|
|
||||||
|
|
@ -7938,7 +7928,7 @@ static statpage_t statsPages[] = {
|
||||||
#define LENSTATSPAGES (sizeof(statsPages)/sizeof(statsPages[0]))
|
#define LENSTATSPAGES (sizeof(statsPages)/sizeof(statsPages[0]))
|
||||||
#define NUMSTATSPAGES (kartstats.vanilla ? 2 : LENSTATSPAGES)
|
#define NUMSTATSPAGES (kartstats.vanilla ? 2 : LENSTATSPAGES)
|
||||||
|
|
||||||
static void M_Statistics(INT32 choice)
|
void M_Statistics(INT32 choice)
|
||||||
{
|
{
|
||||||
INT16 i, j = 0;
|
INT16 i, j = 0;
|
||||||
|
|
||||||
|
|
@ -8160,7 +8150,7 @@ static void M_DrawStatsExtra(void)
|
||||||
#undef DRAWAMOUNTSTAT
|
#undef DRAWAMOUNTSTAT
|
||||||
#undef DRAWTIMESTAT
|
#undef DRAWTIMESTAT
|
||||||
|
|
||||||
static void M_DrawLevelStats(void)
|
void M_DrawLevelStats(void)
|
||||||
{
|
{
|
||||||
M_DrawMenuTitle();
|
M_DrawMenuTitle();
|
||||||
|
|
||||||
|
|
@ -8176,7 +8166,7 @@ static void M_DrawLevelStats(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle statistics.
|
// Handle statistics.
|
||||||
static void M_HandleLevelStats(INT32 choice)
|
void M_HandleLevelStats(INT32 choice)
|
||||||
{
|
{
|
||||||
boolean exitmenu = false; // exit to previous menu
|
boolean exitmenu = false; // exit to previous menu
|
||||||
|
|
||||||
|
|
@ -8240,7 +8230,7 @@ static void M_HandleLevelStats(INT32 choice)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_GrandPrixTemp(INT32 choice)
|
void M_GrandPrixTemp(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
if (!M_PrepareCupList())
|
if (!M_PrepareCupList())
|
||||||
|
|
@ -8253,7 +8243,7 @@ static void M_GrandPrixTemp(INT32 choice)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start Grand Prix!
|
// Start Grand Prix!
|
||||||
static void M_StartGrandPrix(INT32 choice)
|
void M_StartGrandPrix(INT32 choice)
|
||||||
{
|
{
|
||||||
cupheader_t *gpcup = kartcupheaders;
|
cupheader_t *gpcup = kartcupheaders;
|
||||||
INT32 levelNum;
|
INT32 levelNum;
|
||||||
|
|
@ -8513,7 +8503,7 @@ void M_DrawTimeAttackMenu(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Going to Time Attack menu...
|
// Going to Time Attack menu...
|
||||||
static void M_TimeAttack(INT32 choice)
|
void M_TimeAttack(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
|
|
||||||
|
|
@ -8546,7 +8536,7 @@ static void M_TimeAttack(INT32 choice)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Same as above, but sets a different levellistmode. Should probably be merged...
|
// Same as above, but sets a different levellistmode. Should probably be merged...
|
||||||
static void M_ItemBreaker(INT32 choice)
|
void M_ItemBreaker(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
|
|
||||||
|
|
@ -8578,7 +8568,7 @@ static void M_ItemBreaker(INT32 choice)
|
||||||
S_ChangeMusicInternal("racent", true);
|
S_ChangeMusicInternal("racent", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_QuitTimeAttackMenu(INT32 choice)
|
void M_QuitTimeAttackMenu(INT32 choice)
|
||||||
{
|
{
|
||||||
(void)choice;
|
(void)choice;
|
||||||
|
|
||||||
|
|
@ -8587,7 +8577,7 @@ static void M_QuitTimeAttackMenu(INT32 choice)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Player has selected the "START" from the time attack screen
|
// Player has selected the "START" from the time attack screen
|
||||||
static void M_ChooseTimeAttack(INT32 choice)
|
void M_ChooseTimeAttack(INT32 choice)
|
||||||
{
|
{
|
||||||
char *gpath;
|
char *gpath;
|
||||||
char nameofdemo[256];
|
char nameofdemo[256];
|
||||||
|
|
@ -8613,7 +8603,7 @@ static void M_ChooseTimeAttack(INT32 choice)
|
||||||
G_DeferedInitNew(false, cv_nextmap.value, (UINT8)(cv_chooseskin.value-1), 0, false);
|
G_DeferedInitNew(false, cv_nextmap.value, (UINT8)(cv_chooseskin.value-1), 0, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_HandleStaffReplay(INT32 choice)
|
void M_HandleStaffReplay(INT32 choice)
|
||||||
{
|
{
|
||||||
boolean exitmenu = false; // exit to previous menu
|
boolean exitmenu = false; // exit to previous menu
|
||||||
lumpnum_t l = W_CheckNumForName(va("%sS%02u",G_BuildMapName(cv_nextmap.value),cv_dummystaff.value));
|
lumpnum_t l = W_CheckNumForName(va("%sS%02u",G_BuildMapName(cv_nextmap.value),cv_dummystaff.value));
|
||||||
|
|
@ -8661,7 +8651,7 @@ static void M_HandleStaffReplay(INT32 choice)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Player has selected the "REPLAY" from the time attack screen
|
// Player has selected the "REPLAY" from the time attack screen
|
||||||
static void M_ReplayTimeAttack(INT32 choice)
|
void M_ReplayTimeAttack(INT32 choice)
|
||||||
{
|
{
|
||||||
const char *which;
|
const char *which;
|
||||||
const char *gamemode = (levellistmode == LLM_ITEMBREAKER) ? "IB" : "RA";
|
const char *gamemode = (levellistmode == LLM_ITEMBREAKER) ? "IB" : "RA";
|
||||||
|
|
@ -8786,7 +8776,7 @@ static void M_OverwriteGuest_Last(INT32 choice)
|
||||||
M_OverwriteGuest("last");
|
M_OverwriteGuest("last");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_SetGuestReplay(INT32 choice)
|
void M_SetGuestReplay(INT32 choice)
|
||||||
{
|
{
|
||||||
void (*which)(INT32);
|
void (*which)(INT32);
|
||||||
switch(choice)
|
switch(choice)
|
||||||
|
|
@ -11916,7 +11906,7 @@ void M_QuitResponse(INT32 ch)
|
||||||
I_Quit();
|
I_Quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_QuitSRB2(INT32 choice)
|
void M_QuitSRB2(INT32 choice)
|
||||||
{
|
{
|
||||||
// We pick index 0 which is language sensitive, or one at random,
|
// We pick index 0 which is language sensitive, or one at random,
|
||||||
// between 1 and maximum number.
|
// between 1 and maximum number.
|
||||||
|
|
|
||||||
29
src/m_menu.h
29
src/m_menu.h
|
|
@ -147,8 +147,10 @@ typedef enum
|
||||||
MN_OP_CAMERA,
|
MN_OP_CAMERA,
|
||||||
MN_OP_P3CAMERA,
|
MN_OP_P3CAMERA,
|
||||||
MN_OP_P4CAMERA,
|
MN_OP_P4CAMERA,
|
||||||
MN_MISC_REPLAY,
|
MN_MISC_REPLAYOPTIONS,
|
||||||
MN_MP_OFFLINESERVER,
|
MN_MP_OFFLINESERVER,
|
||||||
|
MN_SP_GRANDPRIX,
|
||||||
|
MN_MISC_REPLAYHUT,
|
||||||
|
|
||||||
MN_SPECIAL,
|
MN_SPECIAL,
|
||||||
|
|
||||||
|
|
@ -373,6 +375,23 @@ struct menu_t
|
||||||
void M_SetupNextMenu(menu_t *menudef);
|
void M_SetupNextMenu(menu_t *menudef);
|
||||||
void M_ClearMenus(boolean callexitmenufunc);
|
void M_ClearMenus(boolean callexitmenufunc);
|
||||||
|
|
||||||
|
void M_SinglePlayerMenu(INT32 choice);
|
||||||
|
void M_Options(INT32 choice);
|
||||||
|
void M_Addons(INT32 choice);
|
||||||
|
void M_QuitSRB2(INT32 choice);
|
||||||
|
void M_Statistics(INT32 choice);
|
||||||
|
void M_HandleLevelStats(INT32 choice);
|
||||||
|
void M_QuitReplayHut(INT32 choice);
|
||||||
|
void M_HandleReplayHutList(INT32 choice);
|
||||||
|
void M_GrandPrixTemp(INT32 choice);
|
||||||
|
void M_TimeAttack(INT32 choice);
|
||||||
|
void M_ItemBreaker(INT32 choice);
|
||||||
|
void M_StartGrandPrix(INT32 choice);
|
||||||
|
void M_QuitTimeAttackMenu(INT32 choice);
|
||||||
|
void M_ChooseTimeAttack(INT32 choice);
|
||||||
|
void M_SetGuestReplay(INT32 choice);
|
||||||
|
void M_ReplayTimeAttack(INT32 choice);
|
||||||
|
void M_HandleStaffReplay(INT32 choice);
|
||||||
void M_SetupMultiHandler(INT32 choice);
|
void M_SetupMultiHandler(INT32 choice);
|
||||||
void M_HandleSetupMultiPlayer(INT32 choice);
|
void M_HandleSetupMultiPlayer(INT32 choice);
|
||||||
void M_QuitMultiPlayerMenu(INT32 choice);
|
void M_QuitMultiPlayerMenu(INT32 choice);
|
||||||
|
|
@ -399,8 +418,14 @@ void M_EraseData(INT32 choice);
|
||||||
void M_Manual(INT32 choice);
|
void M_Manual(INT32 choice);
|
||||||
void M_Credits(INT32 choice);
|
void M_Credits(INT32 choice);
|
||||||
void M_BlanCredits(INT32 choice);
|
void M_BlanCredits(INT32 choice);
|
||||||
|
void M_HandleAddons(INT32 choice);
|
||||||
|
|
||||||
void M_DrawGenericMenu(void);
|
void M_DrawGenericMenu(void);
|
||||||
|
void M_DrawCenteredMenu(void);
|
||||||
|
void M_DrawChecklist(void);
|
||||||
|
void M_DrawLevelStats(void);
|
||||||
|
void M_DrawReplayHut(void);
|
||||||
|
void M_DrawTimeAttackMenu(void);
|
||||||
void M_DrawMPMainMenu(void);
|
void M_DrawMPMainMenu(void);
|
||||||
void M_DrawSetupMultiPlayerMenu(void);
|
void M_DrawSetupMultiPlayerMenu(void);
|
||||||
void M_DrawServerMenu(void);
|
void M_DrawServerMenu(void);
|
||||||
|
|
@ -408,6 +433,7 @@ void M_DrawVideoMenu(void);
|
||||||
void M_DrawVideoMode(void);
|
void M_DrawVideoMode(void);
|
||||||
void M_DrawSkyRoom(void);
|
void M_DrawSkyRoom(void);
|
||||||
void M_DrawHUDOptions(void);
|
void M_DrawHUDOptions(void);
|
||||||
|
void M_DrawAddons(void);
|
||||||
|
|
||||||
// Maybe this goes here????? Who knows.
|
// Maybe this goes here????? Who knows.
|
||||||
boolean M_MouseNeeded(void);
|
boolean M_MouseNeeded(void);
|
||||||
|
|
@ -494,6 +520,7 @@ extern description_t description[MAXSKINS];
|
||||||
|
|
||||||
extern consvar_t cv_showfocuslost;
|
extern consvar_t cv_showfocuslost;
|
||||||
extern consvar_t cv_newgametype, cv_nextmap, cv_chooseskin, cv_serversort;
|
extern consvar_t cv_newgametype, cv_nextmap, cv_chooseskin, cv_serversort;
|
||||||
|
extern consvar_t cv_dummygpdifficulty, cv_dummygpencore, cv_dummygpcup;
|
||||||
extern CV_PossibleValue_t gametype_cons_t[];
|
extern CV_PossibleValue_t gametype_cons_t[];
|
||||||
|
|
||||||
extern char dummystaffname[22];
|
extern char dummystaffname[22];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue