diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2cbf9978a4..312ab671c1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -64,9 +64,9 @@ set(TITLE_SEQUENCE_VERSION "0.4.0")
set(TITLE_SEQUENCE_URL "https://github.com/OpenRCT2/title-sequences/releases/download/v${TITLE_SEQUENCE_VERSION}/title-sequences.zip")
set(TITLE_SEQUENCE_SHA1 "4ab0065e5a4d9f9c77d94718bbdfcfcd5a389da0")
-set(OBJECTS_VERSION "1.3.0")
+set(OBJECTS_VERSION "1.3.2")
set(OBJECTS_URL "https://github.com/OpenRCT2/objects/releases/download/v${OBJECTS_VERSION}/objects.zip")
-set(OBJECTS_SHA1 "855767cc495c615193848d2e191ded89b0477bc8")
+set(OBJECTS_SHA1 "040a99a8626ad7a7f43f8c8a17c3f4e1375b218f")
set(REPLAYS_VERSION "0.0.67")
set(REPLAYS_URL "https://github.com/OpenRCT2/replays/releases/download/v${REPLAYS_VERSION}/replays.zip")
diff --git a/distribution/changelog.txt b/distribution/changelog.txt
index 1eb3b41672..d35716ad6a 100644
--- a/distribution/changelog.txt
+++ b/distribution/changelog.txt
@@ -3,6 +3,7 @@
- Feature: [#16825] Add Alpine Coaster track type.
- Feature: [#17011] Option to show ride vehicles as separate entries when selecting a ride to construct.
- Feature: [#17217] Add FLAC and OGG/vorbis as supported audio formats for ride music objects.
+- Feature: [#17418] Add vehicles for the Hybrid Coaster, Single-Rail Roller Coaster and Classic Mini Roller Coaster.
- Improved: [#7983] The red colour in the ride stat screen and the ride graphs now corresponds better to negative effects on a ride’s stats.
- Improved: [#13966] Music Style dropdown is now sorted by name.
- Improved: [#16978] Tree placement is more natural during map generation.
diff --git a/openrct2.proj b/openrct2.proj
index 9346ea5d68..28997f94cd 100644
--- a/openrct2.proj
+++ b/openrct2.proj
@@ -45,8 +45,8 @@
f3a03c2e7b610fefa28d6962da10144f6324078d
https://github.com/OpenRCT2/title-sequences/releases/download/v0.4.0/title-sequences.zip
4ab0065e5a4d9f9c77d94718bbdfcfcd5a389da0
- https://github.com/OpenRCT2/objects/releases/download/v1.3.0/objects.zip
- 855767cc495c615193848d2e191ded89b0477bc8
+ https://github.com/OpenRCT2/objects/releases/download/v1.3.2/objects.zip
+ 040a99a8626ad7a7f43f8c8a17c3f4e1375b218f
https://github.com/OpenRCT2/replays/releases/download/v0.0.67/replays.zip
0CA2DB3BEE021F0402D3E0F0E9EDB142CCEAFFC6
diff --git a/shell.nix b/shell.nix
index 589a94f225..68baf8de0c 100644
--- a/shell.nix
+++ b/shell.nix
@@ -15,8 +15,8 @@ let
objects-src = pkgs.fetchFromGitHub {
owner = "OpenRCT2";
repo = "objects";
- rev = "v1.2.8";
- sha256 = "3ff8ce135c6a6690c7b6e4b23a57f43092f6ce4bf72de4d6952e1b669c09ddc9";
+ rev = "v1.3.2";
+ sha256 = "b87ab1e343930e6263cc7ae803ff35059d53be1d7b5a37a34577c5107c8bbdea";
};
title-sequences-src = pkgs.fetchFromGitHub {
diff --git a/src/openrct2/park/ParkFile.cpp b/src/openrct2/park/ParkFile.cpp
index 50a90ff5a5..448c7037c5 100644
--- a/src/openrct2/park/ParkFile.cpp
+++ b/src/openrct2/park/ParkFile.cpp
@@ -326,6 +326,17 @@ namespace OpenRCT2
identifier = newIdentifier;
}
}
+ else if (version <= 12)
+ {
+ if (identifier == "openrct2.ride.rmct1")
+ {
+ identifier = "openrct2.ride.hybrid_coaster";
+ }
+ else if (identifier == "openrct2.ride.rmct2")
+ {
+ identifier = "openrct2.ride.single_rail_coaster";
+ }
+ }
desc.Identifier = identifier;
desc.Version = cs.Read();
diff --git a/src/openrct2/park/ParkFile.h b/src/openrct2/park/ParkFile.h
index 2d3ae4e229..27bf8378a3 100644
--- a/src/openrct2/park/ParkFile.h
+++ b/src/openrct2/park/ParkFile.h
@@ -8,10 +8,10 @@ struct ObjectRepositoryItem;
namespace OpenRCT2
{
// Current version that is saved.
- constexpr uint32_t PARK_FILE_CURRENT_VERSION = 0xC;
+ constexpr uint32_t PARK_FILE_CURRENT_VERSION = 13;
// The minimum version that is forwards compatible with the current version.
- constexpr uint32_t PARK_FILE_MIN_VERSION = 0xC;
+ constexpr uint32_t PARK_FILE_MIN_VERSION = 12;
// The minimum version that is backwards compatible with the current version.
// If this is increased beyond 0, uncomment the checks in ParkFile.cpp and Context.cpp!
diff --git a/src/openrct2/rct1/Tables.cpp b/src/openrct2/rct1/Tables.cpp
index 49d716bafb..fbb2887bdb 100644
--- a/src/openrct2/rct1/Tables.cpp
+++ b/src/openrct2/rct1/Tables.cpp
@@ -700,91 +700,91 @@ namespace RCT1
{
static constexpr const char * map[] =
{
- "rct2.ride.ptct1", // RCT1_RIDE_TYPE_WOODEN_ROLLER_COASTER
- "rct2.ride.togst", // RCT1_RIDE_TYPE_STAND_UP_STEEL_ROLLER_COASTER
- "rct2.ride.arrsw1", // RCT1_RIDE_TYPE_SUSPENDED_ROLLER_COASTER
- "rct2.ride.nemt", // RCT1_RIDE_TYPE_INVERTED_ROLLER_COASTER
- "rct2.ride.zldb", // RCT1_RIDE_TYPE_STEEL_MINI_ROLLER_COASTER
- "rct2.ride.nrl", // RCT1_RIDE_TYPE_MINIATURE_RAILWAY
- "rct2.ride.mono2", // RCT1_RIDE_TYPE_MONORAIL
- "rct2.ride.batfl", // RCT1_RIDE_TYPE_SUSPENDED_SINGLE_RAIL_ROLLER_COASTER
- "rct2.ride.rboat", // RCT1_RIDE_TYPE_BOAT_HIRE
- "rct2.ride.wmouse", // RCT1_RIDE_TYPE_WOODEN_CRAZY_RODENT_ROLLER_COASTER
- "rct2.ride.steep1", // RCT1_RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER
- "rct2.ride.spcar", // RCT1_RIDE_TYPE_CAR_RIDE
- "rct2.ride.ssc1", // RCT1_RIDE_TYPE_LAUNCHED_FREEFALL
- "rct2.ride.bob1", // RCT1_RIDE_TYPE_BOBSLED_ROLLER_COASTER
- "rct2.ride.obs1", // RCT1_RIDE_TYPE_OBSERVATION_TOWER
- "rct2.ride.scht1", // RCT1_RIDE_TYPE_STEEL_ROLLER_COASTER
- "rct2.ride.ding1", // RCT1_RIDE_TYPE_WATER_SLIDE
- "rct2.ride.amt1", // RCT1_RIDE_TYPE_MINE_TRAIN_ROLLER_COASTER
- "rct2.ride.clift1", // RCT1_RIDE_TYPE_CHAIRLIFT
- "rct2.ride.arrt1", // RCT1_RIDE_TYPE_STEEL_CORKSCREW_ROLLER_COASTER
- "rct2.ride.hmaze", // RCT1_RIDE_TYPE_HEDGE_MAZE
- "rct2.ride.hskelt", // RCT1_RIDE_TYPE_SPIRAL_SLIDE
- "rct2.ride.kart1", // RCT1_RIDE_TYPE_GO_KARTS
- "rct2.ride.lfb1", // RCT1_RIDE_TYPE_LOG_FLUME
- "rct2.ride.rapboat", // RCT1_RIDE_TYPE_RIVER_RAPIDS
- "rct2.ride.dodg1", // RCT1_RIDE_TYPE_DODGEMS
- "rct2.ride.swsh1", // RCT1_RIDE_TYPE_SWINGING_SHIP
- "rct2.ride.swsh2", // RCT1_RIDE_TYPE_SWINGING_INVERTER_SHIP
- "rct2.ride.icecr1", // RCT1_RIDE_TYPE_ICE_CREAM_STALL
- "rct2.ride.chpsh", // RCT1_RIDE_TYPE_CHIPS_STALL
- "rct2.ride.drnks", // RCT1_RIDE_TYPE_DRINK_STALL
- "rct2.ride.cndyf", // RCT1_RIDE_TYPE_CANDYFLOSS_STALL
- "rct2.ride.burgb", // RCT1_RIDE_TYPE_BURGER_BAR
- "rct2.ride.mgr1", // RCT1_RIDE_TYPE_MERRY_GO_ROUND
- "rct2.ride.balln", // RCT1_RIDE_TYPE_BALLOON_STALL
- "rct2.ride.infok", // RCT1_RIDE_TYPE_INFORMATION_KIOSK
- "rct1.ride.toilets", // RCT1_RIDE_TYPE_TOILETS
- "rct2.ride.fwh1", // RCT1_RIDE_TYPE_FERRIS_WHEEL
- "rct2.ride.simpod", // RCT1_RIDE_TYPE_MOTION_SIMULATOR
- "rct2.ride.c3d", // RCT1_RIDE_TYPE_3D_CINEMA
- "rct2.ride.topsp1", // RCT1_RIDE_TYPE_TOP_SPIN
- "rct2.ride.srings", // RCT1_RIDE_TYPE_SPACE_RINGS
- "rct2.ride.revf1", // RCT1_RIDE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER
- "rct2.ride.souvs", // RCT1_RIDE_TYPE_SOUVENIR_STALL
- "rct2.ride.bmvd", // RCT1_RIDE_TYPE_VERTICAL_ROLLER_COASTER
- "rct2.ride.pizzs", // RCT1_RIDE_TYPE_PIZZA_STALL
- "rct2.ride.twist1", // RCT1_RIDE_TYPE_TWIST
- "rct2.ride.hhbuild", // RCT1_RIDE_TYPE_HAUNTED_HOUSE
- "rct2.ride.popcs", // RCT1_RIDE_TYPE_POPCORN_STALL
- "rct2.ride.circus1", // RCT1_RIDE_TYPE_CIRCUS
- "rct2.ride.gtc", // RCT1_RIDE_TYPE_GHOST_TRAIN
- "rct2.ride.bmsd", // RCT1_RIDE_TYPE_STEEL_TWISTER_ROLLER_COASTER
- "rct2.ride.mft", // RCT1_RIDE_TYPE_WOODEN_TWISTER_ROLLER_COASTER
- "rct2.ride.sfric1", // RCT1_RIDE_TYPE_WOODEN_SIDE_FRICTION_ROLLER_COASTER
- "rct2.ride.smc1", // RCT1_RIDE_TYPE_STEEL_WILD_MOUSE_ROLLER_COASTER
- "rct2.ride.hotds", // RCT1_RIDE_TYPE_HOT_DOG_STALL
- "rct2.ride.sqdst", // RCT1_RIDE_TYPE_EXOTIC_SEA_FOOD_STALL
- "rct2.ride.hatst", // RCT1_RIDE_TYPE_HAT_STALL
- "rct2.ride.toffs", // RCT1_RIDE_TYPE_TOFFEE_APPLE_STALL
- "rct2.ride.vreel", // RCT1_RIDE_TYPE_VIRGINIA_REEL
- "rct2.ride.spboat", // RCT1_RIDE_TYPE_RIVER_RIDE
- "rct2.ride.monbk", // RCT1_RIDE_TYPE_CYCLE_MONORAIL
- "rct2.ride.vekst", // RCT1_RIDE_TYPE_FLYING_ROLLER_COASTER
- "rct2.ride.smono", // RCT1_RIDE_TYPE_SUSPENDED_MONORAIL
- "", // RCT1_RIDE_TYPE_40
- "rct2.ride.revcar", // RCT1_RIDE_TYPE_WOODEN_REVERSER_ROLLER_COASTER
- "rct2.ride.utcar", // RCT1_RIDE_TYPE_HEARTLINE_TWISTER_ROLLER_COASTER
- "rct2.ride.golf1", // RCT1_RIDE_TYPE_MINIATURE_GOLF
- "", // RCT1_RIDE_TYPE_44
- "rct2.ride.gdrop1", // RCT1_RIDE_TYPE_ROTO_DROP
- "rct2.ride.fsauc", // RCT1_RIDE_TYPE_FLYING_SAUCERS
- "rct2.ride.chbuild", // RCT1_RIDE_TYPE_CROOKED_HOUSE
- "rct2.ride.helicar", // RCT1_RIDE_TYPE_CYCLE_RAILWAY
- "rct2.ride.slct", // RCT1_RIDE_TYPE_SUSPENDED_LOOPING_ROLLER_COASTER
- "rct2.ride.cstboat", // RCT1_RIDE_TYPE_WATER_COASTER
- "rct2.ride.thcar", // RCT1_RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
- "rct2.ride.ivmc1", // RCT1_RIDE_TYPE_INVERTED_WILD_MOUSE_COASTER
- "rct2.ride.jski", // RCT1_RIDE_TYPE_JET_SKIS
- "rct2.ride.tshrt", // RCT1_RIDE_TYPE_T_SHIRT_STALL
- "rct2.ride.rftboat", // RCT1_RIDE_TYPE_RAFT_RIDE
- "rct2.ride.dough", // RCT1_RIDE_TYPE_DOUGHNUT_SHOP
- "rct2.ride.enterp", // RCT1_RIDE_TYPE_ENTERPRISE
- "rct2.ride.coffs", // RCT1_RIDE_TYPE_COFFEE_SHOP
- "rct2.ride.chcks", // RCT1_RIDE_TYPE_FRIED_CHICKEN_STALL
- "rct2.ride.lemst", // RCT1_RIDE_TYPE_LEMONADE_STALL
+ "rct2.ride.ptct1", // RCT1_RIDE_TYPE_WOODEN_ROLLER_COASTER
+ "rct2.ride.togst", // RCT1_RIDE_TYPE_STAND_UP_STEEL_ROLLER_COASTER
+ "rct2.ride.arrsw1", // RCT1_RIDE_TYPE_SUSPENDED_ROLLER_COASTER
+ "rct2.ride.nemt", // RCT1_RIDE_TYPE_INVERTED_ROLLER_COASTER
+ "rct1.ride.ladybird_trains", // RCT1_RIDE_TYPE_STEEL_MINI_ROLLER_COASTER
+ "rct2.ride.nrl", // RCT1_RIDE_TYPE_MINIATURE_RAILWAY
+ "rct2.ride.mono2", // RCT1_RIDE_TYPE_MONORAIL
+ "rct2.ride.batfl", // RCT1_RIDE_TYPE_SUSPENDED_SINGLE_RAIL_ROLLER_COASTER
+ "rct2.ride.rboat", // RCT1_RIDE_TYPE_BOAT_HIRE
+ "rct2.ride.wmouse", // RCT1_RIDE_TYPE_WOODEN_CRAZY_RODENT_ROLLER_COASTER
+ "rct2.ride.steep1", // RCT1_RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER
+ "rct2.ride.spcar", // RCT1_RIDE_TYPE_CAR_RIDE
+ "rct2.ride.ssc1", // RCT1_RIDE_TYPE_LAUNCHED_FREEFALL
+ "rct2.ride.bob1", // RCT1_RIDE_TYPE_BOBSLED_ROLLER_COASTER
+ "rct2.ride.obs1", // RCT1_RIDE_TYPE_OBSERVATION_TOWER
+ "rct2.ride.scht1", // RCT1_RIDE_TYPE_STEEL_ROLLER_COASTER
+ "rct2.ride.ding1", // RCT1_RIDE_TYPE_WATER_SLIDE
+ "rct2.ride.amt1", // RCT1_RIDE_TYPE_MINE_TRAIN_ROLLER_COASTER
+ "rct2.ride.clift1", // RCT1_RIDE_TYPE_CHAIRLIFT
+ "rct2.ride.arrt1", // RCT1_RIDE_TYPE_STEEL_CORKSCREW_ROLLER_COASTER
+ "rct2.ride.hmaze", // RCT1_RIDE_TYPE_HEDGE_MAZE
+ "rct2.ride.hskelt", // RCT1_RIDE_TYPE_SPIRAL_SLIDE
+ "rct2.ride.kart1", // RCT1_RIDE_TYPE_GO_KARTS
+ "rct2.ride.lfb1", // RCT1_RIDE_TYPE_LOG_FLUME
+ "rct2.ride.rapboat", // RCT1_RIDE_TYPE_RIVER_RAPIDS
+ "rct2.ride.dodg1", // RCT1_RIDE_TYPE_DODGEMS
+ "rct2.ride.swsh1", // RCT1_RIDE_TYPE_SWINGING_SHIP
+ "rct2.ride.swsh2", // RCT1_RIDE_TYPE_SWINGING_INVERTER_SHIP
+ "rct2.ride.icecr1", // RCT1_RIDE_TYPE_ICE_CREAM_STALL
+ "rct2.ride.chpsh", // RCT1_RIDE_TYPE_CHIPS_STALL
+ "rct2.ride.drnks", // RCT1_RIDE_TYPE_DRINK_STALL
+ "rct2.ride.cndyf", // RCT1_RIDE_TYPE_CANDYFLOSS_STALL
+ "rct2.ride.burgb", // RCT1_RIDE_TYPE_BURGER_BAR
+ "rct2.ride.mgr1", // RCT1_RIDE_TYPE_MERRY_GO_ROUND
+ "rct2.ride.balln", // RCT1_RIDE_TYPE_BALLOON_STALL
+ "rct2.ride.infok", // RCT1_RIDE_TYPE_INFORMATION_KIOSK
+ "rct1.ride.toilets", // RCT1_RIDE_TYPE_TOILETS
+ "rct2.ride.fwh1", // RCT1_RIDE_TYPE_FERRIS_WHEEL
+ "rct2.ride.simpod", // RCT1_RIDE_TYPE_MOTION_SIMULATOR
+ "rct2.ride.c3d", // RCT1_RIDE_TYPE_3D_CINEMA
+ "rct2.ride.topsp1", // RCT1_RIDE_TYPE_TOP_SPIN
+ "rct2.ride.srings", // RCT1_RIDE_TYPE_SPACE_RINGS
+ "rct2.ride.revf1", // RCT1_RIDE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER
+ "rct2.ride.souvs", // RCT1_RIDE_TYPE_SOUVENIR_STALL
+ "rct2.ride.bmvd", // RCT1_RIDE_TYPE_VERTICAL_ROLLER_COASTER
+ "rct2.ride.pizzs", // RCT1_RIDE_TYPE_PIZZA_STALL
+ "rct2.ride.twist1", // RCT1_RIDE_TYPE_TWIST
+ "rct2.ride.hhbuild", // RCT1_RIDE_TYPE_HAUNTED_HOUSE
+ "rct2.ride.popcs", // RCT1_RIDE_TYPE_POPCORN_STALL
+ "rct2.ride.circus1", // RCT1_RIDE_TYPE_CIRCUS
+ "rct2.ride.gtc", // RCT1_RIDE_TYPE_GHOST_TRAIN
+ "rct2.ride.bmsd", // RCT1_RIDE_TYPE_STEEL_TWISTER_ROLLER_COASTER
+ "rct2.ride.mft", // RCT1_RIDE_TYPE_WOODEN_TWISTER_ROLLER_COASTER
+ "rct2.ride.sfric1", // RCT1_RIDE_TYPE_WOODEN_SIDE_FRICTION_ROLLER_COASTER
+ "rct2.ride.smc1", // RCT1_RIDE_TYPE_STEEL_WILD_MOUSE_ROLLER_COASTER
+ "rct2.ride.hotds", // RCT1_RIDE_TYPE_HOT_DOG_STALL
+ "rct2.ride.sqdst", // RCT1_RIDE_TYPE_EXOTIC_SEA_FOOD_STALL
+ "rct2.ride.hatst", // RCT1_RIDE_TYPE_HAT_STALL
+ "rct2.ride.toffs", // RCT1_RIDE_TYPE_TOFFEE_APPLE_STALL
+ "rct2.ride.vreel", // RCT1_RIDE_TYPE_VIRGINIA_REEL
+ "rct2.ride.spboat", // RCT1_RIDE_TYPE_RIVER_RIDE
+ "rct2.ride.monbk", // RCT1_RIDE_TYPE_CYCLE_MONORAIL
+ "rct2.ride.vekst", // RCT1_RIDE_TYPE_FLYING_ROLLER_COASTER
+ "rct2.ride.smono", // RCT1_RIDE_TYPE_SUSPENDED_MONORAIL
+ "", // RCT1_RIDE_TYPE_40
+ "rct2.ride.revcar", // RCT1_RIDE_TYPE_WOODEN_REVERSER_ROLLER_COASTER
+ "rct2.ride.utcar", // RCT1_RIDE_TYPE_HEARTLINE_TWISTER_ROLLER_COASTER
+ "rct2.ride.golf1", // RCT1_RIDE_TYPE_MINIATURE_GOLF
+ "", // RCT1_RIDE_TYPE_44
+ "rct2.ride.gdrop1", // RCT1_RIDE_TYPE_ROTO_DROP
+ "rct2.ride.fsauc", // RCT1_RIDE_TYPE_FLYING_SAUCERS
+ "rct2.ride.chbuild", // RCT1_RIDE_TYPE_CROOKED_HOUSE
+ "rct2.ride.helicar", // RCT1_RIDE_TYPE_CYCLE_RAILWAY
+ "rct2.ride.slct", // RCT1_RIDE_TYPE_SUSPENDED_LOOPING_ROLLER_COASTER
+ "rct2.ride.cstboat", // RCT1_RIDE_TYPE_WATER_COASTER
+ "rct2.ride.thcar", // RCT1_RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
+ "rct2.ride.ivmc1", // RCT1_RIDE_TYPE_INVERTED_WILD_MOUSE_COASTER
+ "rct2.ride.jski", // RCT1_RIDE_TYPE_JET_SKIS
+ "rct2.ride.tshrt", // RCT1_RIDE_TYPE_T_SHIRT_STALL
+ "rct2.ride.rftboat", // RCT1_RIDE_TYPE_RAFT_RIDE
+ "rct2.ride.dough", // RCT1_RIDE_TYPE_DOUGHNUT_SHOP
+ "rct2.ride.enterp", // RCT1_RIDE_TYPE_ENTERPRISE
+ "rct2.ride.coffs", // RCT1_RIDE_TYPE_COFFEE_SHOP
+ "rct2.ride.chcks", // RCT1_RIDE_TYPE_FRIED_CHICKEN_STALL
+ "rct2.ride.lemst", // RCT1_RIDE_TYPE_LEMONADE_STALL
};
const auto index = EnumValue(rideType);
@@ -797,95 +797,95 @@ namespace RCT1
{
static constexpr const char * map[] =
{
- "rct2.ride.scht1", // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN
- "rct2.ride.scht1", // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN_BACKWARDS
- "rct2.ride.ptct1", // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN
- "rct2.ride.slct", // RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN (Not in RCT2)
- "rct2.ride.arrsw1", // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_CARS
- "rct2.ride.zldb", // RCT1_VEHICLE_TYPE_LADYBIRD_CARS
- "rct2.ride.togst", // RCT1_VEHICLE_TYPE_STANDUP_ROLLER_COASTER_CARS
- "rct2.ride.wmspin", // RCT1_VEHICLE_TYPE_SPINNING_CARS
- "rct2.ride.batfl", // RCT1_VEHICLE_TYPE_SINGLE_PERSON_SWINGING_CHAIRS
- "rct2.ride.swans", // RCT1_VEHICLE_TYPE_SWANS_PEDAL_BOATS
- "rct2.ride.mono1", // RCT1_VEHICLE_TYPE_LARGE_MONORAIL_TRAIN
- "rct2.ride.cboat", // RCT1_VEHICLE_TYPE_CANOES
- "rct2.ride.rboat", // RCT1_VEHICLE_TYPE_ROWING_BOATS
- "rct2.ride.nrl", // RCT1_VEHICLE_TYPE_STEAM_TRAIN
- "rct2.ride.wmouse", // RCT1_VEHICLE_TYPE_WOODEN_MOUSE_CARS
- "rct2.ride.bboat", // RCT1_VEHICLE_TYPE_BUMPER_BOATS
- "rct2.ride.ptct1", // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN_BACKWARDS
- "rct2.ride.rckc", // RCT1_VEHICLE_TYPE_ROCKET_CARS
- "rct2.ride.steep1", // RCT1_VEHICLE_TYPE_HORSES // Steeplechase
- "rct2.ride.spcar", // RCT1_VEHICLE_TYPE_SPORTSCARS
- "rct2.ride.skytr", // RCT1_VEHICLE_TYPE_LYING_DOWN_SWINGING_CARS (Inverted single-rail)
- "rct2.ride.wmmine", // RCT1_VEHICLE_TYPE_WOODEN_MINE_CARS
- "rct2.ride.arrsw2", // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_AIRPLANE_CARS
- "rct2.ride.mono2", // RCT1_VEHICLE_TYPE_SMALL_MONORAIL_CARS
- "rct2.ride.trike", // RCT1_VEHICLE_TYPE_WATER_TRICYCLES
- "rct2.ride.ssc1", // RCT1_VEHICLE_TYPE_LAUNCHED_FREEFALL_CAR
- "rct2.ride.bob1", // RCT1_VEHICLE_TYPE_BOBSLEIGH_CARS
- "rct2.ride.ding1", // RCT1_VEHICLE_TYPE_DINGHIES
- "rct2.ride.obs1", // RCT1_VEHICLE_TYPE_ROTATING_CABIN
- "rct2.ride.amt1", // RCT1_VEHICLE_TYPE_MINE_TRAIN
- "rct2.ride.clift1", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS
- "rct2.ride.arrt1", // RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN
- "rct2.ride.steep2", // RCT1_VEHICLE_TYPE_MOTORBIKES
- "rct2.ride.rcr", // RCT1_VEHICLE_TYPE_RACING_CARS
- "rct2.ride.truck1", // RCT1_VEHICLE_TYPE_TRUCKS
- "rct2.ride.kart1", // RCT1_VEHICLE_TYPE_GO_KARTS
- "rct2.ride.rapboat", // RCT1_VEHICLE_TYPE_RAPIDS_BOATS
- "rct2.ride.lfb1", // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS
- "rct2.ride.dodg1", // RCT1_VEHICLE_TYPE_DODGEMS
- "rct2.ride.swsh1", // RCT1_VEHICLE_TYPE_SWINGING_SHIP
- "rct2.ride.swsh2", // RCT1_VEHICLE_TYPE_SWINGING_INVERTER_SHIP
- "rct2.ride.mgr1", // RCT1_VEHICLE_TYPE_MERRY_GO_ROUND
- "rct2.ride.fwh1", // RCT1_VEHICLE_TYPE_FERRIS_WHEEL
- "rct2.ride.simpod", // RCT1_VEHICLE_TYPE_SIMULATOR_POD
- "rct2.ride.c3d", // RCT1_VEHICLE_TYPE_CINEMA_BUILDING
- "rct2.ride.topsp1", // RCT1_VEHICLE_TYPE_TOPSPIN_CAR
- "rct2.ride.srings", // RCT1_VEHICLE_TYPE_SPACE_RINGS
- "rct2.ride.revf1", // RCT1_VEHICLE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER_CAR
- "rct2.ride.bmvd", // RCT1_VEHICLE_TYPE_VERTICAL_ROLLER_COASTER_CARS
- "rct2.ride.ctcar", // RCT1_VEHICLE_TYPE_CAT_CARS
- "rct2.ride.twist1", // RCT1_VEHICLE_TYPE_TWIST_ARMS_AND_CARS
- "rct2.ride.hhbuild", // RCT1_VEHICLE_TYPE_HAUNTED_HOUSE_BUILDING
- "rct2.ride.zlog", // RCT1_VEHICLE_TYPE_LOG_CARS
- "rct2.ride.circus1", // RCT1_VEHICLE_TYPE_CIRCUS_TENT
- "rct2.ride.gtc", // RCT1_VEHICLE_TYPE_GHOST_TRAIN_CARS
- "rct2.ride.bmsd", // RCT1_VEHICLE_TYPE_STEEL_TWISTER_ROLLER_COASTER_TRAIN
- "rct2.ride.mft", // RCT1_VEHICLE_TYPE_WOODEN_TWISTER_ROLLER_COASTER_TRAIN
- "rct2.ride.sfric1", // RCT1_VEHICLE_TYPE_WOODEN_SIDE_FRICTION_CARS
- "rct2.ride.vcr", // RCT1_VEHICLE_TYPE_VINTAGE_CARS
- "rct2.ride.nrl2", // RCT1_VEHICLE_TYPE_STEAM_TRAIN_COVERED_CARS
- "rct2.ride.bmsu", // RCT1_VEHICLE_TYPE_STAND_UP_STEEL_TWISTER_ROLLER_COASTER_TRAIN
- "rct2.ride.bmfl", // RCT1_VEHICLE_TYPE_FLOORLESS_STEEL_TWISTER_ROLLER_COASTER_TRAIN
- "rct2.ride.smc1", // RCT1_VEHICLE_TYPE_STEEL_MOUSE_CARS
- "rct2.ride.clift2", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS_ALTERNATIVE
- "rct2.ride.smono", // RCT1_VEHICLE_TYPE_SUSPENDED_MONORAIL_TRAIN
- "rct2.ride.helicar", // RCT1_VEHICLE_TYPE_HELICOPTER_CARS
- "rct2.ride.vreel", // RCT1_VEHICLE_TYPE_VIRGINIA_REEL_TUBS
- "rct2.ride.revcar", // RCT1_VEHICLE_TYPE_REVERSER_CARS
- "rct2.ride.golf1", // RCT1_VEHICLE_TYPE_GOLFERS
- "rct2.ride.spboat", // RCT1_VEHICLE_TYPE_RIVER_RIDE_BOATS
- "rct2.ride.vekst", // RCT1_VEHICLE_TYPE_FLYING_ROLLER_COASTER_TRAIN
- "rct2.ride.bmrb", // RCT1_VEHICLE_TYPE_NON_LOOPING_STEEL_TWISTER_ROLLER_COASTER_TRAIN
- "rct2.ride.utcar", // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS
- "rct2.ride.utcarr", // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS_REVERSED
- "", // RCT1_VEHICLE_TYPE_RESERVED
- "rct2.ride.gdrop1", // RCT1_VEHICLE_TYPE_ROTODROP_CAR
- "rct2.ride.fsauc", // RCT1_VEHICLE_TYPE_FLYING_SAUCERS
- "rct2.ride.chbuild", // RCT1_VEHICLE_TYPE_CROOKED_HOUSE_BUILDING
- "rct2.ride.monbk", // RCT1_VEHICLE_TYPE_BICYCLES
- "rct2.ride.arrt2", // RCT1_VEHICLE_TYPE_HYPERCOASTER_TRAIN
- "rct2.ride.nemt", // RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN
- "rct2.ride.cstboat", // RCT1_VEHICLE_TYPE_WATER_COASTER_BOATS
- "rct2.ride.slcfo", // RCT1_VEHICLE_TYPE_FACEOFF_CARS
- "rct2.ride.jski", // RCT1_VEHICLE_TYPE_JET_SKIS
- "rct2.ride.rftboat", // RCT1_VEHICLE_TYPE_RAFT_BOATS
- "rct2.ride.aml1", // RCT1_VEHICLE_TYPE_AMERICAN_STYLE_STEAM_TRAIN
- "rct2.ride.thcar", // RCT1_VEHICLE_TYPE_AIR_POWERED_COASTER_TRAIN
- "rct2.ride.ivmc1", // RCT1_VEHICLE_TYPE_SUSPENDED_WILD_MOUSE_CARS (Inverted Hairpin in RCT2)
- "rct2.ride.enterp", // RCT1_VEHICLE_TYPE_ENTERPRISE_WHEEL
+ "rct2.ride.scht1", // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN
+ "rct2.ride.scht1", // RCT1_VEHICLE_TYPE_STEEL_ROLLER_COASTER_TRAIN_BACKWARDS
+ "rct2.ride.ptct1", // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN
+ "rct2.ride.slct", // RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN (Not in RCT2)
+ "rct2.ride.arrsw1", // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_CARS
+ "rct1.ride.ladybird_trains", // RCT1_VEHICLE_TYPE_LADYBIRD_CARS
+ "rct2.ride.togst", // RCT1_VEHICLE_TYPE_STANDUP_ROLLER_COASTER_CARS
+ "rct2.ride.wmspin", // RCT1_VEHICLE_TYPE_SPINNING_CARS
+ "rct2.ride.batfl", // RCT1_VEHICLE_TYPE_SINGLE_PERSON_SWINGING_CHAIRS
+ "rct2.ride.swans", // RCT1_VEHICLE_TYPE_SWANS_PEDAL_BOATS
+ "rct2.ride.mono1", // RCT1_VEHICLE_TYPE_LARGE_MONORAIL_TRAIN
+ "rct2.ride.cboat", // RCT1_VEHICLE_TYPE_CANOES
+ "rct2.ride.rboat", // RCT1_VEHICLE_TYPE_ROWING_BOATS
+ "rct2.ride.nrl", // RCT1_VEHICLE_TYPE_STEAM_TRAIN
+ "rct2.ride.wmouse", // RCT1_VEHICLE_TYPE_WOODEN_MOUSE_CARS
+ "rct2.ride.bboat", // RCT1_VEHICLE_TYPE_BUMPER_BOATS
+ "rct2.ride.ptct1", // RCT1_VEHICLE_TYPE_WOODEN_ROLLER_COASTER_TRAIN_BACKWARDS
+ "rct1.ride.rocket_cars", // RCT1_VEHICLE_TYPE_ROCKET_CARS
+ "rct2.ride.steep1", // RCT1_VEHICLE_TYPE_HORSES // Steeplechase
+ "rct2.ride.spcar", // RCT1_VEHICLE_TYPE_SPORTSCARS
+ "rct2.ride.skytr", // RCT1_VEHICLE_TYPE_LYING_DOWN_SWINGING_CARS (Inverted single-rail)
+ "rct2.ride.wmmine", // RCT1_VEHICLE_TYPE_WOODEN_MINE_CARS
+ "rct2.ride.arrsw2", // RCT1_VEHICLE_TYPE_SUSPENDED_SWINGING_AIRPLANE_CARS
+ "rct2.ride.mono2", // RCT1_VEHICLE_TYPE_SMALL_MONORAIL_CARS
+ "rct2.ride.trike", // RCT1_VEHICLE_TYPE_WATER_TRICYCLES
+ "rct2.ride.ssc1", // RCT1_VEHICLE_TYPE_LAUNCHED_FREEFALL_CAR
+ "rct2.ride.bob1", // RCT1_VEHICLE_TYPE_BOBSLEIGH_CARS
+ "rct2.ride.ding1", // RCT1_VEHICLE_TYPE_DINGHIES
+ "rct2.ride.obs1", // RCT1_VEHICLE_TYPE_ROTATING_CABIN
+ "rct2.ride.amt1", // RCT1_VEHICLE_TYPE_MINE_TRAIN
+ "rct2.ride.clift1", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS
+ "rct2.ride.arrt1", // RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN
+ "rct2.ride.steep2", // RCT1_VEHICLE_TYPE_MOTORBIKES
+ "rct2.ride.rcr", // RCT1_VEHICLE_TYPE_RACING_CARS
+ "rct2.ride.truck1", // RCT1_VEHICLE_TYPE_TRUCKS
+ "rct2.ride.kart1", // RCT1_VEHICLE_TYPE_GO_KARTS
+ "rct2.ride.rapboat", // RCT1_VEHICLE_TYPE_RAPIDS_BOATS
+ "rct2.ride.lfb1", // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS
+ "rct2.ride.dodg1", // RCT1_VEHICLE_TYPE_DODGEMS
+ "rct2.ride.swsh1", // RCT1_VEHICLE_TYPE_SWINGING_SHIP
+ "rct2.ride.swsh2", // RCT1_VEHICLE_TYPE_SWINGING_INVERTER_SHIP
+ "rct2.ride.mgr1", // RCT1_VEHICLE_TYPE_MERRY_GO_ROUND
+ "rct2.ride.fwh1", // RCT1_VEHICLE_TYPE_FERRIS_WHEEL
+ "rct2.ride.simpod", // RCT1_VEHICLE_TYPE_SIMULATOR_POD
+ "rct2.ride.c3d", // RCT1_VEHICLE_TYPE_CINEMA_BUILDING
+ "rct2.ride.topsp1", // RCT1_VEHICLE_TYPE_TOPSPIN_CAR
+ "rct2.ride.srings", // RCT1_VEHICLE_TYPE_SPACE_RINGS
+ "rct2.ride.revf1", // RCT1_VEHICLE_TYPE_REVERSE_FREEFALL_ROLLER_COASTER_CAR
+ "rct2.ride.bmvd", // RCT1_VEHICLE_TYPE_VERTICAL_ROLLER_COASTER_CARS
+ "rct2.ride.ctcar", // RCT1_VEHICLE_TYPE_CAT_CARS
+ "rct2.ride.twist1", // RCT1_VEHICLE_TYPE_TWIST_ARMS_AND_CARS
+ "rct2.ride.hhbuild", // RCT1_VEHICLE_TYPE_HAUNTED_HOUSE_BUILDING
+ "rct1.ride.log_trains", // RCT1_VEHICLE_TYPE_LOG_CARS
+ "rct2.ride.circus1", // RCT1_VEHICLE_TYPE_CIRCUS_TENT
+ "rct2.ride.gtc", // RCT1_VEHICLE_TYPE_GHOST_TRAIN_CARS
+ "rct2.ride.bmsd", // RCT1_VEHICLE_TYPE_STEEL_TWISTER_ROLLER_COASTER_TRAIN
+ "rct2.ride.mft", // RCT1_VEHICLE_TYPE_WOODEN_TWISTER_ROLLER_COASTER_TRAIN
+ "rct2.ride.sfric1", // RCT1_VEHICLE_TYPE_WOODEN_SIDE_FRICTION_CARS
+ "rct2.ride.vcr", // RCT1_VEHICLE_TYPE_VINTAGE_CARS
+ "rct2.ride.nrl2", // RCT1_VEHICLE_TYPE_STEAM_TRAIN_COVERED_CARS
+ "rct2.ride.bmsu", // RCT1_VEHICLE_TYPE_STAND_UP_STEEL_TWISTER_ROLLER_COASTER_TRAIN
+ "rct2.ride.bmfl", // RCT1_VEHICLE_TYPE_FLOORLESS_STEEL_TWISTER_ROLLER_COASTER_TRAIN
+ "rct2.ride.smc1", // RCT1_VEHICLE_TYPE_STEEL_MOUSE_CARS
+ "rct2.ride.clift2", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS_ALTERNATIVE
+ "rct2.ride.smono", // RCT1_VEHICLE_TYPE_SUSPENDED_MONORAIL_TRAIN
+ "rct2.ride.helicar", // RCT1_VEHICLE_TYPE_HELICOPTER_CARS
+ "rct2.ride.vreel", // RCT1_VEHICLE_TYPE_VIRGINIA_REEL_TUBS
+ "rct2.ride.revcar", // RCT1_VEHICLE_TYPE_REVERSER_CARS
+ "rct2.ride.golf1", // RCT1_VEHICLE_TYPE_GOLFERS
+ "rct2.ride.spboat", // RCT1_VEHICLE_TYPE_RIVER_RIDE_BOATS
+ "rct2.ride.vekst", // RCT1_VEHICLE_TYPE_FLYING_ROLLER_COASTER_TRAIN
+ "rct2.ride.bmrb", // RCT1_VEHICLE_TYPE_NON_LOOPING_STEEL_TWISTER_ROLLER_COASTER_TRAIN
+ "rct2.ride.utcar", // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS
+ "rct2.ride.utcarr", // RCT1_VEHICLE_TYPE_HEARTLINE_TWISTER_CARS_REVERSED
+ "", // RCT1_VEHICLE_TYPE_RESERVED
+ "rct2.ride.gdrop1", // RCT1_VEHICLE_TYPE_ROTODROP_CAR
+ "rct2.ride.fsauc", // RCT1_VEHICLE_TYPE_FLYING_SAUCERS
+ "rct2.ride.chbuild", // RCT1_VEHICLE_TYPE_CROOKED_HOUSE_BUILDING
+ "rct2.ride.monbk", // RCT1_VEHICLE_TYPE_BICYCLES
+ "rct2.ride.arrt2", // RCT1_VEHICLE_TYPE_HYPERCOASTER_TRAIN
+ "rct2.ride.nemt", // RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN
+ "rct2.ride.cstboat", // RCT1_VEHICLE_TYPE_WATER_COASTER_BOATS
+ "rct2.ride.slcfo", // RCT1_VEHICLE_TYPE_FACEOFF_CARS
+ "rct2.ride.jski", // RCT1_VEHICLE_TYPE_JET_SKIS
+ "rct2.ride.rftboat", // RCT1_VEHICLE_TYPE_RAFT_BOATS
+ "rct2.ride.aml1", // RCT1_VEHICLE_TYPE_AMERICAN_STYLE_STEAM_TRAIN
+ "rct2.ride.thcar", // RCT1_VEHICLE_TYPE_AIR_POWERED_COASTER_TRAIN
+ "rct2.ride.ivmc1", // RCT1_VEHICLE_TYPE_SUSPENDED_WILD_MOUSE_CARS (Inverted Hairpin in RCT2)
+ "rct2.ride.enterp", // RCT1_VEHICLE_TYPE_ENTERPRISE_WHEEL
};
Guard::ArgumentInRange(vehicleType, 0, std::size(map), "Unsupported RCT1 vehicle type.");
diff --git a/src/openrct2/ride/Track.cpp b/src/openrct2/ride/Track.cpp
index 64caf56b7c..8974a9aef4 100644
--- a/src/openrct2/ride/Track.cpp
+++ b/src/openrct2/ride/Track.cpp
@@ -659,8 +659,6 @@ bool track_element_is_covered(track_type_t trackElementType)
bool TrackTypeHasSpeedSetting(track_type_t trackType)
{
- // This does not check if the element is really a Spinning Control track instead of a booster,
- // but this does not cause problems.
return trackType == TrackElemType::Brakes || trackType == TrackElemType::Booster;
}