diff --git a/Source/options.cpp b/Source/options.cpp index 7192df1eb..7aaa6823b 100644 --- a/Source/options.cpp +++ b/Source/options.cpp @@ -24,6 +24,7 @@ #include "engine/sound_defs.hpp" #include "game_mode.hpp" #include "hwcursor.hpp" +#include "lua/lua.hpp" #include "options.h" #include "platform/locale.hpp" #include "qol/monhealthbar.h" @@ -1836,6 +1837,13 @@ std::vector &ModOptions::GetModEntries() return newModEntries; } +ModOptions::ModEntry::ModEntry(std::string_view name) + : name(name) + , enabled(this->name, OptionEntryFlags::None, this->name.c_str(), "", false) +{ + enabled.SetValueChangedCallback(LuaReloadActiveMods); +} + namespace { #ifdef DEVILUTIONX_RESAMPLER_SPEEX constexpr char ResamplerSpeex[] = "Speex"; diff --git a/Source/options.h b/Source/options.h index d63ecfecb..422e30379 100644 --- a/Source/options.h +++ b/Source/options.h @@ -811,12 +811,7 @@ struct ModOptions : OptionCategoryBase { private: struct ModEntry { - ModEntry(std::string_view name) - : name(name) - , enabled(this->name, OptionEntryFlags::None, this->name.c_str(), "", false) - { - } - + ModEntry(std::string_view name); std::string name; OptionEntryBoolean enabled; };