1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-18 20:43:04 +01:00

Normalise reversed RCT1 trains when importing

This commit is contained in:
Gymnasiast
2024-02-10 14:52:45 +01:00
parent a09724ad91
commit 4d35989888
3 changed files with 27 additions and 3 deletions

View File

@@ -831,6 +831,10 @@ namespace RCT1
dst->lifecycle_flags &= ~RIDE_LIFECYCLE_INDESTRUCTIBLE;
dst->lifecycle_flags &= ~RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK;
}
if (VehicleTypeIsReversed(src->VehicleType))
{
dst->lifecycle_flags |= RIDE_LIFECYCLE_REVERSED_TRAINS;
}
// Station
if (src->OverallView.IsNull())
@@ -2903,6 +2907,11 @@ namespace RCT1
dst->SetFlag(VehicleFlags::Crashed);
}
dst->BlockBrakeSpeed = kRCT2DefaultBlockBrakeSpeed;
if (VehicleTypeIsReversed(rct1Ride.VehicleType))
{
dst->SetFlag(VehicleFlags::CarIsReversed);
}
}
template<> void S4Importer::ImportEntity<Guest>(const RCT12EntityBase& srcBase)

View File

@@ -802,7 +802,7 @@ namespace RCT1
static constexpr const char * map[] =
{
"rct1.ride.steel_rc_trains", // VehicleType::SteelRollerCoasterTrain
"rct1.ride.steel_rc_trains_reversed", // VehicleType::SteelRollerCoasterTrainBackwards
"rct1.ride.steel_rc_trains", // VehicleType::SteelRollerCoasterTrainBackwards
"rct1.ride.wooden_rc_trains", // VehicleType::WoodenRollerCoasterTrain
"rct1.ride.inverted_trains", // VehicleType::InvertedCoasterTrain//NotinRCT2
"rct1.ride.suspended_swinging_cars", // VehicleType::SuspendedSwingingCars
@@ -817,7 +817,7 @@ namespace RCT1
"rct1.ride.steam_trains", // VehicleType::SteamTrain
"rct1.ride.mouse_cars", // VehicleType::WoodenMouseCars
"rct1.ride.bumper_boats", // VehicleType::BumperBoats
"rct1.ride.wooden_rc_trains_reversed", // VehicleType::WoodenRollerCoasterTrainBackwards
"rct1.ride.wooden_rc_trains", // VehicleType::WoodenRollerCoasterTrainBackwards
"rct1.ride.rocket_cars", // VehicleType::RocketCars
"rct1.ride.horses", // VehicleType::Horses//Steeplechase
"rct1.ride.sports_cars", // VehicleType::Sportscars
@@ -874,7 +874,7 @@ namespace RCT1
"rct2.ride.vekst", // VehicleType::FlyingRollerCoasterTrain
"rct1aa.ride.hyper_twister_trains", // VehicleType::NonLoopingSteelTwisterRollerCoasterTrain
"rct1aa.ride.heartline_twister_cars", // VehicleType::HeartlineTwisterCars
"rct2.ride.utcarr", // VehicleType::HeartlineTwisterCarsReversed
"rct1aa.ride.heartline_twister_cars", // VehicleType::HeartlineTwisterCarsReversed
"", // VehicleType::Reserved
"rct2.ride.gdrop1", // VehicleType::RotodropCar
"rct1aa.ride.flying_saucers", // VehicleType::FlyingSaucers
@@ -1487,4 +1487,17 @@ namespace RCT1
return origTrackType;
}
bool VehicleTypeIsReversed(const VehicleType vehicleType)
{
switch (vehicleType)
{
case VehicleType::SteelRollerCoasterTrainBackwards:
case VehicleType::WoodenRollerCoasterTrainBackwards:
case VehicleType::HeartlineTwisterCarsReversed:
return true;
default:
return false;
}
}
} // namespace RCT1

View File

@@ -53,4 +53,6 @@ namespace RCT1
std::string_view GetTerrainEdgeObject(uint8_t terrainEdge);
const std::vector<const char*> GetSceneryObjects(uint8_t sceneryType);
bool VehicleTypeIsReversed(const VehicleType vehicleType);
} // namespace RCT1