From d239529a731dee7151e617327efc84aa64076c74 Mon Sep 17 00:00:00 2001 From: Bas Date: Thu, 3 Mar 2022 21:36:15 +0100 Subject: [PATCH] =?UTF-8?q?Fix=20=E2=80=9CDisable=20vehicle=20limits?= =?UTF-8?q?=E2=80=9D=20cheat=20giving=20all=20new=20rides=2032=20trains?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- distribution/changelog.txt | 1 + src/openrct2/actions/RideCreateAction.cpp | 19 +++++++++++++++++-- src/openrct2/network/NetworkBase.cpp | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/distribution/changelog.txt b/distribution/changelog.txt index 17f6b10a37..0b97520159 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -43,6 +43,7 @@ - Fix: [#16007] Scenario Editor “Entry Price” appears to the right of the value field. - Fix: [#16008] Tile Inspector can select elements from last tile without reselecting it. - Fix: [#16024] Go-Karts with more than 32 vehicles do not colour themselves correctly. +- Fix: [#16026] Newly created rides with “Disable vehicle limits” cheat always get 32 trains with 12 cars each. - Fix: [#16063] Object Selection preview for objects with glass is broken. - Fix: [#16075] Exporting track designs saves scenery in incorrect locations. - Fix: [#16087] The Looping Roller Coaster booster is now always drawn correctly. diff --git a/src/openrct2/actions/RideCreateAction.cpp b/src/openrct2/actions/RideCreateAction.cpp index fa1e14a814..b161424a87 100644 --- a/src/openrct2/actions/RideCreateAction.cpp +++ b/src/openrct2/actions/RideCreateAction.cpp @@ -154,10 +154,25 @@ GameActions::Result RideCreateAction::Execute() const ride->vehicle_change_timeout = 0; ride->num_stations = 0; ride->num_vehicles = 1; - ride->proposed_num_vehicles = 32; + if (gCheatsDisableTrainLengthLimit) + { + // Reduce amount of proposed trains to prevent 32 trains from always spawning when limits are disabled + if (rideEntry->cars_per_flat_ride == 0xFF) + { + ride->proposed_num_vehicles = 12; + } + else + { + ride->proposed_num_vehicles = rideEntry->cars_per_flat_ride; + } + } + else + { + ride->proposed_num_vehicles = 32; + } ride->max_trains = OpenRCT2::Limits::MaxTrainsPerRide; ride->num_cars_per_train = 1; - ride->proposed_num_cars_per_train = 12; + ride->proposed_num_cars_per_train = rideEntry->max_cars_in_train; ride->min_waiting_time = 10; ride->max_waiting_time = 60; ride->depart_flags = RIDE_DEPART_WAIT_FOR_MINIMUM_LENGTH | 3; diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index 93e1155c27..95deed396c 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -42,7 +42,7 @@ // This string specifies which version of network stream current build uses. // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -#define NETWORK_STREAM_VERSION "19" +#define NETWORK_STREAM_VERSION "20" #define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION static Peep* _pickup_peep = nullptr;