1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-10 01:22:25 +01:00

Count holes separately from inversions; limit bonus to 31

This commit is contained in:
Gymnasiast
2025-04-17 22:13:53 +02:00
parent c43497c16d
commit 731f2d4c34
2 changed files with 7 additions and 7 deletions

View File

@@ -1532,7 +1532,7 @@ static RatingTuple get_sloped_turns_rating(const Ride& ride)
*
* rct2: 0x0065E0F2
*/
static RatingTuple get_inversions_ratings(uint16_t inversions)
static RatingTuple getInversionsRatings(uint16_t inversions)
{
RatingTuple rating;
@@ -1634,8 +1634,7 @@ static RatingTuple ride_ratings_get_turns_ratings(const Ride& ride)
intensity += slopedTurnsRating.intensity;
nausea += slopedTurnsRating.nausea;
auto inversions = ride.getRideTypeDescriptor().specialType == RtdSpecialType::miniGolf ? ride.numHoles : ride.numInversions;
RatingTuple inversionsRating = get_inversions_ratings(inversions);
RatingTuple inversionsRating = getInversionsRatings(ride.numInversions);
excitement += inversionsRating.excitement;
intensity += inversionsRating.intensity;
nausea += inversionsRating.nausea;
@@ -2039,9 +2038,8 @@ static void RideRatingsApplyBonusReversals(
static void RideRatingsApplyBonusHoles(RatingTuple& ratings, const Ride& ride, RatingsModifier modifier)
{
RideRatingsAdd(
ratings, (ride.numHoles) * modifier.excitement, (ride.numHoles) * modifier.intensity,
(ride.numHoles) * modifier.nausea);
auto bonusHoles = std::min<uint8_t>(modifier.threshold, ride.numHoles);
RideRatingsAdd(ratings, bonusHoles * modifier.excitement, bonusHoles * modifier.intensity, bonusHoles * modifier.nausea);
}
static void RideRatingsApplyBonusNumTrains(RatingTuple& ratings, const Ride& ride, RatingsModifier modifier)

View File

@@ -61,10 +61,12 @@ constexpr RideTypeDescriptor MiniGolfRTD =
{
{ RatingsModifierType::BonusLength, 6000, 873, 0, 0 },
{ RatingsModifierType::BonusTurns, 0, 14860, 0, 0 },
// The first six holes used to benefit from bonuses intended for inversions.
{ RatingsModifierType::BonusHoles, 6, 6, 0, 0 },
{ RatingsModifierType::BonusSheltered, 0, 5140, 6553, 4681 },
{ RatingsModifierType::BonusProximity, 0, 15657, 0, 0 },
{ RatingsModifierType::BonusScenery, 0, 27887, 0, 0 },
{ RatingsModifierType::BonusHoles, 0, 5, 0, 0 },
{ RatingsModifierType::BonusHoles, 31, 5, 0, 0 },
{ RatingsModifierType::RequirementHoles, 1, 8, 2, 2 },
},
},