Use bitshifting for menu IDs and hierarchy instead

This commit is contained in:
mazmazz 2018-11-16 09:22:27 -05:00
parent 9dab65fce0
commit b69756f5e5
2 changed files with 176 additions and 180 deletions

View File

@ -1473,12 +1473,11 @@ static menuitem_t OP_MonitorToggleMenu[] =
// ==========================================================================
// Main Menu and related
menu_t MainDef = CENTERMENUSTYLE(MM_MAIN, 0, NULL, MainMenu, NULL, 72);
menu_t MainDef = CENTERMENUSTYLE(MM_MAIN, NULL, MainMenu, NULL, 72);
menu_t MISC_AddonsDef =
{
MM_AD_MAIN,
0,
NULL,
sizeof (MISC_AddonsMenu)/sizeof (menuitem_t),
&MainDef,
@ -1494,14 +1493,13 @@ menu_t SPauseDef = PAUSEMENUSTYLE(SPauseMenu, 40, 72);
menu_t MPauseDef = PAUSEMENUSTYLE(MPauseMenu, 40, 72);
// Misc Main Menu
menu_t MISC_ScrambleTeamDef = DEFAULTMENUSTYLE(0, 0, NULL, MISC_ScrambleTeamMenu, &MPauseDef, 27, 40);
menu_t MISC_ChangeTeamDef = DEFAULTMENUSTYLE(0, 0, NULL, MISC_ChangeTeamMenu, &MPauseDef, 27, 40);
menu_t MISC_ScrambleTeamDef = DEFAULTMENUSTYLE(MM_SPECIAL, NULL, MISC_ScrambleTeamMenu, &MPauseDef, 27, 40);
menu_t MISC_ChangeTeamDef = DEFAULTMENUSTYLE(MM_SPECIAL, NULL, MISC_ChangeTeamMenu, &MPauseDef, 27, 40);
// MP Gametype and map change menu
menu_t MISC_ChangeLevelDef =
{
0,
0,
MM_SPECIAL,
NULL,
sizeof (MISC_ChangeLevelMenu)/sizeof (menuitem_t),
&MainDef, // Doesn't matter.
@ -1517,8 +1515,7 @@ menu_t MISC_HelpDef = IMAGEDEF(MISC_HelpMenu);
// Sky Room
menu_t SR_PandoraDef =
{
MM_SR_MAIN|MM_SR_PANDORA,
0,
MM_SR_MAIN + (MM_SR_PANDORA << 6),
"M_PANDRA",
sizeof (SR_PandorasBox)/sizeof (menuitem_t),
&SPauseDef,
@ -1531,7 +1528,6 @@ menu_t SR_PandoraDef =
menu_t SR_MainDef =
{
MM_SR_MAIN,
0,
"M_SECRET",
sizeof (SR_MainMenu)/sizeof (menuitem_t),
&MainDef,
@ -1542,12 +1538,13 @@ menu_t SR_MainDef =
NULL
};
menu_t SR_LevelSelectDef = MAPPLATTERMENUSTYLE(MM_SR_MAIN|MM_SR_LEVELSELECT, 0, NULL, SR_LevelSelectMenu);
menu_t SR_LevelSelectDef = MAPPLATTERMENUSTYLE(
MM_SR_MAIN + (MM_SR_LEVELSELECT << 6),
NULL, SR_LevelSelectMenu);
menu_t SR_UnlockChecklistDef =
{
MM_SR_MAIN|MM_SR_UNLOCKCHECKLIST,
0,
MM_SR_MAIN + (MM_SR_UNLOCKCHECKLIST << 6),
"M_SECRET",
1,
&SR_MainDef,
@ -1559,8 +1556,7 @@ menu_t SR_UnlockChecklistDef =
};
menu_t SR_EmblemHintDef =
{
MM_SR_MAIN|MM_SR_EMBLEMHINT,
0,
MM_SR_MAIN + (MM_SR_EMBLEMHINT << 6),
NULL,
sizeof (SR_EmblemHintMenu)/sizeof (menuitem_t),
&SPauseDef,
@ -1575,7 +1571,6 @@ menu_t SR_EmblemHintDef =
menu_t SP_MainDef = //CENTERMENUSTYLE(NULL, SP_MainMenu, &MainDef, 72);
{
MM_SP_MAIN,
0,
NULL,
sizeof(SP_MainMenu)/sizeof(menuitem_t),
&MainDef,
@ -1588,8 +1583,7 @@ menu_t SP_MainDef = //CENTERMENUSTYLE(NULL, SP_MainMenu, &MainDef, 72);
menu_t SP_LoadDef =
{
MM_SP_MAIN|MM_SP_LOAD,
0,
MM_SP_MAIN + (MM_SP_LOAD << 6),
"M_PICKG",
1,
&SP_MainDef,
@ -1600,12 +1594,13 @@ menu_t SP_LoadDef =
NULL
};
menu_t SP_LevelSelectDef = MAPPLATTERMENUSTYLE(MM_SP_MAIN|MM_SP_LOAD|MM_SP_LEVELSELECT, 0, NULL, SP_LevelSelectMenu);
menu_t SP_LevelSelectDef = MAPPLATTERMENUSTYLE(
MM_SP_MAIN + (MM_SP_LOAD << 6) + (MM_SP_PLAYER << 12) + (MM_SP_LEVELSELECT << 18),
NULL, SP_LevelSelectMenu);
menu_t SP_LevelStatsDef =
{
MM_SP_MAIN|MM_SP_LEVELSTATS,
0,
MM_SP_MAIN + (MM_SP_LEVELSTATS << 6),
"M_STATS",
1,
&SP_MainDef,
@ -1616,12 +1611,13 @@ menu_t SP_LevelStatsDef =
NULL
};
menu_t SP_TimeAttackLevelSelectDef = MAPPLATTERMENUSTYLE(MM_SP_MAIN|MM_SP_TIMEATTACK|MM_SP_TIMEATTACK_LEVELSELECT, 0, "M_ATTACK", SP_TimeAttackLevelSelectMenu);
menu_t SP_TimeAttackLevelSelectDef = MAPPLATTERMENUSTYLE(
MM_SP_MAIN + (MM_SP_TIMEATTACK << 6) + (MM_SP_TIMEATTACK_LEVELSELECT << 12),
"M_ATTACK", SP_TimeAttackLevelSelectMenu);
static menu_t SP_TimeAttackDef =
{
MM_SP_MAIN|MM_SP_TIMEATTACK,
0,
MM_SP_MAIN + (MM_SP_TIMEATTACK << 6),
"M_ATTACK",
sizeof (SP_TimeAttackMenu)/sizeof (menuitem_t),
&MainDef, // Doesn't matter.
@ -1633,8 +1629,7 @@ static menu_t SP_TimeAttackDef =
};
static menu_t SP_ReplayDef =
{
MM_SP_MAIN|MM_SP_TIMEATTACK|MM_SP_REPLAY,
0,
MM_SP_MAIN + (MM_SP_TIMEATTACK << 6) + (MM_SP_REPLAY << 12),
"M_ATTACK",
sizeof(SP_ReplayMenu)/sizeof(menuitem_t),
&SP_TimeAttackDef,
@ -1646,8 +1641,7 @@ static menu_t SP_ReplayDef =
};
static menu_t SP_GuestReplayDef =
{
MM_SP_MAIN|MM_SP_TIMEATTACK|MM_SP_GUESTREPLAY,
0,
MM_SP_MAIN + (MM_SP_TIMEATTACK << 6) + (MM_SP_GUESTREPLAY << 12),
"M_ATTACK",
sizeof(SP_GuestReplayMenu)/sizeof(menuitem_t),
&SP_TimeAttackDef,
@ -1659,8 +1653,7 @@ static menu_t SP_GuestReplayDef =
};
static menu_t SP_GhostDef =
{
MM_SP_MAIN|MM_SP_TIMEATTACK|MM_SP_GHOST,
0,
MM_SP_MAIN + (MM_SP_TIMEATTACK << 6) + (MM_SP_GHOST << 12),
"M_ATTACK",
sizeof(SP_GhostMenu)/sizeof(menuitem_t),
&SP_TimeAttackDef,
@ -1671,12 +1664,13 @@ static menu_t SP_GhostDef =
NULL
};
menu_t SP_NightsAttackLevelSelectDef = MAPPLATTERMENUSTYLE(MM_SP_MAIN|MM_SP_NIGHTSATTACK|MM_SP_NIGHTSATTACK_LEVELSELECT, 0, "M_NIGHTS", SP_NightsAttackLevelSelectMenu);
menu_t SP_NightsAttackLevelSelectDef = MAPPLATTERMENUSTYLE(
MM_SP_MAIN + (MM_SP_NIGHTSATTACK << 6) + (MM_SP_NIGHTS_LEVELSELECT << 12),
"M_NIGHTS", SP_NightsAttackLevelSelectMenu);
static menu_t SP_NightsAttackDef =
{
MM_SP_MAIN|MM_SP_NIGHTSATTACK,
0,
MM_SP_MAIN + (MM_SP_NIGHTSATTACK << 6),
"M_NIGHTS",
sizeof (SP_NightsAttackMenu)/sizeof (menuitem_t),
&MainDef, // Doesn't matter.
@ -1688,8 +1682,7 @@ static menu_t SP_NightsAttackDef =
};
static menu_t SP_NightsReplayDef =
{
MM_SP_MAIN|MM_SP_NIGHTSATTACK|MM_SP_NIGHTS_REPLAY,
0,
MM_SP_MAIN + (MM_SP_NIGHTSATTACK << 6) + (MM_SP_NIGHTS_REPLAY << 12),
"M_NIGHTS",
sizeof(SP_NightsReplayMenu)/sizeof(menuitem_t),
&SP_NightsAttackDef,
@ -1701,8 +1694,7 @@ static menu_t SP_NightsReplayDef =
};
static menu_t SP_NightsGuestReplayDef =
{
MM_SP_MAIN|MM_SP_NIGHTSATTACK|MM_SP_NIGHTS_GUESTREPLAY,
0,
MM_SP_MAIN + (MM_SP_NIGHTSATTACK << 6) + (MM_SP_NIGHTS_GUESTREPLAY << 12),
"M_NIGHTS",
sizeof(SP_NightsGuestReplayMenu)/sizeof(menuitem_t),
&SP_NightsAttackDef,
@ -1714,8 +1706,7 @@ static menu_t SP_NightsGuestReplayDef =
};
static menu_t SP_NightsGhostDef =
{
MM_SP_MAIN|MM_SP_NIGHTSATTACK|MM_SP_NIGHTS_GHOST,
0,
MM_SP_MAIN + (MM_SP_NIGHTSATTACK << 6) + (MM_SP_NIGHTS_GHOST << 12),
"M_NIGHTS",
sizeof(SP_NightsGhostMenu)/sizeof(menuitem_t),
&SP_NightsAttackDef,
@ -1729,8 +1720,7 @@ static menu_t SP_NightsGhostDef =
menu_t SP_PlayerDef =
{
MM_SP_MAIN|MM_SP_LOAD|MM_SP_PLAYER,
0,
MM_SP_MAIN + (MM_SP_LOAD << 6) + (MM_SP_PLAYER << 12),
"M_PICKP",
sizeof (SP_PlayerMenu)/sizeof (menuitem_t),
&SP_MainDef,
@ -1745,8 +1735,7 @@ menu_t SP_PlayerDef =
menu_t MP_SplitServerDef =
{
MM_MP_MAIN|MM_MP_SPLITSCREEN,
0,
MM_MP_MAIN + (MM_MP_SPLITSCREEN << 6),
"M_MULTI",
sizeof (MP_SplitServerMenu)/sizeof (menuitem_t),
#ifndef NONET
@ -1766,7 +1755,6 @@ menu_t MP_SplitServerDef =
menu_t MP_MainDef =
{
MM_MP_MAIN,
0,
"M_MULTI",
sizeof (MP_MainMenu)/sizeof (menuitem_t),
&MainDef,
@ -1779,8 +1767,7 @@ menu_t MP_MainDef =
menu_t MP_ServerDef =
{
MM_MP_MAIN|MM_MP_SERVER,
0,
MM_MP_MAIN + (MM_MP_SERVER << 6),
"M_MULTI",
sizeof (MP_ServerMenu)/sizeof (menuitem_t),
&MP_MainDef,
@ -1793,8 +1780,7 @@ menu_t MP_ServerDef =
menu_t MP_ConnectDef =
{
MM_MP_MAIN|MM_MP_CONNECT,
0,
MM_MP_MAIN + (MM_MP_CONNECT << 6),
"M_MULTI",
sizeof (MP_ConnectMenu)/sizeof (menuitem_t),
&MP_MainDef,
@ -1807,8 +1793,7 @@ menu_t MP_ConnectDef =
menu_t MP_RoomDef =
{
MM_MP_MAIN|MM_MP_ROOM,
0,
MM_MP_MAIN + (MM_MP_ROOM << 6),
"M_MULTI",
sizeof (MP_RoomMenu)/sizeof (menuitem_t),
&MP_ConnectDef,
@ -1822,8 +1807,11 @@ menu_t MP_RoomDef =
menu_t MP_PlayerSetupDef =
{
MM_MP_MAIN|MM_MP_PLAYERSETUP,
0,
#ifdef NONET
MM_MP_MAIN + (MM_MP_SPLITSCREEN << 6) + (MM_MP_PLAYERSETUP << 12),
#else
MM_MP_MAIN + (MM_MP_PLAYERSETUP << 6),
#endif
"M_SPLAYR",
sizeof (MP_PlayerSetupMenu)/sizeof (menuitem_t),
&MainDef, // doesn't matter
@ -1835,18 +1823,33 @@ menu_t MP_PlayerSetupDef =
};
// Options
menu_t OP_MainDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN, "M_OPTTTL", OP_MainMenu, &MainDef, 50, 30);
menu_t OP_ChangeControlsDef = CONTROLMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_CHANGECONTROLS, OP_ChangeControlsMenu, &OP_MainDef);
menu_t OP_P1ControlsDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_P1CONTROLS, "M_CONTRO", OP_P1ControlsMenu, &OP_MainDef, 50, 30);
menu_t OP_P2ControlsDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_P2CONTROLS, "M_CONTRO", OP_P2ControlsMenu, &OP_MainDef, 50, 30);
menu_t OP_MouseOptionsDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_P1CONTROLS|MM2_OP_P1MOUSE, "M_CONTRO", OP_MouseOptionsMenu, &OP_P1ControlsDef, 35, 30);
menu_t OP_Mouse2OptionsDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_P2CONTROLS|MM2_OP_P2MOUSE, "M_CONTRO", OP_Mouse2OptionsMenu, &OP_P2ControlsDef, 35, 30);
menu_t OP_Joystick1Def = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_P1CONTROLS|MM2_OP_P1JOYSTICK, "M_CONTRO", OP_Joystick1Menu, &OP_P1ControlsDef, 50, 30);
menu_t OP_Joystick2Def = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_P2CONTROLS|MM2_OP_P2JOYSTICK, "M_CONTRO", OP_Joystick2Menu, &OP_P2ControlsDef, 50, 30);
menu_t OP_MainDef = DEFAULTMENUSTYLE(
MM_OP_MAIN,
"M_OPTTTL", OP_MainMenu, &MainDef, 50, 30);
menu_t OP_ChangeControlsDef = CONTROLMENUSTYLE(
MM_OP_MAIN + (MM_OP_CHANGECONTROLS << 12), // second level (<<6) set on runtime
OP_ChangeControlsMenu, &OP_MainDef);
menu_t OP_P1ControlsDef = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_P1CONTROLS << 6),
"M_CONTRO", OP_P1ControlsMenu, &OP_MainDef, 50, 30);
menu_t OP_P2ControlsDef = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_P2CONTROLS << 6),
"M_CONTRO", OP_P2ControlsMenu, &OP_MainDef, 50, 30);
menu_t OP_MouseOptionsDef = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_P1CONTROLS << 6) + (MM_OP_P1MOUSE << 12),
"M_CONTRO", OP_MouseOptionsMenu, &OP_P1ControlsDef, 35, 30);
menu_t OP_Mouse2OptionsDef = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_P2CONTROLS << 6) + (MM_OP_P2MOUSE << 12),
"M_CONTRO", OP_Mouse2OptionsMenu, &OP_P2ControlsDef, 35, 30);
menu_t OP_Joystick1Def = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_P1CONTROLS << 6) + (MM_OP_P1JOYSTICK << 12),
"M_CONTRO", OP_Joystick1Menu, &OP_P1ControlsDef, 50, 30);
menu_t OP_Joystick2Def = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_P2CONTROLS << 6) + (MM_OP_P2JOYSTICK << 12),
"M_CONTRO", OP_Joystick2Menu, &OP_P2ControlsDef, 50, 30);
menu_t OP_JoystickSetDef =
{
0,
MM2_OP_MAIN|MM2_OP_JOYSTICKSET,
MM_OP_MAIN + (MM_OP_JOYSTICKSET << 12), // second level (<<6) set on runtime
"M_CONTRO",
sizeof (OP_JoystickSetMenu)/sizeof (menuitem_t),
&OP_Joystick1Def,
@ -1859,8 +1862,7 @@ menu_t OP_JoystickSetDef =
menu_t OP_VideoOptionsDef =
{
0,
MM2_OP_MAIN|MM2_OP_VIDEO,
MM_OP_MAIN + (MM_OP_VIDEO << 6),
"M_VIDEO",
sizeof (OP_VideoOptionsMenu)/sizeof (menuitem_t),
&OP_MainDef,
@ -1872,8 +1874,7 @@ menu_t OP_VideoOptionsDef =
};
menu_t OP_VideoModeDef =
{
0,
MM2_OP_MAIN|MM2_OP_VIDEO|MM2_OP_VIDEOMODE,
MM_OP_MAIN + (MM_OP_VIDEO << 6) + (MM_OP_VIDEOMODE << 12),
"M_VIDEO",
1,
&OP_VideoOptionsDef,
@ -1885,8 +1886,7 @@ menu_t OP_VideoModeDef =
};
menu_t OP_ColorOptionsDef =
{
0,
MM2_OP_MAIN|MM2_OP_VIDEO|MM2_OP_COLOR,
MM_OP_MAIN + (MM_OP_VIDEO << 6) + (MM_OP_COLOR << 12),
"M_VIDEO",
sizeof (OP_ColorOptionsMenu)/sizeof (menuitem_t),
&OP_VideoOptionsDef,
@ -1898,8 +1898,7 @@ menu_t OP_ColorOptionsDef =
};
menu_t OP_SoundOptionsDef =
{
0,
MM2_OP_MAIN|MM2_OP_SOUND,
MM_OP_MAIN + (MM_OP_SOUND << 6),
"M_SOUND",
sizeof (OP_SoundOptionsMenu)/sizeof (menuitem_t),
&OP_MainDef,
@ -1910,12 +1909,13 @@ menu_t OP_SoundOptionsDef =
NULL
};
menu_t OP_ServerOptionsDef = DEFAULTSCROLLMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_SERVER, "M_SERVER", OP_ServerOptionsMenu, &OP_MainDef, 30, 30);
menu_t OP_ServerOptionsDef = DEFAULTSCROLLMENUSTYLE(
MM_OP_MAIN + (MM_OP_SERVER << 6),
"M_SERVER", OP_ServerOptionsMenu, &OP_MainDef, 30, 30);
menu_t OP_MonitorToggleDef =
{
0,
MM2_OP_MAIN|MM2_OP_SERVER|MM2_OP_MONITORTOGGLE,
MM_OP_MAIN + (MM_OP_SERVER << 6) + (MM_OP_MONITORTOGGLE << 12),
"M_SERVER",
sizeof (OP_MonitorToggleMenu)/sizeof (menuitem_t),
&OP_ServerOptionsDef,
@ -1927,14 +1927,17 @@ menu_t OP_MonitorToggleDef =
};
#ifdef HWRENDER
menu_t OP_OpenGLOptionsDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_VIDEO|MM2_OP_OPENGL, "M_VIDEO", OP_OpenGLOptionsMenu, &OP_VideoOptionsDef, 30, 30);
menu_t OP_OpenGLOptionsDef = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_VIDEO << 6) + (MM_OP_OPENGL << 12),
"M_VIDEO", OP_OpenGLOptionsMenu, &OP_VideoOptionsDef, 30, 30);
#ifdef ALAM_LIGHTING
menu_t OP_OpenGLLightingDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_VIDEO|MM2_OP_OPENGL|MM2_OP_OPENGL_LIGHTING, "M_VIDEO", OP_OpenGLLightingMenu, &OP_OpenGLOptionsDef, 60, 40);
menu_t OP_OpenGLLightingDef = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_VIDEO << 6) + (MM_OP_OPENGL << 12) + (MM_OP_OPENGL_LIGHTING << 18),
"M_VIDEO", OP_OpenGLLightingMenu, &OP_OpenGLOptionsDef, 60, 40);
#endif
menu_t OP_OpenGLFogDef =
{
0,
MM2_OP_MAIN|MM2_OP_VIDEO|MM2_OP_OPENGL|MM2_OP_OPENGL_FOG,
MM_OP_MAIN + (MM_OP_VIDEO << 6) + (MM_OP_OPENGL << 12) + (MM_OP_OPENGL_FOG << 18),
"M_VIDEO",
sizeof (OP_OpenGLFogMenu)/sizeof (menuitem_t),
&OP_OpenGLOptionsDef,
@ -1946,8 +1949,7 @@ menu_t OP_OpenGLFogDef =
};
menu_t OP_OpenGLColorDef =
{
0,
MM2_OP_MAIN|MM2_OP_VIDEO|MM2_OP_OPENGL|MM2_OP_OPENGL_COLOR,
MM_OP_MAIN + (MM_OP_VIDEO << 6) + (MM_OP_OPENGL << 12) + (MM_OP_OPENGL_COLOR << 18),
"M_VIDEO",
sizeof (OP_OpenGLColorMenu)/sizeof (menuitem_t),
&OP_OpenGLOptionsDef,
@ -1958,12 +1960,13 @@ menu_t OP_OpenGLColorDef =
NULL
};
#endif
menu_t OP_DataOptionsDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_DATA, "M_DATA", OP_DataOptionsMenu, &OP_MainDef, 60, 30);
menu_t OP_DataOptionsDef = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_DATA << 6),
"M_DATA", OP_DataOptionsMenu, &OP_MainDef, 60, 30);
menu_t OP_ScreenshotOptionsDef =
{
0,
MM2_OP_MAIN|MM2_OP_DATA|MM2_OP_SCREENSHOTS,
MM_OP_MAIN + (MM_OP_DATA << 6) + (MM_OP_SCREENSHOTS << 12),
"M_DATA",
sizeof (OP_ScreenshotOptionsMenu)/sizeof (menuitem_t),
&OP_DataOptionsDef,
@ -1974,9 +1977,13 @@ menu_t OP_ScreenshotOptionsDef =
NULL
};
menu_t OP_AddonsOptionsDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_DATA|MM2_OP_ADDONS, "M_ADDONS", OP_AddonsOptionsMenu, &OP_DataOptionsDef, 30, 30);
menu_t OP_AddonsOptionsDef = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_DATA << 6) + (MM_OP_ADDONS << 12),
"M_ADDONS", OP_AddonsOptionsMenu, &OP_DataOptionsDef, 30, 30);
menu_t OP_EraseDataDef = DEFAULTMENUSTYLE(0, MM2_OP_MAIN|MM2_OP_DATA|MM2_OP_ERASEDATA, "M_DATA", OP_EraseDataMenu, &OP_DataOptionsDef, 60, 30);
menu_t OP_EraseDataDef = DEFAULTMENUSTYLE(
MM_OP_MAIN + (MM_OP_DATA << 6) + (MM_OP_ERASEDATA << 12),
"M_DATA", OP_EraseDataMenu, &OP_DataOptionsDef, 60, 30);
// ==========================================================================
// CVAR ONCHANGE EVENTS GO HERE
@ -4582,8 +4589,7 @@ static menuitem_t MessageMenu[] =
menu_t MessageDef =
{
0,
0,
MM_SPECIAL,
NULL, // title
1, // # of menu items
NULL, // previous menu (TO HACK)

View File

@ -26,97 +26,95 @@
// Menu IDs sectioned by numeric places to signify hierarchy
typedef enum
{
MM_MAIN = 1,
MM_NONE,
MM_MAIN,
// Single Player
MM_SP_MAIN = 1<<1,
MM_SP_MAIN,
MM_SP_LOAD = 1<<2,
MM_SP_PLAYER = 1<<3,
MM_SP_LOAD,
MM_SP_PLAYER,
MM_SP_LEVELSELECT = 1<<4,
MM_SP_LEVELSTATS = 1<<5,
MM_SP_LEVELSELECT,
MM_SP_LEVELSTATS,
MM_SP_TIMEATTACK = 1<<6,
MM_SP_TIMEATTACK_LEVELSELECT = 1<<7,
MM_SP_GUESTREPLAY = 1<<8,
MM_SP_REPLAY = 1<<9,
MM_SP_GHOST = 1<<10,
MM_SP_TIMEATTACK,
MM_SP_TIMEATTACK_LEVELSELECT,
MM_SP_GUESTREPLAY,
MM_SP_REPLAY,
MM_SP_GHOST,
MM_SP_NIGHTSATTACK = 1<<11,
MM_SP_NIGHTSATTACK_LEVELSELECT = 1<<12,
MM_SP_NIGHTS_GUESTREPLAY = 1<<13,
MM_SP_NIGHTS_REPLAY = 1<<14,
MM_SP_NIGHTS_GHOST = 1<<15,
MM_SP_NIGHTSATTACK,
MM_SP_NIGHTS_LEVELSELECT,
MM_SP_NIGHTS_GUESTREPLAY,
MM_SP_NIGHTS_REPLAY,
MM_SP_NIGHTS_GHOST,
// Multiplayer
MM_MP_MAIN = 1<<16,
MM_MP_SPLITSCREEN = 1<<17, // SplitServer
MM_MP_SERVER = 1<<18,
MM_MP_CONNECT = 1<<19,
MM_MP_ROOM = 1<<20,
MM_MP_PLAYERSETUP = 1<<21, // MP_PlayerSetupDef shared with SPLITSCREEN if #defined NONET
MM_MP_MAIN,
MM_MP_SPLITSCREEN, // SplitServer
MM_MP_SERVER,
MM_MP_CONNECT,
MM_MP_ROOM,
MM_MP_PLAYERSETUP, // MP_PlayerSetupDef shared with SPLITSCREEN if #defined NONET
// Options
MM_OP_MAIN,
MM_OP_P1CONTROLS,
MM_OP_CHANGECONTROLS, // OP_ChangeControlsDef shared with P2
MM_OP_P1MOUSE,
MM_OP_P1JOYSTICK,
MM_OP_JOYSTICKSET, // OP_JoystickSetDef shared with P2
MM_OP_P2CONTROLS,
MM_OP_P2MOUSE,
MM_OP_P2JOYSTICK,
MM_OP_VIDEO,
MM_OP_VIDEOMODE,
MM_OP_COLOR,
MM_OP_OPENGL,
MM_OP_OPENGL_LIGHTING,
MM_OP_OPENGL_FOG,
MM_OP_OPENGL_COLOR,
MM_OP_SOUND,
MM_OP_SERVER,
MM_OP_MONITORTOGGLE,
MM_OP_DATA,
MM_OP_ADDONS,
MM_OP_SCREENSHOTS,
MM_OP_ERASEDATA,
// Secrets
MM_SR_MAIN = 1<<22,
MM_SR_PANDORA = 1<<23,
MM_SR_LEVELSELECT = 1<<24,
MM_SR_UNLOCKCHECKLIST = 1<<25,
MM_SR_EMBLEMHINT = 1<<26,
MM_SR_MAIN,
MM_SR_PANDORA,
MM_SR_LEVELSELECT,
MM_SR_UNLOCKCHECKLIST,
MM_SR_EMBLEMHINT,
// Addons (Part of MISC, but let's make it our own)
MM_AD_MAIN = 1<<27,
MM_ALL = 1<<28,
MM_AD_MAIN,
// MISC
// MM_MESSAGE = 20000,
// MM_SPAUSE = 30000,
// MM_MESSAGE,
// MM_SPAUSE,
// MM_MPAUSE = 40000,
// MM_SCRAMBLETEAM = 41000,
// MM_CHANGETEAM = 42000,
// MM_CHANGELEVEL = 43000,
// MM_MPAUSE,
// MM_SCRAMBLETEAM,
// MM_CHANGETEAM,
// MM_CHANGELEVEL,
// MM_MAPAUSE = 50000,
// MM_HELP = 60000
} menutype_t; // up to 1<<31
// MM_MAPAUSE,
// MM_HELP,
typedef enum
{
// Options
MM2_OP_MAIN = 1,
MM2_OP_P1CONTROLS = 1<<1,
MM2_OP_CHANGECONTROLS = 1<<2, // OP_ChangeControlsDef shared with P2
MM2_OP_P1MOUSE = 1<<3,
MM2_OP_P1JOYSTICK = 1<<4,
MM2_OP_JOYSTICKSET = 1<<5, // OP_JoystickSetDef shared with P2
MM2_OP_P2CONTROLS = 1<<6,
MM2_OP_P2MOUSE = 1<<7,
MM2_OP_P2JOYSTICK = 1<<8,
MM2_OP_VIDEO = 1<<9,
MM2_OP_VIDEOMODE = 1<<10,
MM2_OP_COLOR = 1<<11,
MM2_OP_OPENGL = 1<<12,
MM2_OP_OPENGL_LIGHTING = 1<<13,
MM2_OP_OPENGL_FOG = 1<<14,
MM2_OP_OPENGL_COLOR = 1<<15,
MM2_OP_SOUND = 1<<16,
MM2_OP_SERVER = 1<<17,
MM2_OP_MONITORTOGGLE = 1<<18,
MM2_OP_DATA = 1<<19,
MM2_OP_ADDONS = 1<<20,
MM2_OP_SCREENSHOTS = 1<<21,
MM2_OP_ERASEDATA = 1<<22,
MM2_ALL = 1<<23
} menutype2_t; // up to 1<<31
MM_SPECIAL,
NUM_MM,
} menutype_t; // up to 63; MM_SPECIAL = 53
// Called by main loop,
@ -250,8 +248,7 @@ typedef struct menuitem_s
typedef struct menu_s
{
UINT32 menutype; // Flags to encode ID and hierarchy
UINT32 menutype2; // More flags to encode ID and hierarchy
UINT32 menuid; // ID to encode menu type and hierarchy
const char *menutitlepic;
INT16 numitems; // # of menu items
struct menu_s *prevMenu; // previous menu
@ -356,10 +353,9 @@ void Screenshot_option_Onchange(void);
void Addons_option_Onchange(void);
// These defines make it a little easier to make menus
#define DEFAULTMENUSTYLE(flags, flags2, header, source, prev, x, y)\
#define DEFAULTMENUSTYLE(id, header, source, prev, x, y)\
{\
flags,\
flags2,\
id,\
header,\
sizeof(source)/sizeof(menuitem_t),\
prev,\
@ -370,10 +366,9 @@ void Addons_option_Onchange(void);
NULL\
}
#define DEFAULTSCROLLMENUSTYLE(flags, flags2, header, source, prev, x, y)\
#define DEFAULTSCROLLMENUSTYLE(id, header, source, prev, x, y)\
{\
flags,\
flags2,\
id,\
header,\
sizeof(source)/sizeof(menuitem_t),\
prev,\
@ -386,8 +381,7 @@ void Addons_option_Onchange(void);
#define PAUSEMENUSTYLE(source, x, y)\
{\
0,\
0,\
MM_SPECIAL,\
NULL,\
sizeof(source)/sizeof(menuitem_t),\
NULL,\
@ -398,10 +392,9 @@ void Addons_option_Onchange(void);
NULL\
}
#define CENTERMENUSTYLE(flags, flags2, header, source, prev, y)\
#define CENTERMENUSTYLE(id, header, source, prev, y)\
{\
flags,\
flags2,\
id,\
header,\
sizeof(source)/sizeof(menuitem_t),\
prev,\
@ -412,10 +405,9 @@ void Addons_option_Onchange(void);
NULL\
}
#define MAPPLATTERMENUSTYLE(flags, flags2, header, source)\
#define MAPPLATTERMENUSTYLE(id, header, source)\
{\
flags,\
flags2,\
id,\
header,\
sizeof (source)/sizeof (menuitem_t),\
&MainDef,\
@ -426,10 +418,9 @@ void Addons_option_Onchange(void);
NULL\
}
#define CONTROLMENUSTYLE(flags, flags2, source, prev)\
#define CONTROLMENUSTYLE(id, source, prev)\
{\
flags,\
flags2,\
id,\
"M_CONTRO",\
sizeof (source)/sizeof (menuitem_t),\
prev,\
@ -442,8 +433,7 @@ void Addons_option_Onchange(void);
#define IMAGEDEF(source)\
{\
0,\
0,\
MM_SPECIAL,\
NULL,\
sizeof (source)/sizeof (menuitem_t),\
NULL,\