1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-17 03:53:07 +01:00

Guard against invalid entry indices in ride_entry_is_invented()

This commit is contained in:
Gymnasiast
2022-02-12 00:31:43 +01:00
parent cb83d8ff05
commit 5a0be004de
2 changed files with 11 additions and 5 deletions

View File

@@ -549,8 +549,11 @@ bool ride_type_is_invented(uint32_t rideType)
return RideTypeIsValid(rideType) ? _researchedRideTypes[rideType] : false;
}
bool ride_entry_is_invented(int32_t rideEntryIndex)
bool ride_entry_is_invented(ObjectEntryIndex rideEntryIndex)
{
if (rideEntryIndex >= std::size(_researchedRideEntries))
return false;
return _researchedRideEntries[rideEntryIndex];
}
@@ -562,9 +565,12 @@ void ride_type_set_invented(uint32_t rideType)
}
}
void ride_entry_set_invented(int32_t rideEntryIndex)
void ride_entry_set_invented(ObjectEntryIndex rideEntryIndex)
{
_researchedRideEntries[rideEntryIndex] = true;
if (rideEntryIndex >= std::size(_researchedRideEntries))
log_error("Try setting ride entry %u as invented", rideEntryIndex);
else
_researchedRideEntries[rideEntryIndex] = true;
}
bool scenery_is_invented(const ScenerySelection& sceneryItem)

View File

@@ -138,11 +138,11 @@ void research_insert_ride_entry(ObjectEntryIndex entryIndex, bool researched);
bool research_insert_scenery_group_entry(ObjectEntryIndex entryIndex, bool researched);
void ride_type_set_invented(uint32_t rideType);
void ride_entry_set_invented(int32_t rideEntryIndex);
void ride_entry_set_invented(ObjectEntryIndex rideEntryIndex);
void scenery_set_invented(const ScenerySelection& sceneryItem);
void scenery_set_not_invented(const ScenerySelection& sceneryItem);
bool ride_type_is_invented(uint32_t rideType);
bool ride_entry_is_invented(int32_t rideEntryIndex);
bool ride_entry_is_invented(ObjectEntryIndex rideEntryIndex);
bool scenery_group_is_invented(int32_t sgIndex);
void scenery_group_set_invented(int32_t sgIndex);
bool scenery_is_invented(const ScenerySelection& sceneryItem);