From ecfd14abd3bca553daf0ed0ad7a7004c1e882597 Mon Sep 17 00:00:00 2001 From: Nikita Obrekht Date: Fri, 21 Feb 2020 13:04:59 +0200 Subject: [PATCH] Add isResourceProtected function --- .../logic/luadefs/CLuaResourceDefs.cpp | 18 ++++++++++++++++++ .../logic/luadefs/CLuaResourceDefs.h | 1 + 2 files changed, 19 insertions(+) diff --git a/Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.cpp b/Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.cpp index 3548fa2d1b1..20db003ea68 100644 --- a/Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.cpp +++ b/Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.cpp @@ -53,6 +53,7 @@ void CLuaResourceDefs::LoadFunctions() {"getResourceExportedFunctions", getResourceExportedFunctions}, {"getResourceOrganizationalPath", getResourceOrganizationalPath}, {"isResourceArchived", isResourceArchived}, + {"isResourceProtected", isResourceProtected}, // Set stuff {"setResourceInfo", setResourceInfo}, @@ -121,6 +122,7 @@ void CLuaResourceDefs::AddClass(lua_State* luaVM) lua_classfunction(luaVM, "getState", "getResourceState"); lua_classfunction(luaVM, "getACLRequests", "getResourceACLRequests"); lua_classfunction(luaVM, "isArchived", "isResourceArchived"); + lua_classfunction(luaVM, "isProtected", "isResourceProtected"); lua_classvariable(luaVM, "dynamicElementRoot", NULL, "getResourceDynamicElementRoot"); lua_classvariable(luaVM, "exportedFunctions", NULL, "getResourceExportedFunctions"); @@ -132,6 +134,7 @@ void CLuaResourceDefs::AddClass(lua_State* luaVM) lua_classvariable(luaVM, "rootElement", NULL, "getResourceRootElement"); lua_classvariable(luaVM, "state", NULL, "getResourceState"); lua_classvariable(luaVM, "archived", NULL, "isResourceArchived"); + lua_classvariable(luaVM, "protected", nullptr, "isResourceProtected"); lua_classvariable(luaVM, "loadFailureReason", NULL, "getResourceLoadFailureReason"); // lua_classvariable ( luaVM, "info", "setResourceInfo", "getResourceInfo", CLuaOOPDefs::SetResourceInfo, CLuaOOPDefs::GetResourceInfo ); // .key[value] // lua_classvariable ( luaVM, "defaultSetting", "setResourceDefaultSetting", NULL, CLuaOOPDefs::SetResourceDefaultSetting, NULL ); // .key[value] @@ -1462,3 +1465,18 @@ int CLuaResourceDefs::isResourceArchived(lua_State* luaVM) lua_pushnil(luaVM); return 1; } + +int CLuaResourceDefs::isResourceProtected(lua_State* luaVM) +{ + // bool isResourceProtected ( resource theResource ) + CResource* pResource; + + CScriptArgReader argStream(luaVM); + argStream.ReadUserData(pResource); + + if (argStream.HasErrors()) + return luaL_error(luaVM, argStream.GetFullErrorMessage()); + + lua_pushboolean(luaVM, pResource->IsProtected()); + return 1; +} diff --git a/Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.h b/Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.h index 0a09c03b830..eca6f59a559 100644 --- a/Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.h +++ b/Server/mods/deathmatch/logic/luadefs/CLuaResourceDefs.h @@ -54,6 +54,7 @@ class CLuaResourceDefs : public CLuaDefs LUA_DECLARE(getResourceExportedFunctions); LUA_DECLARE(getResourceOrganizationalPath); LUA_DECLARE(isResourceArchived); + LUA_DECLARE(isResourceProtected); // Set stuff LUA_DECLARE(setResourceInfo);