diff --git a/src/deh_tables.c b/src/deh_tables.c index c2d5b3ae2..230ff3b6d 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -610,95 +610,9 @@ const char *const HUDITEMS_LIST[] = { }; const char *const MENUTYPES_LIST[] = { - "NONE", - - "MAIN", - - // Single Player - "SP_MAIN", - - "SP_LEVELSTATS", - - "SP_TIMEATTACK", - "SP_GUESTREPLAY", - "SP_REPLAY", - "SP_GHOST", - - // Multiplayer - "MP_MAIN", - "MP_SPLITSCREEN", // SplitServer - "MP_SERVER", - "MP_CONNECT", - "MP_PLAYERSETUP", // MP_PlayerSetupDef shared with SPLITSCREEN if #defined NONET - - // Options - "OP_MAIN", - - "OP_CHANGECONTROLS", // OP_ChangeControlsDef shared with P2 - "OP_JOYSTICKSET", // OP_JoystickSetDef shared with P2 - "OP_P1CAMERA", - - "OP_P2CAMERA", - - "OP_VIDEO", - "OP_VIDEOMODE", - "OP_OPENGL", - - "OP_SOUND", - - "OP_SERVER", - "OP_MONITORTOGGLE", - - "OP_DATA", - "OP_ADDONS", - "OP_SCREENSHOTS", - "OP_ERASEDATA", - - // Extras - "SR_MAIN", - "SR_PANDORA", - "SR_UNLOCKCHECKLIST", - "SR_EMBLEMHINT", - "SR_SOUNDTEST", - - // Addons (Part of MISC, but let's make it our own) - "AD_MAIN", - - // MISC - // "MESSAGE", - "SPAUSE", - - "MPAUSE", - "SCRAMBLETEAM", - "CHANGETEAM", - "CHANGELEVEL", - - "MAPAUSE", - "HELP", - - // SRB2Kart - "OP_HUD", - "OP_CHAT", - "OP_GAME", - "OP_BLANKARTGAME", - "OP_ADVANCEDSERVER", - "OP_CAMERA", - "OP_P3CAMERA", - "OP_P4CAMERA", - "MISC_REPLAYOPTIONS", - "SP_GRANDPRIX", - "MISC_REPLAYHUT", - "CHANGESPECTATE", - "MISC_REPLAYSTART", - "PLAYBACK", - "OP_CONTROLSETUP", - "OP_GAMEHUD", - "OP_VISUAL", - -#ifdef HAVE_DISCORDRPC - "OP_DISCORD", - "MISC_DISCORDREQUESTS", -#endif +#define _(name, ...) #name, +#include "info/menus.h" +#undef _ }; struct menu_routine_s const MENU_ROUTINES[] = { diff --git a/src/info/menus.h b/src/info/menus.h new file mode 100644 index 000000000..59cc8338c --- /dev/null +++ b/src/info/menus.h @@ -0,0 +1,85 @@ +_(NONE) + +_(MAIN) +_(PLAYBACK) + +// Single Player +_(SP_MAIN) +_(SP_GRANDPRIX) +_(SP_TIMEATTACK) +_(SP_GUESTREPLAY) +_(SP_REPLAY) +_(SP_GHOST) + +// Multiplayer +_(MP_MAIN) +_(MP_SPLITSCREEN) // SplitServer +_(MP_SERVER) +_(MP_CONNECT) +_(MP_PLAYERSETUP) + +// Options +_(OP_MAIN) + +_(OP_CONTROLSETUP) +_(OP_CHANGECONTROLS) +_(OP_JOYSTICKSET) + +_(OP_VIDEO) +_(OP_VIDEOMODE) +_(OP_VISUAL) +_(OP_OPENGL) + +_(OP_SOUND) +_(SR_SOUNDTEST) + +_(OP_HUD) +_(OP_CHAT) +_(OP_GAMEHUD) + +_(OP_CAMERA) +_(OP_P1CAMERA) +_(OP_P2CAMERA) +_(OP_P3CAMERA) +_(OP_P4CAMERA) + +_(OP_GAME) +_(OP_BLANKARTGAME) + +_(OP_SERVER) +_(OP_MONITORTOGGLE) +_(OP_ADVANCEDSERVER) + +_(OP_DATA) +_(OP_SCREENSHOTS) +_(OP_ADDONS) +_(MISC_REPLAYOPTIONS) +_(OP_ERASEDATA) +#ifdef HAVE_DISCORDRPC +_(OP_DISCORD) +#endif + +// Extras +_(SR_MAIN) +_(SP_LEVELSTATS) +_(SR_UNLOCKCHECKLIST) +_(MISC_REPLAYHUT) +_(MISC_REPLAYSTART) +_(SR_PANDORA) +_(SR_EMBLEMHINT) + +// Addons (Part of MISC, but let's make it our own) +_(AD_MAIN) + +// MISC +_(HELP) +_(SPAUSE) +_(MPAUSE) +_(MAPAUSE) +_(SCRAMBLETEAM) +_(CHANGETEAM) +_(CHANGELEVEL) +_(CHANGESPECTATE) +#ifdef HAVE_DISCORDRPC +_(MISC_DISCORDREQUESTS) +#endif diff --git a/src/m_menu.h b/src/m_menu.h index b570c3e50..a1a155529 100644 --- a/src/m_menu.h +++ b/src/m_menu.h @@ -38,105 +38,16 @@ extern "C" { #define NUMMENULEVELS 8 // Menu IDs sectioned by numeric places to signify hierarchy -/** - * IF YOU MODIFY THIS, MODIFY MENUTYPES_LIST[] IN dehacked.c TO MATCH. - */ typedef enum { - MN_NONE, - - MN_MAIN, - - // Single Player - MN_SP_MAIN, - - MN_SP_LEVELSTATS, - - MN_SP_TIMEATTACK, - MN_SP_GUESTREPLAY, - MN_SP_REPLAY, - MN_SP_GHOST, - - // Multiplayer - MN_MP_MAIN, - MN_MP_SPLITSCREEN, // SplitServer - MN_MP_SERVER, - MN_MP_CONNECT, - MN_MP_PLAYERSETUP, // MP_PlayerSetupDef shared with SPLITSCREEN if #defined NONET - - // Options - MN_OP_MAIN, - - MN_OP_CHANGECONTROLS, // OP_ChangeControlsDef shared with P2 - MN_OP_JOYSTICKSET, // OP_JoystickSetDef shared with P2 - MN_OP_P1CAMERA, - MN_OP_P2CAMERA, - - - MN_OP_VIDEO, - MN_OP_VIDEOMODE, - MN_OP_OPENGL, - - MN_OP_SOUND, - - MN_OP_SERVER, - MN_OP_MONITORTOGGLE, - - MN_OP_DATA, - MN_OP_ADDONS, - MN_OP_SCREENSHOTS, - MN_OP_ERASEDATA, - - // Extras - MN_SR_MAIN, - MN_SR_PANDORA, - MN_SR_UNLOCKCHECKLIST, - MN_SR_EMBLEMHINT, - MN_SR_SOUNDTEST, - - // Addons (Part of MISC, but let's make it our own) - MN_AD_MAIN, - - // MISC - // MN_MESSAGE, - MN_SPAUSE, - - MN_MPAUSE, - MN_SCRAMBLETEAM, - MN_CHANGETEAM, - MN_CHANGELEVEL, - - MN_MAPAUSE, - MN_HELP, - - // SRB2Kart - MN_OP_HUD, - MN_OP_CHAT, - MN_OP_GAME, - MN_OP_BLANKARTGAME, - MN_OP_ADVANCEDSERVER, - MN_OP_CAMERA, - MN_OP_P3CAMERA, - MN_OP_P4CAMERA, - MN_MISC_REPLAYOPTIONS, - MN_SP_GRANDPRIX, - MN_MISC_REPLAYHUT, - MN_CHANGESPECTATE, - MN_MISC_REPLAYSTART, - MN_PLAYBACK, - MN_OP_CONTROLSETUP, - MN_OP_GAMEHUD, - MN_OP_VISUAL, - -#ifdef HAVE_DISCORDRPC - MN_OP_DISCORD, - MN_MISC_DISCORDREQUESTS, -#endif +#define _(name, ...) MN_##name, +#include "info/menus.h" +#undef _ MN_FIRSTFREESLOT, - MN_LASTFREESLOT, + MN_LASTFREESLOT = MN_FIRSTFREESLOT + 128, NUMMENUTYPES, -} menutype_t; // up to 63 +} menutype_t; #define NUMMENUFREESLOTS (NUMMENUTYPES - MN_FIRSTFREESLOT) extern menu_t *menudefs[NUMMENUTYPES];