From 736437aa6ef6aadef681b19428f5cc31117ae762 Mon Sep 17 00:00:00 2001 From: Michael Steenbeek Date: Wed, 16 Nov 2016 14:25:37 +0100 Subject: [PATCH] Allow 3 cars per train on the Rocket cars --- src/object/RideObject.cpp | 11 +++++++++++ src/object/RideObject.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/object/RideObject.cpp b/src/object/RideObject.cpp index 4d2aef5ff6..ad6b794d3b 100644 --- a/src/object/RideObject.cpp +++ b/src/object/RideObject.cpp @@ -16,6 +16,7 @@ #include "../core/IStream.hpp" #include "../core/Memory.hpp" +#include "../core/String.hpp" #include "../core/Util.hpp" #include "ObjectRepository.h" #include "RideObject.h" @@ -123,6 +124,8 @@ void RideObject::ReadLegacy(IReadObjectContext * context, IStream * stream) { context->LogError(OBJECT_ERROR_INVALID_PROPERTY, "Nausea multiplier too high."); } + + PerformRCT1CompatibilityFixes(); } void RideObject::Load() @@ -438,3 +441,11 @@ void RideObject::ReadLegacyVehicle(IReadObjectContext * context, IStream * strea vehicle->special_frames = stream->ReadValue(); stream->Seek(4, STREAM_SEEK_CURRENT); } + +void RideObject::PerformRCT1CompatibilityFixes() +{ + if (String::Equals(GetIdentifier(), "RCKC ")) { + // The rocket cars could take 3 cars per train in RCT1. Restore this. + _legacyType.max_cars_in_train = 3 + _legacyType.zero_cars; + } +} diff --git a/src/object/RideObject.h b/src/object/RideObject.h index a3994942fa..53c461cb6b 100644 --- a/src/object/RideObject.h +++ b/src/object/RideObject.h @@ -49,4 +49,5 @@ public: private: void ReadLegacyVehicle(IReadObjectContext * context, IStream * stream, rct_ride_entry_vehicle * vehicle); + void PerformRCT1CompatibilityFixes(); };