mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
Add null checks throughout
This commit is contained in:
@@ -101,7 +101,9 @@ struct ResearchItem
|
||||
{
|
||||
entryIndex = RCTEntryIndexToOpenRCT2EntryIndex(oldResearchItem.entryIndex);
|
||||
baseRideType = oldResearchItem.baseRideType;
|
||||
type = RCT2RideTypeToOpenRCT2RideType(oldResearchItem.type, get_ride_entry(entryIndex));
|
||||
auto* rideEntry = get_ride_entry(entryIndex);
|
||||
type = rideEntry != nullptr ? RCT2RideTypeToOpenRCT2RideType(oldResearchItem.type, rideEntry)
|
||||
: oldResearchItem.type;
|
||||
flags = oldResearchItem.flags;
|
||||
category = oldResearchItem.category;
|
||||
}
|
||||
|
||||
@@ -34,6 +34,11 @@ using namespace OpenRCT2;
|
||||
|
||||
static void RideObjectUpdateRideType(rct_ride_entry* rideEntry)
|
||||
{
|
||||
if (rideEntry == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto i = 0; i < MAX_RIDE_TYPES_PER_RIDE_ENTRY; i++)
|
||||
{
|
||||
auto oldRideType = rideEntry->ride_type[i];
|
||||
|
||||
@@ -512,7 +512,10 @@ public:
|
||||
if (RCT2RideTypeNeedsConversion(src->type))
|
||||
{
|
||||
auto* rideEntry = get_ride_entry(src->subtype);
|
||||
rideType = RCT2RideTypeToOpenRCT2RideType(src->type, rideEntry);
|
||||
if (rideEntry != nullptr)
|
||||
{
|
||||
rideType = RCT2RideTypeToOpenRCT2RideType(src->type, rideEntry);
|
||||
}
|
||||
}
|
||||
dst->type = rideType;
|
||||
dst->subtype = src->subtype;
|
||||
|
||||
@@ -86,10 +86,16 @@ public:
|
||||
{
|
||||
std::scoped_lock<std::mutex> lock(_objectLookupMutex);
|
||||
auto* rawObject = object_repository_load_object(&td6->vehicle_object);
|
||||
const auto* rideEntry = static_cast<const rct_ride_entry*>(
|
||||
static_cast<RideObject*>(rawObject)->GetLegacyData());
|
||||
rideType = RCT2RideTypeToOpenRCT2RideType(td6->type, rideEntry);
|
||||
object_delete(rawObject);
|
||||
if (rawObject != nullptr)
|
||||
{
|
||||
const auto* rideEntry = static_cast<const rct_ride_entry*>(
|
||||
static_cast<RideObject*>(rawObject)->GetLegacyData());
|
||||
if (rideEntry != nullptr)
|
||||
{
|
||||
rideType = RCT2RideTypeToOpenRCT2RideType(td6->type, rideEntry);
|
||||
}
|
||||
object_delete(rawObject);
|
||||
}
|
||||
}
|
||||
|
||||
TrackRepositoryItem item;
|
||||
|
||||
Reference in New Issue
Block a user