// SONIC ROBO BLAST 2 //----------------------------------------------------------------------------- // Copyright (C) 1993-1996 by id Software, Inc. // Copyright (C) 1998-2000 by DooM Legacy Team. // Copyright (C) 2011-2016 by Matthew "Kaito Sinclaire" Walsh. // Copyright (C) 1999-2020 by Sonic Team Junior. // // This program is free software distributed under the // terms of the GNU General Public License, version 2. // See the 'LICENSE' file for more details. //----------------------------------------------------------------------------- /// \file m_menu.h /// \brief Menu widget stuff, selection and such #ifndef __X_MENU__ #define __X_MENU__ #include "doomstat.h" // for NUMGAMETYPES #include "d_event.h" #include "command.h" #include "f_finale.h" // for ttmode_enum #include "i_threads.h" #include "mserv.h" #include "r_things.h" // for SKINNAMESIZE // Compatibility with old-style named NiGHTS replay files. #define OLDNREPLAYNAME // // MENUS // // If menu hierarchies go deeper, change this up to 5. // Zero-based, inclusive. #define NUMMENULEVELS 3 #define MENUBITS 6 // 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_LOAD, MN_SP_PLAYER, MN_SP_LEVELSELECT, MN_SP_LEVELSTATS, MN_SP_TIMEATTACK, MN_SP_TIMEATTACK_LEVELSELECT, MN_SP_GUESTREPLAY, MN_SP_REPLAY, MN_SP_GHOST, MN_SP_NIGHTSATTACK, MN_SP_NIGHTS_LEVELSELECT, MN_SP_NIGHTS_GUESTREPLAY, MN_SP_NIGHTS_REPLAY, MN_SP_NIGHTS_GHOST, MN_SP_MARATHON, // Multiplayer MN_MP_MAIN, MN_MP_SPLITSCREEN, // SplitServer MN_MP_SERVER, MN_MP_CONNECT, MN_MP_ROOM, MN_MP_PLAYERSETUP, // MP_PlayerSetupDef shared with SPLITSCREEN if #defined NONET MN_MP_SERVER_OPTIONS, // Options MN_OP_MAIN, MN_OP_P1CONTROLS, MN_OP_CHANGECONTROLS, // OP_ChangeControlsDef shared with P2 MN_OP_P1MOUSE, MN_OP_P1JOYSTICK, MN_OP_JOYSTICKSET, // OP_JoystickSetDef shared with P2 MN_OP_P1CAMERA, MN_OP_P2CONTROLS, MN_OP_P2MOUSE, MN_OP_P2JOYSTICK, MN_OP_P2CAMERA, MN_OP_PLAYSTYLE, MN_OP_VIDEO, MN_OP_VIDEOMODE, MN_OP_COLOR, MN_OP_OPENGL, MN_OP_OPENGL_LIGHTING, 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_LEVELSELECT, MN_SR_UNLOCKCHECKLIST, MN_SR_EMBLEMHINT, MN_SR_PLAYER, 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, MN_SPECIAL, NUMMENUTYPES, } menutype_t; // up to 63; MN_SPECIAL = 53 #define MTREE2(a,b) (a | (b<