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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user