diff --git a/src/Config/Papyrus.cpp b/src/Config/Papyrus.cpp index 5df918e..23ccb95 100644 --- a/src/Config/Papyrus.cpp +++ b/src/Config/Papyrus.cpp @@ -40,22 +40,24 @@ namespace QuickLoot::Config return; }; - MCMScript = Util::ScriptObject::FromForm(quest, "QuickLootIEMCM"); - if (!MCMScript.IsValid()) { - logger::info("Unable to locate MCM script on form"); - return; - }; + MCMQuest = quest; - logger::info("MCM pointer set successfully"); + logger::info("MCM quest pointer set successfully"); UserSettings::Update(); }; void Papyrus::UpdateVariables(RE::StaticFunctionTag*) { + auto MCMScript = Util::ScriptObject::FromForm(MCMQuest, "QuickLootIEMCM"); + if (!MCMScript.IsValid()) { + logger::error("Unable to locate MCM script on form"); + return; + } + PROFILE_SCOPE; -#define LoadSettingsVar(name, ...) LoadSetting(name, #name, __VA_ARGS__) +#define LoadSettingsVar(name, ...) LoadSetting(MCMScript, name, #name, __VA_ARGS__) // General > Behavior Settings LoadSettingsVar(QLIE_ShowInCombat, true); diff --git a/src/Config/Papyrus.h b/src/Config/Papyrus.h index b6a029e..72d5f5e 100644 --- a/src/Config/Papyrus.h +++ b/src/Config/Papyrus.h @@ -4,7 +4,7 @@ namespace QuickLoot::Config { - static Util::ScriptObject MCMScript{}; + static RE::TESQuest* MCMQuest{ nullptr }; inline bool QLIE_ShowInCombat; inline bool QLIE_ShowWhenEmpty; @@ -140,9 +140,9 @@ namespace QuickLoot::Config } template - static void LoadSetting(T& variable, const std::string& propertyName, const T& defaultValue) + static void LoadSetting(Util::ScriptObject& mcmscript, T& variable, const std::string& propertyName, const T& defaultValue) { - const auto* prop = MCMScript.GetProperty(propertyName); + const auto* prop = mcmscript.GetProperty(propertyName); if (!prop) { variable = defaultValue;