1
0
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:
Ted John
2019-07-15 22:04:59 +01:00
parent ccb2eed939
commit 48f5515a55
2 changed files with 49 additions and 47 deletions

View File

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