Skip to content

Commit 13f366d

Browse files
committed
Revert "Global variable and default value for resource names (#3363)"
This reverts commit cd88950. The changes in the commit primarily broke map editor and other resources.
1 parent 8785e72 commit 13f366d

File tree

6 files changed

+41
-48
lines changed

6 files changed

+41
-48
lines changed

Client/mods/deathmatch/logic/lua/CLuaMain.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,6 @@ void CLuaMain::InitVM()
170170
lua_pushelement(m_luaVM, m_pResource->GetResourceEntity());
171171
lua_setglobal(m_luaVM, "resourceRoot");
172172

173-
lua_pushstring(m_luaVM, m_pResource->GetName());
174-
lua_setglobal(m_luaVM, "resourceName");
175-
176173
lua_pushelement(m_luaVM, m_pResource->GetResourceGUIEntity());
177174
lua_setglobal(m_luaVM, "guiRoot");
178175

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

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
*****************************************************************************/
1111

1212
#include "StdInc.h"
13-
#include <lua/CLuaFunctionParser.h>
14-
1513
using std::list;
1614

1715
void CLuaResourceDefs::LoadFunctions()
@@ -20,7 +18,7 @@ void CLuaResourceDefs::LoadFunctions()
2018
{"call", Call},
2119
{"getThisResource", GetThisResource},
2220
{"getResourceConfig", GetResourceConfig},
23-
{"getResourceName", ArgumentParserWarn<false, GetResourceName>},
21+
{"getResourceName", GetResourceName},
2422
{"getResourceFromName", GetResourceFromName},
2523
{"getResourceRootElement", GetResourceRootElement},
2624
{"getResourceGUIElement", GetResourceGUIElement},
@@ -222,24 +220,34 @@ int CLuaResourceDefs::GetResourceConfig(lua_State* luaVM)
222220
return 1;
223221
}
224222

225-
std::string CLuaResourceDefs::GetResourceName(lua_State* luaVM, std::optional<CResource*> resourceElement)
223+
int CLuaResourceDefs::GetResourceName(lua_State* luaVM)
226224
{
227-
if (resourceElement && resourceElement.has_value())
225+
// Verify arguments
226+
CResource* pResource = NULL;
227+
CScriptArgReader argStream(luaVM);
228+
argStream.ReadUserData(pResource);
229+
230+
if (!argStream.HasErrors())
228231
{
229-
return (*resourceElement)->GetName();
232+
if (pResource)
233+
{
234+
// Grab its name and return it
235+
const char* szName = pResource->GetName();
236+
if (szName)
237+
{
238+
lua_pushstring(luaVM, szName);
239+
return 1;
240+
}
241+
}
242+
else
243+
m_pScriptDebugging->LogBadPointer(luaVM, "resource", 1);
230244
}
245+
else
246+
m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage());
231247

232-
CLuaMain* localVM = m_pLuaManager->GetVirtualMachine(luaVM);
233-
234-
if (!localVM)
235-
throw std::invalid_argument("Couldn't find the virtual machine");
236-
237-
CResource* localResource = localVM->GetResource();
238-
239-
if (!localResource)
240-
throw std::invalid_argument("Couldn't find the resource");
241-
242-
return localResource->GetName();
248+
// Failed
249+
lua_pushboolean(luaVM, false);
250+
return 1;
243251
}
244252

245253
int CLuaResourceDefs::GetResourceFromName(lua_State* luaVM)

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class CLuaResourceDefs : public CLuaDefs
2121
LUA_DECLARE(Call);
2222
LUA_DECLARE(GetThisResource);
2323
LUA_DECLARE(GetResourceConfig);
24+
LUA_DECLARE(GetResourceName);
2425
LUA_DECLARE(GetResourceFromName);
2526
LUA_DECLARE(GetResourceRootElement);
2627
LUA_DECLARE(GetResourceGUIElement);
@@ -29,6 +30,4 @@ class CLuaResourceDefs : public CLuaDefs
2930
LUA_DECLARE(GetResourceState);
3031
LUA_DECLARE(LoadString);
3132
LUA_DECLARE(Load);
32-
33-
static std::string GetResourceName(lua_State* luaVM, std::optional<CResource*> resourceElement);
3433
};

Server/mods/deathmatch/logic/lua/CLuaMain.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,9 +234,6 @@ void CLuaMain::Initialize()
234234

235235
lua_pushelement(m_luaVM, m_pResource->GetResourceRootElement());
236236
lua_setglobal(m_luaVM, "resourceRoot");
237-
238-
lua_pushstring(m_luaVM, m_pResource->GetName());
239-
lua_setglobal(m_luaVM, "resourceName");
240237
}
241238

242239
void CLuaMain::LoadEmbeddedScripts()

Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.cpp

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void CLuaResourceDefs::LoadFunctions()
5454
{"getResourceLoadFailureReason", getResourceLoadFailureReason},
5555
{"getResourceLastStartTime", getResourceLastStartTime},
5656
{"getResourceLoadTime", getResourceLoadTime},
57-
{"getResourceName", ArgumentParserWarn<false, GetResourceName>},
57+
{"getResourceName", getResourceName},
5858
{"getResourceRootElement", getResourceRootElement},
5959
{"getResourceDynamicElementRoot", getResourceDynamicElementRoot},
6060
{"getResourceMapRootElement", getResourceMapRootElement},
@@ -898,30 +898,23 @@ int CLuaResourceDefs::getResourceLoadTime(lua_State* luaVM)
898898
return 1;
899899
}
900900

901-
std::string CLuaResourceDefs::GetResourceName(lua_State* luaVM, std::optional<CResource*> resourceElement)
901+
int CLuaResourceDefs::getResourceName(lua_State* luaVM)
902902
{
903-
if (resourceElement && resourceElement.has_value())
904-
{
905-
if (!(*resourceElement)->IsActive())
906-
throw std::invalid_argument("The resource isn't active");
907-
908-
return (*resourceElement)->GetName();
909-
}
910-
911-
CLuaMain* localVM = m_pLuaManager->GetVirtualMachine(luaVM);
912-
913-
if (!localVM)
914-
throw std::invalid_argument("Couldn't find the virtual machine");
915-
916-
CResource* localResource = localVM->GetResource();
903+
CResource* pResource;
917904

918-
if (!localResource)
919-
throw std::invalid_argument("Couldn't find the resource");
905+
CScriptArgReader argStream(luaVM);
906+
argStream.ReadUserData(pResource);
920907

921-
if (!localResource->IsActive())
922-
throw std::invalid_argument("The resource isn't active");
908+
if (!argStream.HasErrors())
909+
{
910+
lua_pushstring(luaVM, pResource->GetName().c_str());
911+
return 1;
912+
}
913+
else
914+
m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage());
923915

924-
return localResource->GetName();
916+
lua_pushboolean(luaVM, false);
917+
return 1;
925918
}
926919

927920
int CLuaResourceDefs::getResourceRootElement(lua_State* luaVM)

Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,14 @@ class CLuaResourceDefs : public CLuaDefs
4747
LUA_DECLARE(getResourceLoadFailureReason);
4848
LUA_DECLARE(getResourceLastStartTime);
4949
LUA_DECLARE(getResourceLoadTime);
50+
LUA_DECLARE(getResourceName);
5051
LUA_DECLARE(getResourceRootElement);
5152
LUA_DECLARE(getResourceDynamicElementRoot);
5253
LUA_DECLARE(getResourceMapRootElement);
5354
LUA_DECLARE(getResourceExportedFunctions);
5455
LUA_DECLARE(getResourceOrganizationalPath);
5556
LUA_DECLARE(isResourceArchived);
56-
5757
static bool isResourceProtected(CResource* const resource);
58-
static std::string GetResourceName(lua_State* luaVM, std::optional<CResource*> resourceElement);
5958

6059
// Set stuff
6160
LUA_DECLARE(setResourceInfo);

0 commit comments

Comments
 (0)