diff --git a/src/openrct2-ui/windows/CustomCurrency.cpp b/src/openrct2-ui/windows/CustomCurrency.cpp index 46e65876ab..7b0babf421 100644 --- a/src/openrct2-ui/windows/CustomCurrency.cpp +++ b/src/openrct2-ui/windows/CustomCurrency.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -154,8 +155,9 @@ public: { if (text.empty()) return; + int32_t rate; - char* end; + switch (widgetIndex) { case WIDX_SYMBOL_TEXT: @@ -172,9 +174,10 @@ public: break; case WIDX_RATE: - rate = strtol(std::string(text).c_str(), &end, 10); - if (*end == '\0') + const auto res = String::Parse(text); + if (res.has_value()) { + rate = res.value(); CurrencyDescriptors[EnumValue(CurrencyType::Custom)].rate = rate; gConfigGeneral.custom_currency_rate = CurrencyDescriptors[EnumValue(CurrencyType::Custom)].rate; config_save_default();