Skip to content

Commit caa8671

Browse files
committed
Implement getResources on client side
1 parent 8d8bbff commit caa8671

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

Client/mods/deathmatch/logic/CResourceManager.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ class CResourceManager
3939
CResource* GetResourceFromLuaState(struct lua_State* luaVM);
4040
SString GetResourceName(struct lua_State* luaVM);
4141

42+
std::list<CResource*>::const_iterator IterBegin() { return m_resources.begin(); };
43+
std::list<CResource*>::const_iterator IterEnd() { return m_resources.end(); };
44+
4245
bool RemoveResource(unsigned short usID);
4346
void Remove(CResource* pResource);
4447
bool Exists(CResource* pResource);

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ void CLuaResourceDefs::LoadFunctions()
2626
{"getResourceGUIElement", GetResourceGUIElement},
2727
{"getResourceDynamicElementRoot", GetResourceDynamicElementRoot},
2828
{"getResourceExportedFunctions", GetResourceExportedFunctions},
29+
{"getResources", GetResources},
2930
{"getResourceState", GetResourceState},
3031
{"loadstring", LoadString},
3132
{"load", Load},
@@ -391,6 +392,20 @@ int CLuaResourceDefs::GetResourceExportedFunctions(lua_State* luaVM)
391392
return 1;
392393
}
393394

395+
int CLuaResourceDefs::GetResources(lua_State* luaVM)
396+
{
397+
unsigned int uiIndex = 0;
398+
lua_newtable(luaVM);
399+
list<CResource*>::const_iterator iter = m_pResourceManager->IterBegin();
400+
for (; iter != m_pResourceManager->IterEnd(); ++iter)
401+
{
402+
lua_pushnumber(luaVM, ++uiIndex);
403+
lua_pushresource(luaVM, *iter);
404+
lua_settable(luaVM, -3);
405+
}
406+
return 1;
407+
}
408+
394409
int CLuaResourceDefs::GetResourceState(lua_State* luaVM)
395410
{
396411
// string getResourceState ( resource theResource )

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class CLuaResourceDefs : public CLuaDefs
2626
LUA_DECLARE(GetResourceGUIElement);
2727
LUA_DECLARE(GetResourceDynamicElementRoot);
2828
LUA_DECLARE(GetResourceExportedFunctions);
29+
LUA_DECLARE(GetResources);
2930
LUA_DECLARE(GetResourceState);
3031
LUA_DECLARE(LoadString);
3132
LUA_DECLARE(Load);

0 commit comments

Comments
 (0)