From e1c9840a801746ef84cdce5f05291de784453cab Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Tue, 14 Oct 2025 23:01:19 +0200 Subject: [PATCH] Replace direct RIDE_TYPE_CHAIRLIFT check with RtdFlag --- src/openrct2/ride/RideData.h | 2 ++ src/openrct2/ride/RideRatings.cpp | 3 ++- src/openrct2/ride/rtd/transport/Chairlift.h | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/openrct2/ride/RideData.h b/src/openrct2/ride/RideData.h index 9320891631..205aa53fe8 100644 --- a/src/openrct2/ride/RideData.h +++ b/src/openrct2/ride/RideData.h @@ -435,6 +435,8 @@ enum class RtdFlag : uint8_t requireExplicitListingInMusicObjects, hasRoofOverWholeRide, + + runningSpeedAffectsReliability, }; /** diff --git a/src/openrct2/ride/RideRatings.cpp b/src/openrct2/ride/RideRatings.cpp index 7d62bc8b18..982324b180 100644 --- a/src/openrct2/ride/RideRatings.cpp +++ b/src/openrct2/ride/RideRatings.cpp @@ -1335,6 +1335,7 @@ static void RideRatingsApplyIntensityPenalty(RideRating::Tuple& ratings) */ static void SetUnreliabilityFactor(Ride& ride) { + const auto& rtd = ride.getRideTypeDescriptor(); // Special unreliability for a few ride types if (ride.type == RIDE_TYPE_COMPACT_INVERTED_COASTER && ride.mode == RideMode::reverseInclineLaunchedShuttle) { @@ -1344,7 +1345,7 @@ static void SetUnreliabilityFactor(Ride& ride) { ride.unreliabilityFactor += 5; } - else if (ride.type == RIDE_TYPE_CHAIRLIFT) + else if (rtd.HasFlag(RtdFlag::runningSpeedAffectsReliability)) { ride.unreliabilityFactor += (ride.speed * 2); } diff --git a/src/openrct2/ride/rtd/transport/Chairlift.h b/src/openrct2/ride/rtd/transport/Chairlift.h index f75e5afdb1..e91f83ed1a 100644 --- a/src/openrct2/ride/rtd/transport/Chairlift.h +++ b/src/openrct2/ride/rtd/transport/Chairlift.h @@ -33,7 +33,7 @@ constexpr RideTypeDescriptor ChairliftRTD = RtdFlag::hasLoadOptions, RtdFlag::hasVehicleColours, RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::allowMoreVehiclesThanStationFits, RtdFlag::isTransportRide, RtdFlag::showInTrackDesigner, - RtdFlag::slightlyInterestingToLookAt, RtdFlag::isSuspended), + RtdFlag::slightlyInterestingToLookAt, RtdFlag::isSuspended, RtdFlag::runningSpeedAffectsReliability), .RideModes = EnumsToFlags(RideMode::stationToStation), .DefaultMode = RideMode::stationToStation, .OperatingSettings = { 1, 4 },