diff --git a/apps/openmw/mwlua/magicbindings.cpp b/apps/openmw/mwlua/magicbindings.cpp index d0b40f1b2b..ab097a8202 100644 --- a/apps/openmw/mwlua/magicbindings.cpp +++ b/apps/openmw/mwlua/magicbindings.cpp @@ -564,10 +564,9 @@ namespace MWLua key = MWMechanics::EffectKey(id, ESM::Skill::stringToSkillId(argStr.value())); } - std::optional param; if (auto* store = effects.getStore()) - if (store->get(key, param)) - return ActiveEffect{ key, param.value() }; + if (auto effect = store->get(key)) + return ActiveEffect{ key, effect.value() }; return sol::nullopt; }; } diff --git a/apps/openmw/mwmechanics/magiceffects.cpp b/apps/openmw/mwmechanics/magiceffects.cpp index 293d61c082..8034b2255a 100644 --- a/apps/openmw/mwmechanics/magiceffects.cpp +++ b/apps/openmw/mwmechanics/magiceffects.cpp @@ -158,21 +158,18 @@ namespace MWMechanics EffectParam MagicEffects::getOrDefault(const EffectKey& key) const { - std::optional param; - get(key, param); - return param.value_or(EffectParam()); + return get(key).value_or(EffectParam()); } - bool MagicEffects::get(const EffectKey& key, std::optional& param) const + std::optional MagicEffects::get(const EffectKey& key) const { Collection::const_iterator iter = mCollection.find(key); if (iter != mCollection.end()) { - param = iter->second; - return true; + return iter->second; } - return false; + return std::nullopt; } MagicEffects MagicEffects::diff(const MagicEffects& prev, const MagicEffects& now) diff --git a/apps/openmw/mwmechanics/magiceffects.hpp b/apps/openmw/mwmechanics/magiceffects.hpp index 40613c4ace..d63db74d3d 100644 --- a/apps/openmw/mwmechanics/magiceffects.hpp +++ b/apps/openmw/mwmechanics/magiceffects.hpp @@ -106,7 +106,7 @@ namespace MWMechanics void setModifiers(const MagicEffects& effects); EffectParam getOrDefault(const EffectKey& key) const; - bool get(const EffectKey& key, std::optional& param) const; + std::optional get(const EffectKey& key) const; ///< This function can safely be used for keys that are not present. static MagicEffects diff(const MagicEffects& prev, const MagicEffects& now); diff --git a/files/lua_api/openmw/core.lua b/files/lua_api/openmw/core.lua index 0a02e22196..47485c22c6 100644 --- a/files/lua_api/openmw/core.lua +++ b/files/lua_api/openmw/core.lua @@ -595,7 +595,6 @@ --- -- @type ActiveEffect --- @field #ActiveEffect effect @{#ActiveEffect} -- @field #any affectedSkill @{#SKILL} or nil -- @field #any affectedAttribute @{#ATTRIBUTE} or nil -- @field #string id Effect id string