1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-18 12:33:17 +01:00

Merge pull request #14260 from IntelOrca/fix/14201-research-finish-assert

Fix #14201: Assert in research_finish_item for invalid ride type
This commit is contained in:
Michael Steenbeek
2021-03-12 23:32:23 +01:00
committed by GitHub

View File

@@ -200,11 +200,14 @@ void research_finish_item(ResearchItem* researchItem)
if (rideEntry != nullptr && base_ride_type != RIDE_TYPE_NULL)
{
if (!RideTypeIsValid(base_ride_type))
{
log_warning("Invalid ride type: %d", base_ride_type);
base_ride_type = ride_entry_get_first_non_null_ride_type(rideEntry);
}
rct_string_id availabilityString;
ride_type_set_invented(base_ride_type);
openrct2_assert(base_ride_type < RIDE_TYPE_COUNT, "Invalid base_ride_type = %d", base_ride_type);
ride_entry_set_invented(rideEntryIndex);
bool seenRideEntry[MAX_RIDE_OBJECTS]{};
@@ -528,8 +531,7 @@ bool research_insert_scenery_group_entry(ObjectEntryIndex entryIndex, bool resea
bool ride_type_is_invented(uint32_t rideType)
{
Guard::Assert(rideType < std::size(_researchedRideTypes), GUARD_LINE);
return _researchedRideTypes[rideType];
return RideTypeIsValid(rideType) ? _researchedRideTypes[rideType] : false;
}
bool ride_entry_is_invented(int32_t rideEntryIndex)
@@ -539,8 +541,10 @@ bool ride_entry_is_invented(int32_t rideEntryIndex)
void ride_type_set_invented(uint32_t rideType)
{
Guard::Assert(rideType < std::size(_researchedRideTypes), GUARD_LINE);
_researchedRideTypes[rideType] = true;
if (RideTypeIsValid(rideType))
{
_researchedRideTypes[rideType] = true;
}
}
void ride_entry_set_invented(int32_t rideEntryIndex)