Skip to content

Commit c081fcf

Browse files
committed
Use new parser
1 parent 7da5273 commit c081fcf

File tree

2 files changed

+25
-56
lines changed

2 files changed

+25
-56
lines changed

Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp

Lines changed: 22 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ void CLuaEngineDefs::LoadFunctions()
3838
{"engineGetModelIDFromName", EngineGetModelIDFromName},
3939
{"engineGetModelTextureNames", EngineGetModelTextureNames},
4040
{"engineGetVisibleTextureNames", EngineGetVisibleTextureNames},
41-
{"engineSetModelVisibleTime", EngineSetModelVisibleTime},
42-
{"engineGetModelVisibleTime", EngineGetModelVisibleTime},
41+
{"engineSetModelVisibleTime", ArgumentParser<EngineSetModelVisibleTime>},
42+
{"engineGetModelVisibleTime", ArgumentParser<EngineGetModelVisibleTime>},
4343
{"engineGetModelTextures", EngineGetModelTextures},
4444
{"engineGetSurfaceProperties", EngineGetSurfaceProperties},
4545
{"engineSetSurfaceProperties", EngineSetSurfaceProperties},
@@ -778,6 +778,7 @@ int CLuaEngineDefs::EngineResetModelLODDistance(lua_State* luaVM)
778778

779779
if (argStream.HasErrors())
780780
return luaL_error(luaVM, argStream.GetFullErrorMessage());
781+
781782
unsigned short usModelID = CModelNames::ResolveModelID(strModel);
782783
CModelInfo* pModelInfo = g_pGame->GetModelInfo(usModelID);
783784
if (pModelInfo)
@@ -1101,72 +1102,39 @@ int CLuaEngineDefs::EngineGetVisibleTextureNames(lua_State* luaVM)
11011102
return 1;
11021103
}
11031104

1104-
int CLuaEngineDefs::EngineSetModelVisibleTime(lua_State* luaVM)
1105+
bool CLuaEngineDefs::EngineSetModelVisibleTime(std::string strModelId, char cHourOn, char cHourOff)
11051106
{
1106-
// bool engineSetModelVisibleTime ( int/string modelID, int hourOn, int hourOff )
1107-
SString strModelId;
1108-
char cHourOn,cHourOff;
1109-
CScriptArgReader argStream(luaVM);
1110-
argStream.ReadString(strModelId);
1111-
argStream.ReadNumber(cHourOn);
1112-
argStream.ReadNumber(cHourOff);
1113-
1114-
if (!argStream.HasErrors())
1107+
ushort usModelID = CModelNames::ResolveModelID(strModelId);
1108+
CModelInfo* pModelInfo = g_pGame->GetModelInfo(usModelID);
1109+
if (pModelInfo)
11151110
{
1116-
ushort usModelID = CModelNames::ResolveModelID(strModelId);
1117-
CModelInfo* pModelInfo = g_pGame->GetModelInfo(usModelID);
1118-
if (pModelInfo)
1111+
if (cHourOn >= 0 && cHourOn <= 24 && cHourOff >= 0 && cHourOff <= 24)
11191112
{
1120-
if (cHourOn >= 0 && cHourOn <= 24 && cHourOff >= 0 && cHourOff <= 24)
1121-
{
1122-
lua_pushboolean(luaVM, pModelInfo->SetTime(cHourOn, cHourOff));
1123-
return 1;
1124-
}
1113+
return pModelInfo->SetTime(cHourOn, cHourOff);
11251114
}
11261115
}
1127-
else
1128-
luaL_error(luaVM, argStream.GetFullErrorMessage());
11291116

1130-
// Failed
1131-
lua_pushboolean(luaVM, false);
1132-
return 1;
1117+
return false;
11331118
}
11341119

1135-
int CLuaEngineDefs::EngineGetModelVisibleTime(lua_State* luaVM)
1120+
std::variant<bool, std::tuple<char, char>> CLuaEngineDefs::EngineGetModelVisibleTime(std::string strModelId)
11361121
{
1137-
// int, int engineGetModelVisibleTime ( int/string modelID )
1138-
SString strModelId;
1139-
1140-
CScriptArgReader argStream(luaVM);
1141-
argStream.ReadString(strModelId);
1142-
1143-
if (!argStream.HasErrors())
1122+
ushort usModelID = CModelNames::ResolveModelID(strModelId);
1123+
CModelInfo* pModelInfo = g_pGame->GetModelInfo(usModelID);
1124+
if (pModelInfo)
11441125
{
1145-
ushort usModelID = CModelNames::ResolveModelID(strModelId);
1146-
CModelInfo* pModelInfo = g_pGame->GetModelInfo(usModelID);
1147-
if (pModelInfo)
1126+
char cHourOn, cHourOff;
1127+
if (pModelInfo->GetTime(cHourOn, cHourOff))
11481128
{
1149-
char cHourOn, cHourOff;
1150-
if (pModelInfo->GetTime(cHourOn, cHourOff))
1151-
{
1152-
lua_pushnumber(luaVM, cHourOn);
1153-
lua_pushnumber(luaVM, cHourOff);
1154-
return 2;
1155-
}
1156-
else // Model is incompatible, don't let confuse user.
1157-
{
1158-
lua_pushnumber(luaVM, 0);
1159-
lua_pushnumber(luaVM, 24);
1160-
return 2;
1161-
}
1129+
return std::tuple(cHourOn, cHourOff);
1130+
}
1131+
else // Model is incompatible, don't let confuse user.
1132+
{
1133+
return std::tuple(0, 24);
11621134
}
11631135
}
1164-
else
1165-
luaL_error(luaVM, argStream.GetFullErrorMessage());
11661136

1167-
// Failed
1168-
lua_pushboolean(luaVM, false);
1169-
return 1;
1137+
return false;
11701138
}
11711139

11721140
int CLuaEngineDefs::EngineGetModelTextures(lua_State* luaVM)

Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ class CLuaEngineDefs : public CLuaDefs
4747
LUA_DECLARE(EngineGetModelIDFromName);
4848
LUA_DECLARE(EngineGetModelTextureNames);
4949
LUA_DECLARE(EngineGetVisibleTextureNames);
50-
LUA_DECLARE(EngineSetModelVisibleTime);
51-
LUA_DECLARE(EngineGetModelVisibleTime);
5250
LUA_DECLARE(EngineGetModelTextures);
5351
LUA_DECLARE(EngineSetSurfaceProperties);
5452
LUA_DECLARE(EngineGetSurfaceProperties);
@@ -60,6 +58,9 @@ class CLuaEngineDefs : public CLuaDefs
6058
LUA_DECLARE(EngineGetObjectGroupPhysicalProperty)
6159
LUA_DECLARE(EngineRestoreObjectGroupPhysicalProperties)
6260
static bool CLuaEngineDefs::EngineRestreamWorld(lua_State* const luaVM);
61+
static bool EngineSetModelVisibleTime(std::string strModelId, char cHourOn, char cHourOff);
62+
static std::variant<bool, std::tuple<char, char>> EngineGetModelVisibleTime(std::string strModelId);
63+
6364
private:
6465
static void AddEngineColClass(lua_State* luaVM);
6566
static void AddEngineTxdClass(lua_State* luaVM);

0 commit comments

Comments
 (0)