From 63e9275b601b4db2dec6d0bfb9e2c61588cb68b7 Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 30 Mar 2018 16:58:12 +0100 Subject: [PATCH] Protect against unknown ride types --- src/openrct2-ui/windows/EditorObjectSelection.cpp | 3 ++- src/openrct2/core/String.cpp | 6 +++--- src/openrct2/object/RideObject.cpp | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/openrct2-ui/windows/EditorObjectSelection.cpp b/src/openrct2-ui/windows/EditorObjectSelection.cpp index 234b7059a5..314e12a24a 100644 --- a/src/openrct2-ui/windows/EditorObjectSelection.cpp +++ b/src/openrct2-ui/windows/EditorObjectSelection.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -304,7 +305,7 @@ static bool visible_list_sort_ride_type(const list_item &a, const list_item &b) { auto rideTypeA = language_get_string(get_ride_type_string_id(a.repositoryItem)); auto rideTypeB = language_get_string(get_ride_type_string_id(b.repositoryItem)); - sint32 result = strcmp(rideTypeA, rideTypeB); + sint32 result = String::Compare(rideTypeA, rideTypeB); return result != 0 ? result < 0 : visible_list_sort_ride_name(a, b); diff --git a/src/openrct2/core/String.cpp b/src/openrct2/core/String.cpp index ff347f67c9..d9742c4436 100644 --- a/src/openrct2/core/String.cpp +++ b/src/openrct2/core/String.cpp @@ -80,9 +80,9 @@ namespace String sint32 Compare(const utf8 * a, const utf8 * b, bool ignoreCase) { - if (a == b) return true; - if (a == nullptr || b == nullptr) return false; - + if (a == b) return 0; + if (a == nullptr) a = ""; + if (b == nullptr) b = ""; if (ignoreCase) { return _stricmp(a, b); diff --git a/src/openrct2/object/RideObject.cpp b/src/openrct2/object/RideObject.cpp index 4184880697..da7dde5826 100644 --- a/src/openrct2/object/RideObject.cpp +++ b/src/openrct2/object/RideObject.cpp @@ -488,7 +488,7 @@ void RideObject::ReadJson(IReadObjectContext * context, const json_t * root) rideType = ParseRideType(rideTypes[i]); if (rideType == RIDE_TYPE_NULL) { - context->LogWarning(OBJECT_ERROR_INVALID_PROPERTY, "Unknown ride type"); + context->LogError(OBJECT_ERROR_INVALID_PROPERTY, "Unknown ride type"); } }