From e97c47315e9ebda78b8bbf130e4af246ae3275ff Mon Sep 17 00:00:00 2001 From: Sezz Date: Wed, 12 Mar 2025 00:10:05 +1100 Subject: [PATCH 1/2] Remove m prefix from private logic handler fields --- .../Internal/TEN/Logic/LogicHandler.cpp | 343 +++++++++--------- .../Internal/TEN/Logic/LogicHandler.h | 64 ++-- 2 files changed, 205 insertions(+), 202 deletions(-) diff --git a/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp b/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp index 2c23ff09a..e85c98ce5 100644 --- a/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp +++ b/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp @@ -194,11 +194,11 @@ sol::object GetVariable(sol::table tab, sol::object key) return tab.raw_get(key); } -LogicHandler::LogicHandler(sol::state* lua, sol::table & parent) : m_handler{ lua } +LogicHandler::LogicHandler(sol::state* lua, sol::table& parent) : _handler{ lua } { - m_handler.GetState()->set_function("print", &LogicHandler::LogPrint, this); + _handler.GetState()->set_function("print", &LogicHandler::LogPrint, this); - sol::table tableLogic{ m_handler.GetState()->lua_state(), sol::create }; + auto tableLogic = sol::table(_handler.GetState()->lua_state(), sol::create); parent.set(ScriptReserved_Logic, tableLogic); @@ -208,24 +208,24 @@ LogicHandler::LogicHandler(sol::state* lua, sol::table & parent) : m_handler{ lu tableLogic.set_function(ScriptReserved_EnableEvent, &LogicHandler::EnableEvent, this); tableLogic.set_function(ScriptReserved_DisableEvent, &LogicHandler::DisableEvent, this); - m_handler.MakeReadOnlyTable(tableLogic, ScriptReserved_EndReason, LEVEL_END_REASONS); - m_handler.MakeReadOnlyTable(tableLogic, ScriptReserved_CallbackPoint, CALLBACK_POINTS); - m_handler.MakeReadOnlyTable(tableLogic, ScriptReserved_EventType, EVENT_TYPES); + _handler.MakeReadOnlyTable(tableLogic, ScriptReserved_EndReason, LEVEL_END_REASONS); + _handler.MakeReadOnlyTable(tableLogic, ScriptReserved_CallbackPoint, CALLBACK_POINTS); + _handler.MakeReadOnlyTable(tableLogic, ScriptReserved_EventType, EVENT_TYPES); - m_callbacks.insert(std::make_pair(CallbackPoint::PreStart, &m_callbacksPreStart)); - m_callbacks.insert(std::make_pair(CallbackPoint::PostStart, &m_callbacksPostStart)); - m_callbacks.insert(std::make_pair(CallbackPoint::PreLoad, &m_callbacksPreLoad)); - m_callbacks.insert(std::make_pair(CallbackPoint::PostLoad, &m_callbacksPostLoad)); - m_callbacks.insert(std::make_pair(CallbackPoint::PreLoop, &m_callbacksPreLoop)); - m_callbacks.insert(std::make_pair(CallbackPoint::PostLoop, &m_callbacksPostLoop)); - m_callbacks.insert(std::make_pair(CallbackPoint::PreSave, &m_callbacksPreSave)); - m_callbacks.insert(std::make_pair(CallbackPoint::PostSave, &m_callbacksPostSave)); - m_callbacks.insert(std::make_pair(CallbackPoint::PreEnd, &m_callbacksPreEnd)); - m_callbacks.insert(std::make_pair(CallbackPoint::PostEnd, &m_callbacksPostEnd)); - m_callbacks.insert(std::make_pair(CallbackPoint::PreUseItem, &m_callbacksPreUseItem)); - m_callbacks.insert(std::make_pair(CallbackPoint::PostUseItem, &m_callbacksPostUseItem)); - m_callbacks.insert(std::make_pair(CallbackPoint::PreFreeze, &m_callbacksPreFreeze)); - m_callbacks.insert(std::make_pair(CallbackPoint::PostFreeze, &m_callbacksPostFreeze)); + _callbacks.insert(std::make_pair(CallbackPoint::PreStart, &_callbacksPreStart)); + _callbacks.insert(std::make_pair(CallbackPoint::PostStart, &_callbacksPostStart)); + _callbacks.insert(std::make_pair(CallbackPoint::PreLoad, &_callbacksPreLoad)); + _callbacks.insert(std::make_pair(CallbackPoint::PostLoad, &_callbacksPostLoad)); + _callbacks.insert(std::make_pair(CallbackPoint::PreLoop, &_callbacksPreLoop)); + _callbacks.insert(std::make_pair(CallbackPoint::PostLoop, &_callbacksPostLoop)); + _callbacks.insert(std::make_pair(CallbackPoint::PreSave, &_callbacksPreSave)); + _callbacks.insert(std::make_pair(CallbackPoint::PostSave, &_callbacksPostSave)); + _callbacks.insert(std::make_pair(CallbackPoint::PreEnd, &_callbacksPreEnd)); + _callbacks.insert(std::make_pair(CallbackPoint::PostEnd, &_callbacksPostEnd)); + _callbacks.insert(std::make_pair(CallbackPoint::PreUseItem, &_callbacksPreUseItem)); + _callbacks.insert(std::make_pair(CallbackPoint::PostUseItem, &_callbacksPostUseItem)); + _callbacks.insert(std::make_pair(CallbackPoint::PreFreeze, &_callbacksPreFreeze)); + _callbacks.insert(std::make_pair(CallbackPoint::PostFreeze, &_callbacksPostFreeze)); LevelFunc::Register(tableLogic); @@ -234,10 +234,10 @@ LogicHandler::LogicHandler(sol::state* lua, sol::table & parent) : m_handler{ lu void LogicHandler::ResetGameTables() { - auto state = m_handler.GetState(); + auto state = _handler.GetState(); MakeSpecialTable(state, ScriptReserved_GameVars, &GetVariable, &SetVariable); - (*state)[ScriptReserved_GameVars][ScriptReserved_Engine] = sol::table{ *state, sol::create }; + (*state)[ScriptReserved_GameVars][ScriptReserved_Engine] = sol::table(*state, sol::create); } /*** Register a function as a callback. @@ -286,9 +286,8 @@ Any returned value will be discarded. */ void LogicHandler::AddCallback(CallbackPoint point, const LevelFunc& levelFunc) { - auto it = m_callbacks.find(point); - - if (it == m_callbacks.end()) + auto it = _callbacks.find(point); + if (it == _callbacks.end()) { TENLog("Error: callback point not found. Attempted to access missing value.", LogLevel::Error, LogConfig::All, false); return; @@ -315,8 +314,8 @@ Will have no effect if the function was not registered as a callback */ void LogicHandler::RemoveCallback(CallbackPoint point, const LevelFunc& levelFunc) { - auto it = m_callbacks.find(point); - if (it == m_callbacks.end()) + auto it = _callbacks.find(point); + if (it == _callbacks.end()) { TENLog("Error: callback point not found. Attempted to access missing value.", LogLevel::Error, LogConfig::All, false); return; @@ -374,7 +373,7 @@ void LogicHandler::DisableEvent(const std::string& name, EventType type) void LogicHandler::ResetLevelTables() { - auto state = m_handler.GetState(); + auto state = _handler.GetState(); MakeSpecialTable(state, ScriptReserved_LevelVars, &GetVariable, &SetVariable); (*state)[ScriptReserved_LevelVars][ScriptReserved_Engine] = sol::table{ *state, sol::create }; @@ -382,15 +381,15 @@ void LogicHandler::ResetLevelTables() sol::object LogicHandler::GetLevelFuncsMember(sol::table tab, const std::string& name) { - std::string partName = tab.raw_get(strKey); - auto& map = m_levelFuncs_tablesOfNames[partName]; + auto partName = tab.raw_get(strKey); + auto& map = _levelFuncs_tablesOfNames[partName]; auto fullNameIt = map.find(name); if (fullNameIt != std::cend(map)) { std::string_view key = fullNameIt->second; - if (m_levelFuncs_levelFuncObjects[key].valid()) - return m_levelFuncs_levelFuncObjects[key]; + if (_levelFuncs_levelFuncObjects[key].valid()) + return _levelFuncs_levelFuncObjects[key]; } return sol::nil; @@ -400,7 +399,7 @@ bool LogicHandler::SetLevelFuncsMember(sol::table tab, const std::string& name, { if (sol::type::lua_nil == value.get_type()) { - std::string error{ "Tried to set " + std::string{ScriptReserved_LevelFuncs} + " member " }; + auto error = std::string("Tried to set " + std::string{ScriptReserved_LevelFuncs} + " member "); error += name + " to nil; this not permitted at this time."; return ScriptAssert(false, error); } @@ -409,27 +408,27 @@ bool LogicHandler::SetLevelFuncsMember(sol::table tab, const std::string& name, // Add name to table of names. auto partName = tab.raw_get(strKey); auto fullName = partName + "." + name; - auto& parentNameTab = m_levelFuncs_tablesOfNames[partName]; + auto& parentNameTab = _levelFuncs_tablesOfNames[partName]; parentNameTab.insert_or_assign(name, fullName); // Create LevelFunc userdata and add that too. LevelFunc levelFuncObject; levelFuncObject.m_funcName = fullName; levelFuncObject.m_handler = this; - m_levelFuncs_levelFuncObjects[fullName] = levelFuncObject; + _levelFuncs_levelFuncObjects[fullName] = levelFuncObject; // Add function itself. - m_levelFuncs_luaFunctions[fullName] = value; + _levelFuncs_luaFunctions[fullName] = value; } else if (sol::type::table == value.get_type()) { // Create and add new name map. - std::unordered_map newNameMap; + auto newNameMap = std::unordered_map{}; auto fullName = tab.raw_get(strKey) + "." + name; - m_levelFuncs_tablesOfNames.insert_or_assign(fullName, newNameMap); + _levelFuncs_tablesOfNames.insert_or_assign(fullName, newNameMap); // Create new table to put in the LevelFuncs hierarchy. - auto newLevelFuncsTab = MakeSpecialTable(m_handler.GetState(), name, &LogicHandler::GetLevelFuncsMember, &LogicHandler::SetLevelFuncsMember, this); + auto newLevelFuncsTab = MakeSpecialTable(_handler.GetState(), name, &LogicHandler::GetLevelFuncsMember, &LogicHandler::SetLevelFuncsMember, this); newLevelFuncsTab.raw_set(strKey, fullName); tab.raw_set(name, newLevelFuncsTab); @@ -440,7 +439,7 @@ bool LogicHandler::SetLevelFuncsMember(sol::table tab, const std::string& name, } else { - std::string error{ "Failed to add " }; + auto error = std::string("Failed to add "); error += name + " to " + ScriptReserved_LevelFuncs + " or one of its tables; it must be a function or a table of functions."; return ScriptAssert(false, error); } @@ -450,10 +449,10 @@ bool LogicHandler::SetLevelFuncsMember(sol::table tab, const std::string& name, void LogicHandler::LogPrint(sol::variadic_args args) { - std::string str; + auto str = std::string(); for (const sol::object& o : args) { - auto strPart = (*m_handler.GetState())["tostring"](o).get(); + auto strPart = (*_handler.GetState())["tostring"](o).get(); str += strPart; str += "\t"; } @@ -465,10 +464,10 @@ void LogicHandler::ResetScripts(bool clearGameVars) { FreeLevelScripts(); - for (auto& [first, second] : m_callbacks) + for (auto& [first, second] : _callbacks) second->clear(); - auto currentPackage = m_handler.GetState()->get("package"); + auto currentPackage = _handler.GetState()->get("package"); auto currentLoaded = currentPackage.get("loaded"); for (auto& [first, second] : currentLoaded) @@ -477,35 +476,35 @@ void LogicHandler::ResetScripts(bool clearGameVars) if (clearGameVars) ResetGameTables(); - m_handler.ResetGlobals(); + _handler.ResetGlobals(); - m_shortenedCalls = false; + _shortenedCalls = false; - m_handler.GetState()->collect_garbage(); + _handler.GetState()->collect_garbage(); } void LogicHandler::FreeLevelScripts() { - m_levelFuncs = MakeSpecialTable(m_handler.GetState(), ScriptReserved_LevelFuncs, &LogicHandler::GetLevelFuncsMember, &LogicHandler::SetLevelFuncsMember, this); - m_levelFuncs.raw_set(strKey, ScriptReserved_LevelFuncs); + _levelFuncs = MakeSpecialTable(_handler.GetState(), ScriptReserved_LevelFuncs, &LogicHandler::GetLevelFuncsMember, &LogicHandler::SetLevelFuncsMember, this); + _levelFuncs.raw_set(strKey, ScriptReserved_LevelFuncs); - m_levelFuncs[ScriptReserved_Engine] = sol::table{ *m_handler.GetState(), sol::create }; + _levelFuncs[ScriptReserved_Engine] = sol::table(*_handler.GetState(), sol::create); - m_levelFuncs_tablesOfNames.clear(); - m_levelFuncs_luaFunctions.clear(); - m_levelFuncs_levelFuncObjects = sol::table{ *m_handler.GetState(), sol::create }; + _levelFuncs_tablesOfNames.clear(); + _levelFuncs_luaFunctions.clear(); + _levelFuncs_levelFuncObjects = sol::table(*_handler.GetState(), sol::create); - m_levelFuncs_tablesOfNames.emplace(std::make_pair(ScriptReserved_LevelFuncs, std::unordered_map{})); + _levelFuncs_tablesOfNames.emplace(std::make_pair(ScriptReserved_LevelFuncs, std::unordered_map{})); ResetLevelTables(); - m_onStart = sol::nil; - m_onLoad = sol::nil; - m_onLoop = sol::nil; - m_onSave = sol::nil; - m_onEnd = sol::nil; - m_onUseItem = sol::nil; - m_onFreeze = sol::nil; - m_handler.GetState()->collect_garbage(); + _onStart = sol::nil; + _onLoad = sol::nil; + _onLoop = sol::nil; + _onSave = sol::nil; + _onEnd = sol::nil; + _onUseItem = sol::nil; + _onFreeze = sol::nil; + _handler.GetState()->collect_garbage(); } // Used when loading. @@ -516,13 +515,13 @@ void LogicHandler::SetVariables(const std::vector& vars, bool onlyLeve ResetLevelTables(); - std::unordered_map solTables; + auto solTables = std::unordered_map{}; for(int i = 0; i < vars.size(); ++i) { if (std::holds_alternative(vars[i])) { - solTables.try_emplace(i, *m_handler.GetState(), sol::create); + solTables.try_emplace(i, *_handler.GetState(), sol::create); auto indexTab = std::get(vars[i]); for (auto& [first, second] : indexTab) { @@ -530,7 +529,7 @@ void LogicHandler::SetVariables(const std::vector& vars, bool onlyLeve // create it if need be if (std::holds_alternative(vars[second])) { - solTables.try_emplace(second, *m_handler.GetState(), sol::create); + solTables.try_emplace(second, *_handler.GetState(), sol::create); solTables[i][vars[first]] = solTables[second]; } else if (std::holds_alternative(vars[second])) @@ -594,14 +593,14 @@ void LogicHandler::SetVariables(const std::vector& vars, bool onlyLeve sol::table levelVars = rootTable[ScriptReserved_LevelVars]; for (auto& [first, second] : levelVars) - (*m_handler.GetState())[ScriptReserved_LevelVars][first] = second; + (*_handler.GetState())[ScriptReserved_LevelVars][first] = second; if (onlyLevelVars) return; sol::table gameVars = rootTable[ScriptReserved_GameVars]; for (auto& [first, second] : gameVars) - (*m_handler.GetState())[ScriptReserved_GameVars][first] = second; + (*_handler.GetState())[ScriptReserved_GameVars][first] = second; } template @@ -623,10 +622,10 @@ int Handle(TypeFrom& var, MapType& varsMap, size_t& numVars, std::vector(key)) { path += "[" + std::to_string(std::get(key)) + "]"; @@ -635,9 +634,13 @@ std::string LogicHandler::GetRequestedPath() const { auto part = std::get(key); if (i > 0) + { path += "." + part; + } else + { path += part; + } } } @@ -647,15 +650,15 @@ std::string LogicHandler::GetRequestedPath() const // Used when saving. void LogicHandler::GetVariables(std::vector& vars) { - sol::table tab{ *m_handler.GetState(), sol::create }; - tab[ScriptReserved_LevelVars] = (*m_handler.GetState())[ScriptReserved_LevelVars]; - tab[ScriptReserved_GameVars] = (*m_handler.GetState())[ScriptReserved_GameVars]; + auto tab = sol::table(*_handler.GetState(), sol::create); + tab[ScriptReserved_LevelVars] = (*_handler.GetState())[ScriptReserved_LevelVars]; + tab[ScriptReserved_GameVars] = (*_handler.GetState())[ScriptReserved_GameVars]; - std::unordered_map varsMap; - std::unordered_map numMap; - std::unordered_map boolMap; + auto varsMap = std::unordered_map{}; + auto numMap = std::unordered_map{}; + auto boolMap = std::unordered_map{}; - size_t numVars = 0; + size_t varCount = 0; // The following functions will all try to put their values in a map. If it succeeds // then the value was not already in the map, so we can put it into the var vector. @@ -667,12 +670,12 @@ void LogicHandler::GetVariables(std::vector& vars) auto handleNum = [&](auto num, auto map) { - auto [first, second] = map.insert(std::make_pair(num, (int)numVars)); + auto [first, second] = map.insert(std::make_pair(num, (int)varCount)); if (second) { vars.push_back(num); - ++numVars; + ++varCount; } return first->second; @@ -681,12 +684,12 @@ void LogicHandler::GetVariables(std::vector& vars) auto handleStr = [&](const sol::object& obj) { auto str = obj.as(); - auto [first, second] = varsMap.insert(std::make_pair(str.data(), (int)numVars)); + auto [first, second] = varsMap.insert(std::make_pair(str.data(), (int)varCount)); if (second) { vars.push_back(std::string{ str.data() }); - ++numVars; + ++varCount; } return first->second; @@ -694,12 +697,12 @@ void LogicHandler::GetVariables(std::vector& vars) auto handleFuncName = [&](const LevelFunc& fnh) { - auto [first, second] = varsMap.insert(std::make_pair(&fnh, (int)numVars)); + auto [first, second] = varsMap.insert(std::make_pair(&fnh, (int)varCount)); if (second) { vars.push_back(FuncName{ std::string{ fnh.m_funcName } }); - ++numVars; + ++varCount; } return first->second; @@ -707,11 +710,11 @@ void LogicHandler::GetVariables(std::vector& vars) std::function populate = [&](const sol::table& obj) { - auto [first, second] = varsMap.insert(std::make_pair(obj.pointer(), (int)numVars)); + auto [first, second] = varsMap.insert(std::make_pair(obj.pointer(), (int)varCount)); if(second) { - ++numVars; + ++varCount; auto id = first->second; vars.push_back(IndexTable{}); @@ -729,7 +732,7 @@ void LogicHandler::GetVariables(std::vector& vars) { keyIndex = handleStr(first); key = std::string{ first.as().data() }; - m_savedVarPath.push_back(key); + _savedVarPath.push_back(key); } break; @@ -744,7 +747,7 @@ void LogicHandler::GetVariables(std::vector& vars) { keyIndex = handleNum(data, numMap); key = static_cast(data); - m_savedVarPath.push_back(key); + _savedVarPath.push_back(key); } } break; @@ -784,23 +787,23 @@ void LogicHandler::GetVariables(std::vector& vars) { if (second.is()) { - putInVars(Handle(second.as(), varsMap, numVars, vars)); + putInVars(Handle(second.as(), varsMap, varCount, vars)); } else if (second.is()) { - putInVars(Handle(second.as(), varsMap, numVars, vars)); + putInVars(Handle(second.as(), varsMap, varCount, vars)); } else if (second.is()) { - putInVars(Handle(second.as(), varsMap, numVars, vars)); + putInVars(Handle(second.as(), varsMap, varCount, vars)); } else if (second.is