diff --git a/apps/openmw/mwscript/miscextensions.cpp b/apps/openmw/mwscript/miscextensions.cpp index e3664c7f6d..5b819a0f6a 100644 --- a/apps/openmw/mwscript/miscextensions.cpp +++ b/apps/openmw/mwscript/miscextensions.cpp @@ -576,10 +576,11 @@ namespace MWScript return; } - long key = 0; + long key; - if (const auto k = ::Misc::StringUtils::toNumeric(effect.data()); k.value() >= 0 && k.value() <= 32767) - key = k.value(); + if (const auto k = ::Misc::StringUtils::toNumeric(effect.data()); + k.has_value() && *k >= 0 && *k <= 32767) + key = *k; else key = ESM::MagicEffect::effectStringToId({ effect }); diff --git a/components/misc/strings/conversion.hpp b/components/misc/strings/conversion.hpp index 4b0edacb8b..1dcd15910c 100644 --- a/components/misc/strings/conversion.hpp +++ b/components/misc/strings/conversion.hpp @@ -63,9 +63,9 @@ namespace Misc::StringUtils template inline T toNumeric(std::string_view s, T defaultValue) { - if (auto conversion = toNumeric(s) ; conversion) + if (auto numeric = toNumeric(s)) { - return conversion.value(); + return *numeric; } return defaultValue;