Sweep through the remaining menus

Server list remains untouched because I can't test it
This commit is contained in:
GenericHeroGuy 2025-03-19 13:47:42 +01:00
parent f3226c84a4
commit 3d016d4009
4 changed files with 104 additions and 61 deletions

View file

@ -2219,6 +2219,8 @@ static void readmenuitem(MYFILE *f, menu_t *menudef, char *itemname)
flags = IT_WHITESTRING; flags = IT_WHITESTRING;
else if (fastcmp(word+4, "DISABLED")) else if (fastcmp(word+4, "DISABLED"))
flags = IT_DISABLED; flags = IT_DISABLED;
else if (fastcmp(word+4, "2"))
flags = IT_STRING2;
else if (word[4]) else if (word[4])
{ {
deh_warning("MenuItem %s: unknown word '%s'", "", word); deh_warning("MenuItem %s: unknown word '%s'", "", word);
@ -2288,7 +2290,7 @@ 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 (fastncmp(word, "CALL", 4) || fastcmp(word, "KEYHANDLER")) else if (fastncmp(word, "CALL", 4) || fastcmp(word, "KEYHANDLER") || fastcmp(word, "ARROWS"))
{ {
UINT16 flags; UINT16 flags;
if (word[0] == 'C') if (word[0] == 'C')
@ -2302,8 +2304,12 @@ static void readmenuitem(MYFILE *f, menu_t *menudef, char *itemname)
continue; continue;
} }
} }
else else if (word[0] == 'K')
flags = IT_KEYHANDLER; flags = IT_KEYHANDLER;
else if (word[0] == 'A')
flags = IT_ARROWS;
else
I_Error("bruh"); // i should probably just make "CALL" the stem for all of these
if (actionset) if (actionset)
{ {

View file

@ -682,7 +682,7 @@ const char *const MENUTYPES_LIST[] = {
"CHANGELEVEL", "CHANGELEVEL",
"MAPAUSE", "MAPAUSE",
// "HELP", "HELP",
// SRB2Kart // SRB2Kart
"OP_HUD", "OP_HUD",
@ -699,6 +699,9 @@ const char *const MENUTYPES_LIST[] = {
"MISC_REPLAYHUT", "MISC_REPLAYHUT",
"MISC_DISCORDREQUESTS", "MISC_DISCORDREQUESTS",
"CHANGESPECTATE", "CHANGESPECTATE",
"MISC_REPLAYSTART",
"PLAYBACK",
"OP_CONTROLSETUP",
"SPECIAL" "SPECIAL"
}; };
@ -771,6 +774,25 @@ struct menu_routine_s const MENU_ROUTINES[] = {
{ "CONFIRMTEAMCHANGE", &M_ConfirmTeamChange }, { "CONFIRMTEAMCHANGE", &M_ConfirmTeamChange },
{ "CONFIRMSPECTATECHANGE", &M_ConfirmSpectateChange }, { "CONFIRMSPECTATECHANGE", &M_ConfirmSpectateChange },
{ "CHANGELEVEL", &M_ChangeLevel }, { "CHANGELEVEL", &M_ChangeLevel },
{ "HUTSTARTREPLAY", &M_HutStartReplay },
{ "PLAYBACKREWIND", &M_PlaybackRewind },
{ "PLAYBACKPAUSE", &M_PlaybackPause },
{ "PLAYBACKFASTFORWARD", &M_PlaybackFastForward },
{ "PLAYBACKADVANCE", &M_PlaybackAdvance },
{ "PLAYBACKSETVIEWS", &M_PlaybackSetViews },
{ "PLAYBACKADJUSTVIEW", &M_PlaybackAdjustView },
{ "PLAYBACKTOGGLEFREECAM", &M_PlaybackToggleFreecam },
{ "PLAYBACKQUIT", &M_PlaybackQuit },
{ "HANDLEIMAGEDEF", &M_HandleImageDef },
{ "HANDLEMUSICTEST", &M_HandleMusicTest },
{ "SETUP1PJOYSTICKMENU", &M_Setup1PJoystickMenu },
{ "SETUP2PJOYSTICKMENU", &M_Setup2PJoystickMenu },
{ "SETUP3PJOYSTICKMENU", &M_Setup3PJoystickMenu },
{ "SETUP4PJOYSTICKMENU", &M_Setup4PJoystickMenu },
{ "RESETCONTROLS", &M_ResetControls },
{ "CHANGECONTROL", &M_ChangeControl },
{ "ASSIGNJOYSTICK", &M_AssignJoystick },
{ "HANDLEMONITORTOGGLES", &M_HandleMonitorToggles },
{ NULL, NULL } { NULL, NULL }
}; };
@ -791,6 +813,13 @@ struct menu_drawer_s const MENU_DRAWERS[] = {
{ "DRAWHUDOPTIONS", &M_DrawHUDOptions }, { "DRAWHUDOPTIONS", &M_DrawHUDOptions },
{ "DRAWADDONS", &M_DrawAddons }, { "DRAWADDONS", &M_DrawAddons },
{ "DRAWEMBLEMHINTS", &M_DrawEmblemHints }, { "DRAWEMBLEMHINTS", &M_DrawEmblemHints },
{ "DRAWREPLAYSTARTMENU", &M_DrawReplayStartMenu },
{ "DRAWPLAYBACKMENU", &M_DrawPlaybackMenu },
{ "DRAWIMAGEDEF", &M_DrawImageDef },
{ "DRAWMUSICTEST", &M_DrawMusicTest },
{ "DRAWCONTROL", &M_DrawControl },
{ "DRAWJOYSTICK", &M_DrawJoystick },
{ "DRAWMONITORTOGGLES", &M_DrawMonitorToggles },
{ NULL, NULL } { NULL, NULL }
}; };

View file

@ -252,15 +252,6 @@ static void M_Connect(INT32 choice);
menu_t OP_ControlsDef, OP_AllControlsDef; menu_t OP_ControlsDef, OP_AllControlsDef;
menu_t OP_MouseOptionsDef; menu_t OP_MouseOptionsDef;
static void M_Setup1PJoystickMenu(INT32 choice);
static void M_Setup2PJoystickMenu(INT32 choice);
static void M_Setup3PJoystickMenu(INT32 choice);
static void M_Setup4PJoystickMenu(INT32 choice);
static void M_AssignJoystick(INT32 choice);
static void M_ChangeControl(INT32 choice);
static void M_ResetControls(INT32 choice);
//camera options menu //camera options menu
menu_t OP_CamOptionsDef; menu_t OP_CamOptionsDef;
menu_t OP_Player1CamOptionsDef, OP_Player2CamOptionsDef, OP_Player3CamOptionsDef, OP_Player4CamOptionsDef; menu_t OP_Player1CamOptionsDef, OP_Player2CamOptionsDef, OP_Player3CamOptionsDef, OP_Player4CamOptionsDef;
@ -291,39 +282,19 @@ 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_DrawReplayStartMenu(void);
static void M_HutStartReplay(INT32 choice);
static void M_DrawPlaybackMenu(void);
static void M_PlaybackRewind(INT32 choice);
static void M_PlaybackPause(INT32 choice);
static void M_PlaybackFastForward(INT32 choice);
static void M_PlaybackAdvance(INT32 choice);
static void M_PlaybackSetViews(INT32 choice);
static void M_PlaybackAdjustView(INT32 choice);
static void M_PlaybackToggleFreecam(INT32 choice);
static void M_PlaybackQuit(INT32 choice);
static UINT8 playback_enterheld = 0; // horrid hack to prevent holding the button from being extremely fucked static UINT8 playback_enterheld = 0; // horrid hack to prevent holding the button from being extremely fucked
// Drawing functions // Drawing functions
static void M_DrawGenericBackgroundMenu(void); static void M_DrawGenericBackgroundMenu(void);
static void M_DrawMusicTest(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_DrawLoad(void); //static void M_DrawLoad(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_DrawMonitorToggles(void);
static void M_DrawConnectMenu(void); static void M_DrawConnectMenu(void);
static void M_DrawJoystick(void);
// Handling functions // Handling functions
static void M_HandleMusicTest(INT32 choice);
static void M_HandleImageDef(INT32 choice);
//static void M_HandleLoadSave(INT32 choice); //static void M_HandleLoadSave(INT32 choice);
static void M_HandleMonitorToggles(INT32 choice);
// uhhhhhh hack? // uhhhhhh hack?
static void M_ChangecontrolResponse(event_t *ev); static void M_ChangecontrolResponse(event_t *ev);
@ -335,7 +306,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, MISC_AddonsDef, MPauseDef, MAPauseDef, SR_EmblemHintDef, SR_PandoraDef, MISC_ChangeLevelDef; menu_t MP_PlayerSetupDef, MP_ServerDef, MP_OfflineServerDef, OP_AddonsOptionsDef, MISC_AddonsDef, MPauseDef, MAPauseDef, SR_EmblemHintDef, SR_PandoraDef, MISC_ChangeLevelDef, MISC_ReplayStartDef, PlaybackMenuDef, MISC_HelpDef, SR_MusicTestDef, OP_JoystickSetDef;
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,
@ -344,7 +315,7 @@ menu_t *menunum2menudef[NUMMENUTYPES] = {
[MN_OP_P4CAMERA] = &OP_Player4CamOptionsDef, [MN_OP_P4CAMERA] = &OP_Player4CamOptionsDef,
[MN_OP_MAIN] = &OP_MainDef, [MN_OP_MAIN] = &OP_MainDef,
[MN_OP_CHANGECONTROLS] = &OP_ControlsDef, [MN_OP_CONTROLSETUP] = &OP_ControlsDef,
[MN_OP_VIDEO] = &OP_VideoOptionsDef, [MN_OP_VIDEO] = &OP_VideoOptionsDef,
[MN_OP_VIDEOMODE] = &OP_VideoModeDef, [MN_OP_VIDEOMODE] = &OP_VideoModeDef,
[MN_OP_OPENGL] = &OP_OpenGLOptionsDef, [MN_OP_OPENGL] = &OP_OpenGLOptionsDef,
@ -391,6 +362,14 @@ menu_t *menunum2menudef[NUMMENUTYPES] = {
[MN_CHANGESPECTATE] = &MISC_ChangeSpectateDef, [MN_CHANGESPECTATE] = &MISC_ChangeSpectateDef,
[MN_CHANGELEVEL] = &MISC_ChangeLevelDef, [MN_CHANGELEVEL] = &MISC_ChangeLevelDef,
// who even cares how i sort this shit anymore
[MN_MISC_REPLAYSTART] = &MISC_ReplayStartDef,
[MN_PLAYBACK] = &PlaybackMenuDef,
[MN_HELP] = &MISC_HelpDef,
[MN_SR_SOUNDTEST] = &SR_MusicTestDef,
[MN_OP_CHANGECONTROLS] = &OP_AllControlsDef,
[MN_OP_JOYSTICKSET] = &OP_JoystickSetDef,
[MN_MAIN] = &MainDef, [MN_MAIN] = &MainDef,
[MN_FIRSTFREESLOT] = &FreeslotTest, [MN_FIRSTFREESLOT] = &FreeslotTest,
@ -4762,7 +4741,7 @@ static void M_StopMessage(INT32 choice)
// Draw an Image Def. Aka, Help images. // Draw an Image Def. Aka, Help images.
// Defines what image is used in (menuitem_t)->text. // Defines what image is used in (menuitem_t)->text.
// You can even put multiple images in one menu! // You can even put multiple images in one menu!
static void M_DrawImageDef(void) void M_DrawImageDef(void)
{ {
patch_t *patch = W_CachePatchName(currentMenu->menuitems[itemOn].text,PU_CACHE); patch_t *patch = W_CachePatchName(currentMenu->menuitems[itemOn].text,PU_CACHE);
if (patch->width <= BASEVIDWIDTH) if (patch->width <= BASEVIDWIDTH)
@ -4790,7 +4769,7 @@ static void M_DrawImageDef(void)
// Handles the ImageDefs. Just a specialized function that // Handles the ImageDefs. Just a specialized function that
// uses left and right movement. // uses left and right movement.
static void M_HandleImageDef(INT32 choice) void M_HandleImageDef(INT32 choice)
{ {
boolean exitmenu = false; boolean exitmenu = false;
@ -5833,7 +5812,7 @@ void M_DrawReplayHut(void)
} }
} }
static void M_DrawReplayStartMenu(void) void M_DrawReplayStartMenu(void)
{ {
const char *warning; const char *warning;
UINT8 i; UINT8 i;
@ -5958,7 +5937,7 @@ void M_QuitReplayHut(INT32 choice)
demo.inreplayhut = false; demo.inreplayhut = false;
} }
static void M_HutStartReplay(INT32 choice) void M_HutStartReplay(INT32 choice)
{ {
(void)choice; (void)choice;
@ -5974,7 +5953,7 @@ void M_SetPlaybackMenuPointer(void)
itemOn = playback_pause; itemOn = playback_pause;
} }
static void M_DrawPlaybackMenu(void) void M_DrawPlaybackMenu(void)
{ {
INT16 i; INT16 i;
patch_t *icon; patch_t *icon;
@ -6105,7 +6084,7 @@ static void M_DrawPlaybackMenu(void)
} }
} }
static void M_PlaybackRewind(INT32 choice) void M_PlaybackRewind(INT32 choice)
{ {
static tic_t lastconfirmtime; static tic_t lastconfirmtime;
@ -6131,7 +6110,7 @@ static void M_PlaybackRewind(INT32 choice)
CV_SetValue(&cv_playbackspeed, 1); CV_SetValue(&cv_playbackspeed, 1);
} }
static void M_PlaybackPause(INT32 choice) void M_PlaybackPause(INT32 choice)
{ {
(void)choice; (void)choice;
@ -6151,7 +6130,7 @@ static void M_PlaybackPause(INT32 choice)
CV_SetValue(&cv_playbackspeed, 1); CV_SetValue(&cv_playbackspeed, 1);
} }
static void M_PlaybackFastForward(INT32 choice) void M_PlaybackFastForward(INT32 choice)
{ {
(void)choice; (void)choice;
@ -6164,7 +6143,7 @@ static void M_PlaybackFastForward(INT32 choice)
CV_SetValue(&cv_playbackspeed, cv_playbackspeed.value == 1 ? 4 : 1); CV_SetValue(&cv_playbackspeed, cv_playbackspeed.value == 1 ? 4 : 1);
} }
static void M_PlaybackAdvance(INT32 choice) void M_PlaybackAdvance(INT32 choice)
{ {
(void)choice; (void)choice;
@ -6174,7 +6153,7 @@ static void M_PlaybackAdvance(INT32 choice)
} }
static void M_PlaybackSetViews(INT32 choice) void M_PlaybackSetViews(INT32 choice)
{ {
if (demo.freecam) if (demo.freecam)
@ -6192,13 +6171,13 @@ static void M_PlaybackSetViews(INT32 choice)
} }
} }
static void M_PlaybackAdjustView(INT32 choice) void M_PlaybackAdjustView(INT32 choice)
{ {
G_AdjustView(itemOn - playback_viewcount, (choice > 0) ? 1 : -1, true); G_AdjustView(itemOn - playback_viewcount, (choice > 0) ? 1 : -1, true);
} }
// this one's rather tricky // this one's rather tricky
static void M_PlaybackToggleFreecam(INT32 choice) void M_PlaybackToggleFreecam(INT32 choice)
{ {
(void)choice; (void)choice;
M_ClearMenus(true); M_ClearMenus(true);
@ -6223,7 +6202,7 @@ static void M_PlaybackToggleFreecam(INT32 choice)
} }
static void M_PlaybackQuit(INT32 choice) void M_PlaybackQuit(INT32 choice)
{ {
(void)choice; (void)choice;
G_StopDemo(); G_StopDemo();
@ -6785,7 +6764,7 @@ void M_MusicTest(INT32 choice)
M_SetupNextMenu(&SR_MusicTestDef); M_SetupNextMenu(&SR_MusicTestDef);
} }
static void M_DrawMusicTest(void) void M_DrawMusicTest(void)
{ {
INT32 x, y, i; INT32 x, y, i;
@ -7001,7 +6980,7 @@ static void M_DrawMusicTest(void)
} }
} }
static void M_HandleMusicTest(INT32 choice) void M_HandleMusicTest(INT32 choice)
{ {
boolean exitmenu = false; // exit to previous menu boolean exitmenu = false; // exit to previous menu
@ -10743,7 +10722,7 @@ void M_ScreenshotOptions(INT32 choice)
// Start the controls menu, setting it up for either the console player, // Start the controls menu, setting it up for either the console player,
// or the secondary splitscreen player // or the secondary splitscreen player
static void M_DrawJoystick(void) void M_DrawJoystick(void)
{ {
INT32 i; INT32 i;
INT32 compareval; INT32 compareval;
@ -10805,31 +10784,31 @@ void M_SetupJoystickMenu(INT32 choice)
M_SetupNextMenu(&OP_JoystickSetDef); M_SetupNextMenu(&OP_JoystickSetDef);
} }
static void M_Setup1PJoystickMenu(INT32 choice) void M_Setup1PJoystickMenu(INT32 choice)
{ {
setupcontrolplayer = 1; setupcontrolplayer = 1;
M_SetupJoystickMenu(choice); M_SetupJoystickMenu(choice);
} }
static void M_Setup2PJoystickMenu(INT32 choice) void M_Setup2PJoystickMenu(INT32 choice)
{ {
setupcontrolplayer = 2; setupcontrolplayer = 2;
M_SetupJoystickMenu(choice); M_SetupJoystickMenu(choice);
} }
static void M_Setup3PJoystickMenu(INT32 choice) void M_Setup3PJoystickMenu(INT32 choice)
{ {
setupcontrolplayer = 3; setupcontrolplayer = 3;
M_SetupJoystickMenu(choice); M_SetupJoystickMenu(choice);
} }
static void M_Setup4PJoystickMenu(INT32 choice) void M_Setup4PJoystickMenu(INT32 choice)
{ {
setupcontrolplayer = 4; setupcontrolplayer = 4;
M_SetupJoystickMenu(choice); M_SetupJoystickMenu(choice);
} }
static void M_AssignJoystick(INT32 choice) void M_AssignJoystick(INT32 choice)
{ {
const UINT8 p = setupcontrolplayer-1; const UINT8 p = setupcontrolplayer-1;
@ -11008,7 +10987,7 @@ void M_Setup4PControlsMenu(INT32 choice)
#define controlheight 18 #define controlheight 18
// Draws the Customise Controls menu // Draws the Customise Controls menu
static void M_DrawControl(void) void M_DrawControl(void)
{ {
char tmp[32*MAXINPUTMAPPING]; // should be enough :^) char tmp[32*MAXINPUTMAPPING]; // should be enough :^)
INT32 x, y, w, i, max, cursory = 0, iter; INT32 x, y, w, i, max, cursory = 0, iter;
@ -11228,7 +11207,7 @@ static void M_ChangecontrolResponse(event_t *ev)
M_StopMessage(0); M_StopMessage(0);
} }
static void M_ChangeControl(INT32 choice) void M_ChangeControl(INT32 choice)
{ {
// This buffer assumes a 35-character message (per below) plus a max control name limit of 32 chars (per controltochangetext) // This buffer assumes a 35-character message (per below) plus a max control name limit of 32 chars (per controltochangetext)
// If you change the below message, then change the size of this buffer! // If you change the below message, then change the size of this buffer!
@ -11265,7 +11244,7 @@ static void M_ResetControlsResponse(INT32 ch)
S_StartSound(NULL, sfx_s224); S_StartSound(NULL, sfx_s224);
} }
static void M_ResetControls(INT32 choice) void M_ResetControls(INT32 choice)
{ {
(void)choice; (void)choice;
M_StartMessage(va(M_GetText("Reset Player %d's controls to defaults?\n\n(Press 'Y' to confirm)\n"), setupcontrolplayer), FUNCPTRCAST(M_ResetControlsResponse), MM_YESNO); M_StartMessage(va(M_GetText("Reset Player %d's controls to defaults?\n\n(Press 'Y' to confirm)\n"), setupcontrolplayer), FUNCPTRCAST(M_ResetControlsResponse), MM_YESNO);
@ -11561,7 +11540,7 @@ void M_HandleVideoMode(INT32 ch)
static tic_t shitsfree = 0; static tic_t shitsfree = 0;
static void M_DrawMonitorToggles(void) void M_DrawMonitorToggles(void)
{ {
const INT32 edges = 4; const INT32 edges = 4;
const INT32 height = 4; const INT32 height = 4;
@ -11732,7 +11711,7 @@ static void M_DrawMonitorToggles(void)
V_DrawCenteredString(BASEVIDWIDTH/2, currentMenu->y, highlightflags, va("* %s *", currentMenu->menuitems[itemOn].text)); V_DrawCenteredString(BASEVIDWIDTH/2, currentMenu->y, highlightflags, va("* %s *", currentMenu->menuitems[itemOn].text));
} }
static void M_HandleMonitorToggles(INT32 choice) void M_HandleMonitorToggles(INT32 choice)
{ {
const INT32 width = 6, height = 4; const INT32 width = 6, height = 4;
INT32 column = itemOn/height, row = itemOn%height; INT32 column = itemOn/height, row = itemOn%height;

View file

@ -136,7 +136,7 @@ typedef enum
MN_CHANGELEVEL, MN_CHANGELEVEL,
MN_MAPAUSE, MN_MAPAUSE,
// MN_HELP, MN_HELP,
// SRB2Kart // SRB2Kart
MN_OP_HUD, MN_OP_HUD,
@ -153,6 +153,9 @@ typedef enum
MN_MISC_REPLAYHUT, MN_MISC_REPLAYHUT,
MN_MISC_DISCORDREQUESTS, MN_MISC_DISCORDREQUESTS,
MN_CHANGESPECTATE, MN_CHANGESPECTATE,
MN_MISC_REPLAYSTART,
MN_PLAYBACK,
MN_OP_CONTROLSETUP,
MN_SPECIAL, MN_SPECIAL,
@ -442,6 +445,25 @@ void M_ConfirmTeamScramble(INT32 choice);
void M_ConfirmTeamChange(INT32 choice); void M_ConfirmTeamChange(INT32 choice);
void M_ConfirmSpectateChange(INT32 choice); void M_ConfirmSpectateChange(INT32 choice);
void M_ChangeLevel(INT32 choice); void M_ChangeLevel(INT32 choice);
void M_HutStartReplay(INT32 choice);
void M_PlaybackRewind(INT32 choice);
void M_PlaybackPause(INT32 choice);
void M_PlaybackFastForward(INT32 choice);
void M_PlaybackAdvance(INT32 choice);
void M_PlaybackSetViews(INT32 choice);
void M_PlaybackAdjustView(INT32 choice);
void M_PlaybackToggleFreecam(INT32 choice);
void M_PlaybackQuit(INT32 choice);
void M_HandleImageDef(INT32 choice);
void M_HandleMusicTest(INT32 choice);
void M_Setup1PJoystickMenu(INT32 choice);
void M_Setup2PJoystickMenu(INT32 choice);
void M_Setup3PJoystickMenu(INT32 choice);
void M_Setup4PJoystickMenu(INT32 choice);
void M_ResetControls(INT32 choice);
void M_ChangeControl(INT32 choice);
void M_AssignJoystick(INT32 choice);
void M_HandleMonitorToggles(INT32 choice);
void M_DrawGenericMenu(void); void M_DrawGenericMenu(void);
void M_DrawCenteredMenu(void); void M_DrawCenteredMenu(void);
@ -459,6 +481,13 @@ void M_DrawSkyRoom(void);
void M_DrawHUDOptions(void); void M_DrawHUDOptions(void);
void M_DrawAddons(void); void M_DrawAddons(void);
void M_DrawEmblemHints(void); void M_DrawEmblemHints(void);
void M_DrawReplayStartMenu(void);
void M_DrawPlaybackMenu(void);
void M_DrawImageDef(void);
void M_DrawMusicTest(void);
void M_DrawControl(void);
void M_DrawJoystick(void);
void M_DrawMonitorToggles(void);
// Maybe this goes here????? Who knows. // Maybe this goes here????? Who knows.
boolean M_MouseNeeded(void); boolean M_MouseNeeded(void);