diff --git a/src/openrct2/actions/RideSetStatus.hpp b/src/openrct2/actions/RideSetStatus.hpp index 15b5fa716a..70eadaca5c 100644 --- a/src/openrct2/actions/RideSetStatus.hpp +++ b/src/openrct2/actions/RideSetStatus.hpp @@ -78,6 +78,15 @@ public: return res; } + if (_status >= RIDE_STATUS_COUNT) + { + log_warning("Invalid ride status %u for ride %u", uint32_t(_status), uint32_t(_rideIndex)); + res->Error = GA_ERROR::INVALID_PARAMETERS; + res->ErrorTitle = STR_RIDE_DESCRIPTION_UNKNOWN; + res->ErrorMessage = STR_NONE; + return res; + } + res->ErrorTitle = _StatusErrorTitles[_status]; ride->FormatNameTo(res->ErrorMessageArgs.data() + 6); if (_status != ride->status) diff --git a/src/openrct2/ride/Ride.h b/src/openrct2/ride/Ride.h index e8a4320d77..4ea175f957 100644 --- a/src/openrct2/ride/Ride.h +++ b/src/openrct2/ride/Ride.h @@ -630,6 +630,7 @@ enum RIDE_STATUS_OPEN, RIDE_STATUS_TESTING, RIDE_STATUS_SIMULATING, + RIDE_STATUS_COUNT, }; enum : uint8_t