diff --git a/src/openrct2-ui/UiContext.Linux.cpp b/src/openrct2-ui/UiContext.Linux.cpp index 4e032c452f..07a79ec9cd 100644 --- a/src/openrct2-ui/UiContext.Linux.cpp +++ b/src/openrct2-ui/UiContext.Linux.cpp @@ -392,9 +392,10 @@ namespace OpenRCT2::Ui { filtersb << ' '; } - else if (isalpha(c)) + else if (isalpha(static_cast(c))) { - filtersb << '[' << static_cast(tolower(c)) << static_cast(toupper(c)) << ']'; + auto uc = static_cast(c); + filtersb << '[' << static_cast(tolower(uc)) << static_cast(toupper(uc)) << ']'; } else { diff --git a/src/openrct2-ui/windows/EditorObjectSelection.cpp b/src/openrct2-ui/windows/EditorObjectSelection.cpp index c8c6815ba5..f1c025fc46 100644 --- a/src/openrct2-ui/windows/EditorObjectSelection.cpp +++ b/src/openrct2-ui/windows/EditorObjectSelection.cpp @@ -1497,13 +1497,13 @@ static bool filter_string(const ObjectRepositoryItem* item) // Make use of lowercase characters only for (int32_t i = 0; name_lower[i] != '\0'; i++) - name_lower[i] = static_cast(tolower(name_lower[i])); + name_lower[i] = static_cast(tolower(static_cast(name_lower[i]))); for (int32_t i = 0; type_lower[i] != '\0'; i++) - type_lower[i] = static_cast(tolower(type_lower[i])); + type_lower[i] = static_cast(tolower(static_cast(type_lower[i]))); for (int32_t i = 0; object_path[i] != '\0'; i++) - object_path[i] = static_cast(tolower(object_path[i])); + object_path[i] = static_cast(tolower(static_cast(object_path[i]))); for (int32_t i = 0; filter_lower[i] != '\0'; i++) - filter_lower[i] = static_cast(tolower(filter_lower[i])); + filter_lower[i] = static_cast(tolower(static_cast(filter_lower[i]))); // Check if the searched string exists in the name, ride type, or filename bool inName = strstr(name_lower, filter_lower) != nullptr; diff --git a/src/openrct2-ui/windows/TrackList.cpp b/src/openrct2-ui/windows/TrackList.cpp index e52238097b..100bdd7805 100644 --- a/src/openrct2-ui/windows/TrackList.cpp +++ b/src/openrct2-ui/windows/TrackList.cpp @@ -93,7 +93,7 @@ private: utf8 filterStringLower[sizeof(_filterString)]; String::Set(filterStringLower, sizeof(filterStringLower), _filterString); for (int32_t i = 0; filterStringLower[i] != '\0'; i++) - filterStringLower[i] = static_cast(tolower(filterStringLower[i])); + filterStringLower[i] = static_cast(tolower(static_cast(filterStringLower[i]))); // Fill the set with indices for tracks that match the filter for (uint16_t i = 0; i < _trackDesigns.size(); i++) @@ -101,7 +101,7 @@ private: utf8 trackNameLower[USER_STRING_MAX_LENGTH]; String::Set(trackNameLower, sizeof(trackNameLower), _trackDesigns[i].name); for (int32_t j = 0; trackNameLower[j] != '\0'; j++) - trackNameLower[j] = static_cast(tolower(trackNameLower[j])); + trackNameLower[j] = static_cast(tolower(static_cast(trackNameLower[j]))); if (strstr(trackNameLower, filterStringLower) != nullptr) { diff --git a/src/openrct2/core/String.cpp b/src/openrct2/core/String.cpp index c1d3ee4c96..c3c9ab78e1 100644 --- a/src/openrct2/core/String.cpp +++ b/src/openrct2/core/String.cpp @@ -178,7 +178,7 @@ namespace String { for (size_t i = 0; i < a.size(); i++) { - if (tolower(a[i]) != tolower(b[i])) + if (tolower(static_cast(a[i])) != tolower(static_cast(b[i]))) { return false; } @@ -212,7 +212,7 @@ namespace String return false; } } - else if (tolower(ai) != tolower(bi)) + else if (tolower(static_cast(ai)) != tolower(static_cast(bi))) { return false; } @@ -822,7 +822,7 @@ namespace String for (auto c : value) { // Keep alphanumeric and other accepted characters intact - if (std::isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~') + if (std::isalnum(static_cast(c)) || c == '-' || c == '_' || c == '.' || c == '~') { escaped << c; } diff --git a/src/openrct2/scripting/bindings/network/ScPlayerGroup.cpp b/src/openrct2/scripting/bindings/network/ScPlayerGroup.cpp index 697712f5ba..455388045e 100644 --- a/src/openrct2/scripting/bindings/network/ScPlayerGroup.cpp +++ b/src/openrct2/scripting/bindings/network/ScPlayerGroup.cpp @@ -56,7 +56,7 @@ namespace OpenRCT2::Scripting auto result = s.substr(sizeof("PERMISSION_") - 1); for (auto& c : result) { - c = std::tolower(c); + c = std::tolower(static_cast(c)); } return result; } diff --git a/src/openrct2/util/Util.cpp b/src/openrct2/util/Util.cpp index e15fde7beb..5c16ef5676 100644 --- a/src/openrct2/util/Util.cpp +++ b/src/openrct2/util/Util.cpp @@ -332,7 +332,7 @@ int32_t strcicmp(char const* a, char const* b) { for (;; a++, b++) { - int32_t d = tolower(*a) - tolower(*b); + int32_t d = tolower(static_cast(*a)) - tolower(static_cast(*b)); if (d != 0 || !*a) return d; } @@ -353,7 +353,7 @@ int32_t strlogicalcmp(const char* s1, const char* s2) return *s1 != '\0'; if (*s1 == '\0') return -1; - if (!(isdigit(*s1) && isdigit(*s2))) + if (!(isdigit(static_cast(*s1)) && isdigit(static_cast(*s2)))) { if (toupper(*s1) != toupper(*s2)) return toupper(*s1) - toupper(*s2); diff --git a/test/tests/ReplayTests.cpp b/test/tests/ReplayTests.cpp index 83b8c8f4b5..fee8e6e56b 100644 --- a/test/tests/ReplayTests.cpp +++ b/test/tests/ReplayTests.cpp @@ -39,7 +39,7 @@ static std::string sanitizeTestName(const std::string& name) std::string res; for (char c : nameOnly) { - if (isalnum(c)) + if (isalnum(static_cast(c))) res += c; } return res;