From 94ecc1da40fbd0b821b1cbe49fb4aa9e2db92136 Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Mon, 11 Apr 2016 17:51:02 +0100 Subject: [PATCH] fix #3282: improve launched freefall ratings When the ride mode is in downward launch mode, the intensity and nausea were fixed regardless of how high the ride is. To improve the rating calculations, alter the ratings in a similar fashion to roto-drop which is a similar mechanic. --- src/ride/ride_ratings.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/ride/ride_ratings.c b/src/ride/ride_ratings.c index 972b628716..05d0b0517c 100644 --- a/src/ride/ride_ratings.c +++ b/src/ride/ride_ratings.c @@ -1892,14 +1892,22 @@ static void ride_ratings_calculate_launched_freefall(rct_ride *ride) ratings.excitement += ((ride_get_total_length(ride) >> 16) * 32768) >> 16; - #ifdef ORIGINAL_RATINGS +#ifdef ORIGINAL_RATINGS ride_ratings_apply_operation_option(&ratings, ride, 0, 1355917, 451972); - #else +#else // Only apply "launch speed" effects when the setting can be modified if (ride->mode == RIDE_MODE_UPWARD_LAUNCH) { ride_ratings_apply_operation_option(&ratings, ride, 0, 1355917, 451972); + } else { + // Fix #3282: When the ride mode is in downward launch mode, the intensity and + // nausea were fixed regardless of how high the ride is. The following + // calculation is based on roto-drop which is a similar mechanic. + int lengthFactor = ((ride_get_total_length(ride) >> 16) * 209715) >> 16; + ratings.excitement += lengthFactor; + ratings.intensity += lengthFactor * 2; + ratings.nausea += lengthFactor * 2; } - #endif +#endif ride_ratings_apply_proximity(&ratings, ride, 20130); ride_ratings_apply_scenery(&ratings, ride, 25098);