mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-15 01:01:33 +00:00
Merge branch 'final-hours' of https://git.do.srb2.org/STJr/SRB2.git into release-candidate
This commit is contained in:
commit
42c066f9b1
1 changed files with 2 additions and 34 deletions
|
@ -361,9 +361,6 @@ static int lib_cvRegisterVar(lua_State *L)
|
|||
size_t count = 0;
|
||||
CV_PossibleValue_t *cvpv;
|
||||
|
||||
const char * const MINMAX[2] = {"MIN", "MAX"};
|
||||
int minmax_unset = 3;
|
||||
|
||||
lua_pushnil(L);
|
||||
while (lua_next(L, 4)) {
|
||||
count++;
|
||||
|
@ -380,45 +377,16 @@ static int lib_cvRegisterVar(lua_State *L)
|
|||
i = 0;
|
||||
lua_pushnil(L);
|
||||
while (lua_next(L, 4)) {
|
||||
INT32 n;
|
||||
const char * strval;
|
||||
|
||||
// stack: [...] PossibleValue table, index, value
|
||||
// 4 5 6
|
||||
if (lua_type(L, 5) != LUA_TSTRING
|
||||
|| lua_type(L, 6) != LUA_TNUMBER)
|
||||
FIELDERROR("PossibleValue", "custom PossibleValue table requires a format of string=integer, i.e. {MIN=0, MAX=9999}");
|
||||
|
||||
strval = lua_tostring(L, 5);
|
||||
|
||||
if (
|
||||
stricmp(strval, MINMAX[n=0]) == 0 ||
|
||||
stricmp(strval, MINMAX[n=1]) == 0
|
||||
){
|
||||
/* need to shift forward */
|
||||
if (minmax_unset == 3)
|
||||
{
|
||||
memmove(&cvpv[2], &cvpv[0],
|
||||
i * sizeof *cvpv);
|
||||
}
|
||||
cvpv[n].strvalue = MINMAX[n];
|
||||
minmax_unset &= ~(1 << n);
|
||||
}
|
||||
else
|
||||
{
|
||||
n = i;
|
||||
cvpv[n].strvalue = Z_StrDup(strval);
|
||||
}
|
||||
|
||||
cvpv[n].value = (INT32)lua_tonumber(L, 6);
|
||||
|
||||
cvpv[i].strvalue = Z_StrDup(lua_tostring(L, 5));
|
||||
cvpv[i].value = (INT32)lua_tonumber(L, 6);
|
||||
i++;
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
|
||||
if (minmax_unset)
|
||||
FIELDERROR("PossibleValue", "custom PossibleValue table requires requires both MIN and MAX keys if one is present");
|
||||
|
||||
cvpv[i].value = 0;
|
||||
cvpv[i].strvalue = NULL;
|
||||
cvar->PossibleValue = cvpv;
|
||||
|
|
Loading…
Reference in a new issue