mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-17 23:21:22 +00:00
Merge branch 'set-cvars' into 'next'
Set cvars directly from Lua See merge request STJr/SRB2!1205
This commit is contained in:
commit
687e2d89cc
1 changed files with 43 additions and 0 deletions
|
@ -432,6 +432,46 @@ static int lib_cvFindVar(lua_State *L)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int CVarSetFunction
|
||||
(
|
||||
lua_State *L,
|
||||
void (*Set)(consvar_t *, const char *),
|
||||
void (*SetValue)(consvar_t *, INT32)
|
||||
){
|
||||
consvar_t *cvar = (consvar_t *)luaL_checkudata(L, 1, META_CVAR);
|
||||
|
||||
switch (lua_type(L, 2))
|
||||
{
|
||||
case LUA_TSTRING:
|
||||
(*Set)(cvar, lua_tostring(L, 2));
|
||||
break;
|
||||
case LUA_TNUMBER:
|
||||
(*SetValue)(cvar, (INT32)lua_tonumber(L, 2));
|
||||
break;
|
||||
default:
|
||||
return luaL_typerror(L, 1, "string or number");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int lib_cvSet(lua_State *L)
|
||||
{
|
||||
return CVarSetFunction(L, CV_Set, CV_SetValue);
|
||||
}
|
||||
|
||||
static int lib_cvStealthSet(lua_State *L)
|
||||
{
|
||||
return CVarSetFunction(L, CV_StealthSet, CV_StealthSetValue);
|
||||
}
|
||||
|
||||
static int lib_cvAddValue(lua_State *L)
|
||||
{
|
||||
consvar_t *cvar = (consvar_t *)luaL_checkudata(L, 1, META_CVAR);
|
||||
CV_AddValue(cvar, (INT32)luaL_checknumber(L, 2));
|
||||
return 0;
|
||||
}
|
||||
|
||||
// CONS_Printf for a single player
|
||||
// Use 'print' in baselib for a global message.
|
||||
static int lib_consPrintf(lua_State *L)
|
||||
|
@ -472,6 +512,9 @@ static luaL_Reg lib[] = {
|
|||
{"COM_BufInsertText", lib_comBufInsertText},
|
||||
{"CV_RegisterVar", lib_cvRegisterVar},
|
||||
{"CV_FindVar", lib_cvFindVar},
|
||||
{"CV_Set", lib_cvSet},
|
||||
{"CV_StealthSet", lib_cvStealthSet},
|
||||
{"CV_AddValue", lib_cvAddValue},
|
||||
{"CONS_Printf", lib_consPrintf},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue