mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-26 20:31:30 +00:00
Fuck magic numbers; COM_ flags for Lua commands!
This commit is contained in:
parent
1d8608c00d
commit
bb97e0805e
3 changed files with 22 additions and 4 deletions
|
@ -20,6 +20,13 @@
|
||||||
// Command buffer & command execution
|
// Command buffer & command execution
|
||||||
//===================================
|
//===================================
|
||||||
|
|
||||||
|
/* Lua command registration flags. */
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
COM_ADMIN = 1,
|
||||||
|
COM_SPLITSCREEN = 2,
|
||||||
|
};
|
||||||
|
|
||||||
typedef void (*com_func_t)(void);
|
typedef void (*com_func_t)(void);
|
||||||
|
|
||||||
void COM_AddCommand(const char *name, com_func_t func);
|
void COM_AddCommand(const char *name, com_func_t func);
|
||||||
|
|
|
@ -8685,6 +8685,10 @@ struct {
|
||||||
{"BT_CUSTOM2",BT_CUSTOM2}, // Lua customizable
|
{"BT_CUSTOM2",BT_CUSTOM2}, // Lua customizable
|
||||||
{"BT_CUSTOM3",BT_CUSTOM3}, // Lua customizable
|
{"BT_CUSTOM3",BT_CUSTOM3}, // Lua customizable
|
||||||
|
|
||||||
|
// Lua command registration flags
|
||||||
|
{"COM_ADMIN",COM_ADMIN},
|
||||||
|
{"COM_SPLITSCREEN",COM_SPLITSCREEN},
|
||||||
|
|
||||||
// cvflags_t
|
// cvflags_t
|
||||||
{"CV_SAVE",CV_SAVE},
|
{"CV_SAVE",CV_SAVE},
|
||||||
{"CV_CALL",CV_CALL},
|
{"CV_CALL",CV_CALL},
|
||||||
|
|
|
@ -113,12 +113,12 @@ void COM_Lua_f(void)
|
||||||
|
|
||||||
lua_rawgeti(gL, -1, 2); // push flags from command info table
|
lua_rawgeti(gL, -1, 2); // push flags from command info table
|
||||||
if (lua_isboolean(gL, -1))
|
if (lua_isboolean(gL, -1))
|
||||||
flags = (lua_toboolean(gL, -1) ? 1 : 0);
|
flags = (lua_toboolean(gL, -1) ? COM_ADMIN : 0);
|
||||||
else
|
else
|
||||||
flags = (UINT8)lua_tointeger(gL, -1);
|
flags = (UINT8)lua_tointeger(gL, -1);
|
||||||
lua_pop(gL, 1); // pop flags
|
lua_pop(gL, 1); // pop flags
|
||||||
|
|
||||||
if (flags & 2) // flag 2: splitscreen player command. TODO: support 4P
|
if (flags & COM_SPLITSCREEN) // flag 2: splitscreen player command. TODO: support 4P
|
||||||
{
|
{
|
||||||
if (!splitscreen)
|
if (!splitscreen)
|
||||||
{
|
{
|
||||||
|
@ -133,7 +133,7 @@ void COM_Lua_f(void)
|
||||||
UINT8 argc;
|
UINT8 argc;
|
||||||
lua_pop(gL, 1); // pop command info table
|
lua_pop(gL, 1); // pop command info table
|
||||||
|
|
||||||
if (flags & 1 && !server && !IsPlayerAdmin(playernum)) // flag 1: only server/admin can use this command.
|
if (flags & COM_ADMIN && !server && !IsPlayerAdmin(playernum)) // flag 1: only server/admin can use this command.
|
||||||
{
|
{
|
||||||
CONS_Printf(M_GetText("Only the server or a remote admin can use this.\n"));
|
CONS_Printf(M_GetText("Only the server or a remote admin can use this.\n"));
|
||||||
return;
|
return;
|
||||||
|
@ -187,7 +187,14 @@ static int lib_comAddCommand(lua_State *L)
|
||||||
if (lua_gettop(L) >= 3)
|
if (lua_gettop(L) >= 3)
|
||||||
{ // For the third argument, only take a boolean or a number.
|
{ // For the third argument, only take a boolean or a number.
|
||||||
lua_settop(L, 3);
|
lua_settop(L, 3);
|
||||||
if (lua_type(L, 3) != LUA_TBOOLEAN)
|
if (lua_type(L, 3) == LUA_TBOOLEAN)
|
||||||
|
{
|
||||||
|
CONS_Alert(CONS_WARNING,
|
||||||
|
"Using a boolean is deprecated and will be removed.\n"
|
||||||
|
"Use \"COM_\" flags instead.\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
luaL_checktype(L, 3, LUA_TNUMBER);
|
luaL_checktype(L, 3, LUA_TNUMBER);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue