mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-29 09:44:52 +01:00
Fix nested arrays and ride measurement
This commit is contained in:
@@ -548,6 +548,16 @@ namespace OpenRCT2
|
||||
|
||||
// Stats
|
||||
if (cs.GetMode() == OrcaStream::Mode::READING)
|
||||
{
|
||||
auto hasMeasurement = cs.Read<uint8_t>();
|
||||
if (hasMeasurement != 0)
|
||||
{
|
||||
ride.measurement = std::make_unique<RideMeasurement>();
|
||||
ride.measurement->ride = &ride;
|
||||
ReadWriteRideMeasurement(cs, *ride.measurement);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ride.measurement == nullptr)
|
||||
{
|
||||
@@ -559,18 +569,6 @@ namespace OpenRCT2
|
||||
ReadWriteRideMeasurement(cs, *ride.measurement);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
auto hasMeasurement = cs.Read<uint8_t>();
|
||||
if (hasMeasurement)
|
||||
{
|
||||
ride.measurement = std::make_unique<RideMeasurement>();
|
||||
ride.measurement->ride = &ride;
|
||||
ReadWriteRideMeasurement(cs, *ride.measurement);
|
||||
}
|
||||
}
|
||||
|
||||
cs.ReadWrite(ride.measurement);
|
||||
|
||||
cs.ReadWrite(ride.special_track_elements);
|
||||
cs.ReadWrite(ride.max_speed);
|
||||
@@ -673,12 +671,6 @@ namespace OpenRCT2
|
||||
|
||||
static void ReadWriteRideMeasurement(OrcaStream::ChunkStream& cs, RideMeasurement& measurement)
|
||||
{
|
||||
if (cs.GetMode() == OrcaStream::Mode::READING)
|
||||
{
|
||||
// Initialise measurement (mainly just for the fixed arrays)
|
||||
measurement = {};
|
||||
}
|
||||
|
||||
cs.ReadWrite(measurement.flags);
|
||||
cs.ReadWrite(measurement.last_use_tick);
|
||||
cs.ReadWrite(measurement.num_items);
|
||||
|
||||
Reference in New Issue
Block a user