diff --git a/src/config/legacy/ConfigManager.cpp b/src/config/legacy/ConfigManager.cpp index 566cabb72..04d762607 100644 --- a/src/config/legacy/ConfigManager.cpp +++ b/src/config/legacy/ConfigManager.cpp @@ -1118,20 +1118,36 @@ bool CConfigManager::deviceConfigExplicitlySet(const std::string& dev, const std } int CConfigManager::getDeviceInt(const std::string& dev, const std::string& v, const std::string& fallback) { - return std::any_cast(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + return std::any_cast(val->getValue()); } float CConfigManager::getDeviceFloat(const std::string& dev, const std::string& v, const std::string& fallback) { - return std::any_cast(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + return std::any_cast(val->getValue()); } Vector2D CConfigManager::getDeviceVec(const std::string& dev, const std::string& v, const std::string& fallback) { - auto vec = std::any_cast(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + auto vec = std::any_cast(val->getValue()); return {vec.x, vec.y}; } std::string CConfigManager::getDeviceString(const std::string& dev, const std::string& v, const std::string& fallback) { - auto VAL = std::string{std::any_cast(getConfigValueSafeDevice(dev, v, fallback)->getValue())}; + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return ""; + + auto VAL = std::string{std::any_cast(val->getValue())}; if (VAL == STRVAL_EMPTY) return "";