1
0
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:
Gymnasiast
2020-07-17 00:32:47 +02:00
parent d703768d5d
commit 742ae947c7
4 changed files with 22 additions and 6 deletions

View File

@@ -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;
}

View File

@@ -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];

View File

@@ -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;

View File

@@ -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;