mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-15 09:11:48 +00:00
Menutypes for dehacked
This commit is contained in:
parent
b69756f5e5
commit
3ec96d8b99
2 changed files with 115 additions and 1 deletions
114
src/dehacked.c
114
src/dehacked.c
|
@ -7751,6 +7751,96 @@ static const char *const HUDITEMS_LIST[] = {
|
||||||
"LAP"
|
"LAP"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char *const MENUTYPES_LIST[] = {
|
||||||
|
"NONE",
|
||||||
|
|
||||||
|
"MAIN",
|
||||||
|
|
||||||
|
// Single Player
|
||||||
|
"SP_MAIN",
|
||||||
|
|
||||||
|
"SP_LOAD",
|
||||||
|
"SP_PLAYER",
|
||||||
|
|
||||||
|
"SP_LEVELSELECT",
|
||||||
|
"SP_LEVELSTATS",
|
||||||
|
|
||||||
|
"SP_TIMEATTACK",
|
||||||
|
"SP_TIMEATTACK_LEVELSELECT",
|
||||||
|
"SP_GUESTREPLAY",
|
||||||
|
"SP_REPLAY",
|
||||||
|
"SP_GHOST",
|
||||||
|
|
||||||
|
"SP_NIGHTSATTACK",
|
||||||
|
"SP_NIGHTS_LEVELSELECT",
|
||||||
|
"SP_NIGHTS_GUESTREPLAY",
|
||||||
|
"SP_NIGHTS_REPLAY",
|
||||||
|
"SP_NIGHTS_GHOST",
|
||||||
|
|
||||||
|
// Multiplayer
|
||||||
|
"MP_MAIN",
|
||||||
|
"MP_SPLITSCREEN", // SplitServer
|
||||||
|
"MP_SERVER",
|
||||||
|
"MP_CONNECT",
|
||||||
|
"MP_ROOM",
|
||||||
|
"MP_PLAYERSETUP", // MP_PlayerSetupDef shared with SPLITSCREEN if #defined NONET
|
||||||
|
|
||||||
|
// Options
|
||||||
|
"OP_MAIN",
|
||||||
|
|
||||||
|
"OP_P1CONTROLS",
|
||||||
|
"OP_CHANGECONTROLS", // OP_ChangeControlsDef shared with P2
|
||||||
|
"OP_P1MOUSE",
|
||||||
|
"OP_P1JOYSTICK",
|
||||||
|
"OP_JOYSTICKSET", // OP_JoystickSetDef shared with P2
|
||||||
|
|
||||||
|
"OP_P2CONTROLS",
|
||||||
|
"OP_P2MOUSE",
|
||||||
|
"OP_P2JOYSTICK",
|
||||||
|
|
||||||
|
"OP_VIDEO",
|
||||||
|
"OP_VIDEOMODE",
|
||||||
|
"OP_COLOR",
|
||||||
|
"OP_OPENGL",
|
||||||
|
"OP_OPENGL_LIGHTING",
|
||||||
|
"OP_OPENGL_FOG",
|
||||||
|
"OP_OPENGL_COLOR",
|
||||||
|
|
||||||
|
"OP_SOUND",
|
||||||
|
|
||||||
|
"OP_SERVER",
|
||||||
|
"OP_MONITORTOGGLE",
|
||||||
|
|
||||||
|
"OP_DATA",
|
||||||
|
"OP_ADDONS",
|
||||||
|
"OP_SCREENSHOTS",
|
||||||
|
"OP_ERASEDATA",
|
||||||
|
|
||||||
|
// Secrets
|
||||||
|
"SR_MAIN",
|
||||||
|
"SR_PANDORA",
|
||||||
|
"SR_LEVELSELECT",
|
||||||
|
"SR_UNLOCKCHECKLIST",
|
||||||
|
"SR_EMBLEMHINT",
|
||||||
|
|
||||||
|
// Addons (Part of MISC, but let's make it our own)
|
||||||
|
"AD_MAIN",
|
||||||
|
|
||||||
|
// MISC
|
||||||
|
// "MESSAGE",
|
||||||
|
// "SPAUSE",
|
||||||
|
|
||||||
|
// "MPAUSE",
|
||||||
|
// "SCRAMBLETEAM",
|
||||||
|
// "CHANGETEAM",
|
||||||
|
// "CHANGELEVEL",
|
||||||
|
|
||||||
|
// "MAPAUSE",
|
||||||
|
// "HELP",
|
||||||
|
|
||||||
|
"SPECIAL"
|
||||||
|
};
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
const char *n;
|
const char *n;
|
||||||
// has to be able to hold both fixed_t and angle_t, so drastic measure!!
|
// has to be able to hold both fixed_t and angle_t, so drastic measure!!
|
||||||
|
@ -8450,6 +8540,20 @@ static hudnum_t get_huditem(const char *word)
|
||||||
return HUD_LIVES;
|
return HUD_LIVES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static menutype_t get_menutype(const char *word)
|
||||||
|
{ // Returns the value of MM_ enumerations
|
||||||
|
menutype_t i;
|
||||||
|
if (*word >= '0' && *word <= '9')
|
||||||
|
return atoi(word);
|
||||||
|
if (fastncmp("MM_",word,3))
|
||||||
|
word += 3; // take off the MM_
|
||||||
|
for (i = 0; i < NUMMENUTYPES; i++)
|
||||||
|
if (fastcmp(word, MENUTYPES_LIST[i]))
|
||||||
|
return i;
|
||||||
|
deh_warning("Couldn't find menutype named 'MM_%s'",word);
|
||||||
|
return MM_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef HAVE_BLUA
|
#ifndef HAVE_BLUA
|
||||||
static powertype_t get_power(const char *word)
|
static powertype_t get_power(const char *word)
|
||||||
{ // Returns the vlaue of pw_ enumerations
|
{ // Returns the vlaue of pw_ enumerations
|
||||||
|
@ -9114,6 +9218,16 @@ static inline int lib_getenum(lua_State *L)
|
||||||
if (mathlib) return luaL_error(L, "skincolor '%s' could not be found.\n", word);
|
if (mathlib) return luaL_error(L, "skincolor '%s' could not be found.\n", word);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
else if (fastncmp("MM_",word,3)) {
|
||||||
|
p = word+3;
|
||||||
|
for (i = 0; i < NUMMENUTYPES; i++)
|
||||||
|
if (fastcmp(p, MENUTYPES_LIST[i])) {
|
||||||
|
lua_pushinteger(L, i);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (mathlib) return luaL_error(L, "menutype '%s' could not be found.\n", word);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
else if (!mathlib && fastncmp("A_",word,2)) {
|
else if (!mathlib && fastncmp("A_",word,2)) {
|
||||||
char *caps;
|
char *caps;
|
||||||
// Try to get a Lua action first.
|
// Try to get a Lua action first.
|
||||||
|
|
|
@ -113,7 +113,7 @@ typedef enum
|
||||||
// MM_HELP,
|
// MM_HELP,
|
||||||
|
|
||||||
MM_SPECIAL,
|
MM_SPECIAL,
|
||||||
NUM_MM,
|
NUMMENUTYPES,
|
||||||
} menutype_t; // up to 63; MM_SPECIAL = 53
|
} menutype_t; // up to 63; MM_SPECIAL = 53
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue