mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-06 06:32:56 +01:00
Merge RideRatingsCalculateFuncTable in RideTypeDescriptor
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "Track.h"
|
||||
#include "TrackPaint.h"
|
||||
|
||||
using ride_ratings_calculation = void (*)(Ride* ride);
|
||||
struct RideComponentName
|
||||
{
|
||||
rct_string_id singular;
|
||||
@@ -123,6 +124,8 @@ struct RideTypeDescriptor
|
||||
uint8_t MaxMass;
|
||||
/** rct2: 0x0097D7C8, 0x0097D7C9, 0x0097D7CA */
|
||||
rct_ride_lift_data LiftData;
|
||||
// rct2: 0x0097E050
|
||||
ride_ratings_calculation RatingsCalculationFunction;
|
||||
// rct2: 0x0097CD1E
|
||||
RatingTuple RatingsMultipliers;
|
||||
UpkeepCostsDescriptor UpkeepCosts;
|
||||
@@ -295,6 +298,7 @@ constexpr const RideTypeDescriptor DummyRTD =
|
||||
SET_FIELD(Heights, { 12, 64, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, nullptr),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 0, 0, 1 }),
|
||||
|
||||
@@ -76,12 +76,8 @@ struct ShelteredEights
|
||||
uint8_t TotalShelteredEighths;
|
||||
};
|
||||
|
||||
using ride_ratings_calculation = void (*)(Ride* ride);
|
||||
|
||||
RideRatingCalculationData gRideRatingsCalcData;
|
||||
|
||||
static ride_ratings_calculation ride_ratings_get_calculate_func(uint8_t rideType);
|
||||
|
||||
static void ride_ratings_update_state();
|
||||
static void ride_ratings_update_state_0();
|
||||
static void ride_ratings_update_state_1();
|
||||
@@ -1746,7 +1742,7 @@ static void ride_ratings_apply_first_length_penalty(
|
||||
|
||||
#pragma region Ride rating calculation functions
|
||||
|
||||
static void ride_ratings_calculate_spiral_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_spiral_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -1792,7 +1788,7 @@ static void ride_ratings_calculate_spiral_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_stand_up_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_stand_up_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -1830,7 +1826,7 @@ static void ride_ratings_calculate_stand_up_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_suspended_swinging_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_suspended_swinging_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -1870,7 +1866,7 @@ static void ride_ratings_calculate_suspended_swinging_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_inverted_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_inverted_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -1913,7 +1909,7 @@ static void ride_ratings_calculate_inverted_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_junior_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_junior_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -1951,7 +1947,7 @@ static void ride_ratings_calculate_junior_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_miniature_railway(Ride* ride)
|
||||
void ride_ratings_calculate_miniature_railway(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -1986,7 +1982,7 @@ static void ride_ratings_calculate_miniature_railway(Ride* ride)
|
||||
ride->sheltered_eighths = shelteredEighths.TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_monorail(Ride* ride)
|
||||
void ride_ratings_calculate_monorail(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2021,7 +2017,7 @@ static void ride_ratings_calculate_monorail(Ride* ride)
|
||||
ride->sheltered_eighths = shelteredEighths.TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_mini_suspended_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_mini_suspended_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2060,7 +2056,7 @@ static void ride_ratings_calculate_mini_suspended_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_boat_hire(Ride* ride)
|
||||
void ride_ratings_calculate_boat_hire(Ride* ride)
|
||||
{
|
||||
ride->unreliability_factor = 7;
|
||||
set_unreliability_factor(ride);
|
||||
@@ -2092,7 +2088,7 @@ static void ride_ratings_calculate_boat_hire(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_wooden_wild_mouse(Ride* ride)
|
||||
void ride_ratings_calculate_wooden_wild_mouse(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2133,7 +2129,7 @@ static void ride_ratings_calculate_wooden_wild_mouse(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_steeplechase(Ride* ride)
|
||||
void ride_ratings_calculate_steeplechase(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2173,7 +2169,7 @@ static void ride_ratings_calculate_steeplechase(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_car_ride(Ride* ride)
|
||||
void ride_ratings_calculate_car_ride(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2207,7 +2203,7 @@ static void ride_ratings_calculate_car_ride(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_launched_freefall(Ride* ride)
|
||||
void ride_ratings_calculate_launched_freefall(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2258,7 +2254,7 @@ static void ride_ratings_calculate_launched_freefall(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_bobsleigh_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_bobsleigh_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2296,7 +2292,7 @@ static void ride_ratings_calculate_bobsleigh_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_observation_tower(Ride* ride)
|
||||
void ride_ratings_calculate_observation_tower(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2326,7 +2322,7 @@ static void ride_ratings_calculate_observation_tower(Ride* ride)
|
||||
ride->excitement /= 4;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_looping_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_looping_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2372,7 +2368,7 @@ static void ride_ratings_calculate_looping_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_dinghy_slide(Ride* ride)
|
||||
void ride_ratings_calculate_dinghy_slide(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2410,7 +2406,7 @@ static void ride_ratings_calculate_dinghy_slide(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_mine_train_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_mine_train_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2450,7 +2446,7 @@ static void ride_ratings_calculate_mine_train_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_chairlift(Ride* ride)
|
||||
void ride_ratings_calculate_chairlift(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2492,7 +2488,7 @@ static void ride_ratings_calculate_chairlift(Ride* ride)
|
||||
ride->sheltered_eighths = shelteredEighths.TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_corkscrew_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_corkscrew_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2538,7 +2534,7 @@ static void ride_ratings_calculate_corkscrew_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_maze(Ride* ride)
|
||||
void ride_ratings_calculate_maze(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2564,7 +2560,7 @@ static void ride_ratings_calculate_maze(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_spiral_slide(Ride* ride)
|
||||
void ride_ratings_calculate_spiral_slide(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2593,7 +2589,7 @@ static void ride_ratings_calculate_spiral_slide(Ride* ride)
|
||||
ride->sheltered_eighths = 2;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_go_karts(Ride* ride)
|
||||
void ride_ratings_calculate_go_karts(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2634,7 +2630,7 @@ static void ride_ratings_calculate_go_karts(Ride* ride)
|
||||
ride->excitement /= 2;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_log_flume(Ride* ride)
|
||||
void ride_ratings_calculate_log_flume(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2666,7 +2662,7 @@ static void ride_ratings_calculate_log_flume(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_river_rapids(Ride* ride)
|
||||
void ride_ratings_calculate_river_rapids(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -2699,7 +2695,7 @@ static void ride_ratings_calculate_river_rapids(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_dodgems(Ride* ride)
|
||||
void ride_ratings_calculate_dodgems(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2734,7 +2730,7 @@ static void ride_ratings_calculate_dodgems(Ride* ride)
|
||||
ride->sheltered_eighths = 7;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_pirate_ship(Ride* ride)
|
||||
void ride_ratings_calculate_pirate_ship(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2759,7 +2755,7 @@ static void ride_ratings_calculate_pirate_ship(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_inverter_ship(Ride* ride)
|
||||
void ride_ratings_calculate_inverter_ship(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2784,25 +2780,25 @@ static void ride_ratings_calculate_inverter_ship(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_food_stall(Ride* ride)
|
||||
void ride_ratings_calculate_food_stall(Ride* ride)
|
||||
{
|
||||
ride->upkeep_cost = ride_compute_upkeep(ride);
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_INCOME;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_drink_stall(Ride* ride)
|
||||
void ride_ratings_calculate_drink_stall(Ride* ride)
|
||||
{
|
||||
ride->upkeep_cost = ride_compute_upkeep(ride);
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_INCOME;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_shop(Ride* ride)
|
||||
void ride_ratings_calculate_shop(Ride* ride)
|
||||
{
|
||||
ride->upkeep_cost = ride_compute_upkeep(ride);
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_INCOME;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_merry_go_round(Ride* ride)
|
||||
void ride_ratings_calculate_merry_go_round(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2824,19 +2820,19 @@ static void ride_ratings_calculate_merry_go_round(Ride* ride)
|
||||
ride->sheltered_eighths = 7;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_information_kiosk(Ride* ride)
|
||||
void ride_ratings_calculate_information_kiosk(Ride* ride)
|
||||
{
|
||||
ride->upkeep_cost = ride_compute_upkeep(ride);
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_INCOME;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_toilets(Ride* ride)
|
||||
void ride_ratings_calculate_toilets(Ride* ride)
|
||||
{
|
||||
ride->upkeep_cost = ride_compute_upkeep(ride);
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_INCOME;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_ferris_wheel(Ride* ride)
|
||||
void ride_ratings_calculate_ferris_wheel(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2858,7 +2854,7 @@ static void ride_ratings_calculate_ferris_wheel(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_motion_simulator(Ride* ride)
|
||||
void ride_ratings_calculate_motion_simulator(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2891,7 +2887,7 @@ static void ride_ratings_calculate_motion_simulator(Ride* ride)
|
||||
ride->sheltered_eighths = 7;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_3d_cinema(Ride* ride)
|
||||
void ride_ratings_calculate_3d_cinema(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2931,7 +2927,7 @@ static void ride_ratings_calculate_3d_cinema(Ride* ride)
|
||||
ride->sheltered_eighths |= 7;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_top_spin(Ride* ride)
|
||||
void ride_ratings_calculate_top_spin(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2973,7 +2969,7 @@ static void ride_ratings_calculate_top_spin(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_space_rings(Ride* ride)
|
||||
void ride_ratings_calculate_space_rings(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -2995,7 +2991,7 @@ static void ride_ratings_calculate_space_rings(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_reverse_freefall_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_reverse_freefall_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3025,7 +3021,7 @@ static void ride_ratings_calculate_reverse_freefall_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_lift(Ride* ride)
|
||||
void ride_ratings_calculate_lift(Ride* ride)
|
||||
{
|
||||
int32_t totalLength;
|
||||
|
||||
@@ -3058,7 +3054,7 @@ static void ride_ratings_calculate_lift(Ride* ride)
|
||||
ride->excitement /= 4;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_vertical_drop_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_vertical_drop_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3096,13 +3092,13 @@ static void ride_ratings_calculate_vertical_drop_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_cash_machine(Ride* ride)
|
||||
void ride_ratings_calculate_cash_machine(Ride* ride)
|
||||
{
|
||||
ride->upkeep_cost = ride_compute_upkeep(ride);
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_INCOME;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_twist(Ride* ride)
|
||||
void ride_ratings_calculate_twist(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -3124,7 +3120,7 @@ static void ride_ratings_calculate_twist(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_haunted_house(Ride* ride)
|
||||
void ride_ratings_calculate_haunted_house(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -3148,7 +3144,7 @@ static void ride_ratings_calculate_haunted_house(Ride* ride)
|
||||
ride->sheltered_eighths = 7;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_flying_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_flying_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3193,7 +3189,7 @@ static void ride_ratings_calculate_flying_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_virginia_reel(Ride* ride)
|
||||
void ride_ratings_calculate_virginia_reel(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3230,7 +3226,7 @@ static void ride_ratings_calculate_virginia_reel(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_splash_boats(Ride* ride)
|
||||
void ride_ratings_calculate_splash_boats(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3262,7 +3258,7 @@ static void ride_ratings_calculate_splash_boats(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_mini_helicopters(Ride* ride)
|
||||
void ride_ratings_calculate_mini_helicopters(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3296,7 +3292,7 @@ static void ride_ratings_calculate_mini_helicopters(Ride* ride)
|
||||
ride->sheltered_eighths = 6;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_lay_down_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_lay_down_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3346,7 +3342,7 @@ static void ride_ratings_calculate_lay_down_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_suspended_monorail(Ride* ride)
|
||||
void ride_ratings_calculate_suspended_monorail(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3381,7 +3377,7 @@ static void ride_ratings_calculate_suspended_monorail(Ride* ride)
|
||||
ride->sheltered_eighths = shelteredEighths.TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_reverser_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_reverser_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3429,7 +3425,7 @@ static void ride_ratings_calculate_reverser_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_heartline_twister_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_heartline_twister_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3469,7 +3465,7 @@ static void ride_ratings_calculate_heartline_twister_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_mini_golf(Ride* ride)
|
||||
void ride_ratings_calculate_mini_golf(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3507,13 +3503,13 @@ static void ride_ratings_calculate_mini_golf(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_first_aid(Ride* ride)
|
||||
void ride_ratings_calculate_first_aid(Ride* ride)
|
||||
{
|
||||
ride->upkeep_cost = ride_compute_upkeep(ride);
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_INCOME;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_circus_show(Ride* ride)
|
||||
void ride_ratings_calculate_circus_show(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -3537,7 +3533,7 @@ static void ride_ratings_calculate_circus_show(Ride* ride)
|
||||
ride->sheltered_eighths = 7;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_ghost_train(Ride* ride)
|
||||
void ride_ratings_calculate_ghost_train(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3570,7 +3566,7 @@ static void ride_ratings_calculate_ghost_train(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_twister_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_twister_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3616,7 +3612,7 @@ static void ride_ratings_calculate_twister_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_wooden_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_wooden_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3656,7 +3652,7 @@ static void ride_ratings_calculate_wooden_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_side_friction_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_side_friction_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3695,7 +3691,7 @@ static void ride_ratings_calculate_side_friction_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_wild_mouse(Ride* ride)
|
||||
void ride_ratings_calculate_wild_mouse(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3735,7 +3731,7 @@ static void ride_ratings_calculate_wild_mouse(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_multi_dimension_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_multi_dimension_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3780,7 +3776,7 @@ static void ride_ratings_calculate_multi_dimension_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_giga_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_giga_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3826,7 +3822,7 @@ static void ride_ratings_calculate_giga_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_roto_drop(Ride* ride)
|
||||
void ride_ratings_calculate_roto_drop(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3854,7 +3850,7 @@ static void ride_ratings_calculate_roto_drop(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_flying_saucers(Ride* ride)
|
||||
void ride_ratings_calculate_flying_saucers(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -3892,7 +3888,7 @@ static void ride_ratings_calculate_flying_saucers(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_crooked_house(Ride* ride)
|
||||
void ride_ratings_calculate_crooked_house(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -3916,7 +3912,7 @@ static void ride_ratings_calculate_crooked_house(Ride* ride)
|
||||
ride->sheltered_eighths = 7;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_monorail_cycles(Ride* ride)
|
||||
void ride_ratings_calculate_monorail_cycles(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3950,7 +3946,7 @@ static void ride_ratings_calculate_monorail_cycles(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_compact_inverted_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_compact_inverted_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -3993,7 +3989,7 @@ static void ride_ratings_calculate_compact_inverted_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_water_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_water_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -4034,7 +4030,7 @@ static void ride_ratings_calculate_water_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_air_powered_vertical_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_air_powered_vertical_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -4065,7 +4061,7 @@ static void ride_ratings_calculate_air_powered_vertical_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_inverted_hairpin_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_inverted_hairpin_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -4106,7 +4102,7 @@ static void ride_ratings_calculate_inverted_hairpin_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_magic_carpet(Ride* ride)
|
||||
void ride_ratings_calculate_magic_carpet(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -4131,7 +4127,7 @@ static void ride_ratings_calculate_magic_carpet(Ride* ride)
|
||||
ride->sheltered_eighths = 0;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_submarine_ride(Ride* ride)
|
||||
void ride_ratings_calculate_submarine_ride(Ride* ride)
|
||||
{
|
||||
ride->unreliability_factor = 7;
|
||||
set_unreliability_factor(ride);
|
||||
@@ -4156,7 +4152,7 @@ static void ride_ratings_calculate_submarine_ride(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_river_rafts(Ride* ride)
|
||||
void ride_ratings_calculate_river_rafts(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -4186,7 +4182,7 @@ static void ride_ratings_calculate_river_rafts(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_enterprise(Ride* ride)
|
||||
void ride_ratings_calculate_enterprise(Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_TESTED;
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_NO_RAW_STATS;
|
||||
@@ -4215,7 +4211,7 @@ static void ride_ratings_calculate_enterprise(Ride* ride)
|
||||
ride->sheltered_eighths = 3;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_inverted_impulse_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_inverted_impulse_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -4252,7 +4248,7 @@ static void ride_ratings_calculate_inverted_impulse_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_mini_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_mini_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -4291,7 +4287,7 @@ static void ride_ratings_calculate_mini_roller_coaster(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_mine_ride(Ride* ride)
|
||||
void ride_ratings_calculate_mine_ride(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -4327,7 +4323,7 @@ static void ride_ratings_calculate_mine_ride(Ride* ride)
|
||||
ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths;
|
||||
}
|
||||
|
||||
static void ride_ratings_calculate_lim_launched_roller_coaster(Ride* ride)
|
||||
void ride_ratings_calculate_lim_launched_roller_coaster(Ride* ride)
|
||||
{
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED))
|
||||
return;
|
||||
@@ -4377,104 +4373,9 @@ static void ride_ratings_calculate_lim_launched_roller_coaster(Ride* ride)
|
||||
|
||||
#pragma region Ride rating calculation function table
|
||||
|
||||
// rct2: 0x0097E050
|
||||
static const ride_ratings_calculation RideRatingsCalculateFuncTable[RIDE_TYPE_COUNT] = {
|
||||
ride_ratings_calculate_spiral_roller_coaster, // SPIRAL_ROLLER_COASTER
|
||||
ride_ratings_calculate_stand_up_roller_coaster, // STAND_UP_ROLLER_COASTER
|
||||
ride_ratings_calculate_suspended_swinging_coaster, // SUSPENDED_SWINGING_COASTER
|
||||
ride_ratings_calculate_inverted_roller_coaster, // INVERTED_ROLLER_COASTER
|
||||
ride_ratings_calculate_junior_roller_coaster, // JUNIOR_ROLLER_COASTER
|
||||
ride_ratings_calculate_miniature_railway, // MINIATURE_RAILWAY
|
||||
ride_ratings_calculate_monorail, // MONORAIL
|
||||
ride_ratings_calculate_mini_suspended_coaster, // MINI_SUSPENDED_COASTER
|
||||
ride_ratings_calculate_boat_hire, // BOAT_HIRE
|
||||
ride_ratings_calculate_wooden_wild_mouse, // WOODEN_WILD_MOUSE
|
||||
ride_ratings_calculate_steeplechase, // STEEPLECHASE
|
||||
ride_ratings_calculate_car_ride, // CAR_RIDE
|
||||
ride_ratings_calculate_launched_freefall, // LAUNCHED_FREEFALL
|
||||
ride_ratings_calculate_bobsleigh_coaster, // BOBSLEIGH_COASTER
|
||||
ride_ratings_calculate_observation_tower, // OBSERVATION_TOWER
|
||||
ride_ratings_calculate_looping_roller_coaster, // LOOPING_ROLLER_COASTER
|
||||
ride_ratings_calculate_dinghy_slide, // DINGHY_SLIDE
|
||||
ride_ratings_calculate_mine_train_coaster, // MINE_TRAIN_COASTER
|
||||
ride_ratings_calculate_chairlift, // CHAIRLIFT
|
||||
ride_ratings_calculate_corkscrew_roller_coaster, // CORKSCREW_ROLLER_COASTER
|
||||
ride_ratings_calculate_maze, // MAZE
|
||||
ride_ratings_calculate_spiral_slide, // SPIRAL_SLIDE
|
||||
ride_ratings_calculate_go_karts, // GO_KARTS
|
||||
ride_ratings_calculate_log_flume, // LOG_FLUME
|
||||
ride_ratings_calculate_river_rapids, // RIVER_RAPIDS
|
||||
ride_ratings_calculate_dodgems, // DODGEMS
|
||||
ride_ratings_calculate_pirate_ship, // PIRATE_SHIP
|
||||
ride_ratings_calculate_inverter_ship, // SWINGING_INVERTER_SHIP
|
||||
ride_ratings_calculate_food_stall, // FOOD_STALL
|
||||
ride_ratings_calculate_food_stall, // 1D
|
||||
ride_ratings_calculate_drink_stall, // DRINK_STALL
|
||||
ride_ratings_calculate_drink_stall, // 1F
|
||||
ride_ratings_calculate_shop, // SHOP
|
||||
ride_ratings_calculate_merry_go_round, // MERRY_GO_ROUND
|
||||
ride_ratings_calculate_shop, // 22
|
||||
ride_ratings_calculate_information_kiosk, // INFORMATION_KIOSK
|
||||
ride_ratings_calculate_toilets, // TOILETS
|
||||
ride_ratings_calculate_ferris_wheel, // FERRIS_WHEEL
|
||||
ride_ratings_calculate_motion_simulator, // MOTION_SIMULATOR
|
||||
ride_ratings_calculate_3d_cinema, // 3D_CINEMA
|
||||
ride_ratings_calculate_top_spin, // TOP_SPIN
|
||||
ride_ratings_calculate_space_rings, // SPACE_RINGS
|
||||
ride_ratings_calculate_reverse_freefall_coaster, // REVERSE_FREEFALL_COASTER
|
||||
ride_ratings_calculate_lift, // LIFT
|
||||
ride_ratings_calculate_vertical_drop_roller_coaster, // VERTICAL_DROP_ROLLER_COASTER
|
||||
ride_ratings_calculate_cash_machine, // CASH_MACHINE
|
||||
ride_ratings_calculate_twist, // TWIST
|
||||
ride_ratings_calculate_haunted_house, // HAUNTED_HOUSE
|
||||
ride_ratings_calculate_first_aid, // FIRST_AID
|
||||
ride_ratings_calculate_circus_show, // CIRCUS_SHOW
|
||||
ride_ratings_calculate_ghost_train, // GHOST_TRAIN
|
||||
ride_ratings_calculate_twister_roller_coaster, // TWISTER_ROLLER_COASTER
|
||||
ride_ratings_calculate_wooden_roller_coaster, // WOODEN_ROLLER_COASTER
|
||||
ride_ratings_calculate_side_friction_roller_coaster, // SIDE_FRICTION_ROLLER_COASTER
|
||||
ride_ratings_calculate_wild_mouse, // WILD_MOUSE
|
||||
ride_ratings_calculate_multi_dimension_roller_coaster, // MULTI_DIMENSION_ROLLER_COASTER
|
||||
ride_ratings_calculate_multi_dimension_roller_coaster, // 38
|
||||
ride_ratings_calculate_flying_roller_coaster, // FLYING_ROLLER_COASTER
|
||||
ride_ratings_calculate_flying_roller_coaster, // 3A
|
||||
ride_ratings_calculate_virginia_reel, // VIRGINIA_REEL
|
||||
ride_ratings_calculate_splash_boats, // SPLASH_BOATS
|
||||
ride_ratings_calculate_mini_helicopters, // MINI_HELICOPTERS
|
||||
ride_ratings_calculate_lay_down_roller_coaster, // LAY_DOWN_ROLLER_COASTER
|
||||
ride_ratings_calculate_suspended_monorail, // SUSPENDED_MONORAIL
|
||||
ride_ratings_calculate_lay_down_roller_coaster, // 40
|
||||
ride_ratings_calculate_reverser_roller_coaster, // REVERSER_ROLLER_COASTER
|
||||
ride_ratings_calculate_heartline_twister_coaster, // HEARTLINE_TWISTER_COASTER
|
||||
ride_ratings_calculate_mini_golf, // MINI_GOLF
|
||||
ride_ratings_calculate_giga_coaster, // GIGA_COASTER
|
||||
ride_ratings_calculate_roto_drop, // ROTO_DROP
|
||||
ride_ratings_calculate_flying_saucers, // FLYING_SAUCERS
|
||||
ride_ratings_calculate_crooked_house, // CROOKED_HOUSE
|
||||
ride_ratings_calculate_monorail_cycles, // MONORAIL_CYCLES
|
||||
ride_ratings_calculate_compact_inverted_coaster, // COMPACT_INVERTED_COASTER
|
||||
ride_ratings_calculate_water_coaster, // WATER_COASTER
|
||||
ride_ratings_calculate_air_powered_vertical_coaster, // AIR_POWERED_VERTICAL_COASTER
|
||||
ride_ratings_calculate_inverted_hairpin_coaster, // INVERTED_HAIRPIN_COASTER
|
||||
ride_ratings_calculate_magic_carpet, // MAGIC_CARPET
|
||||
ride_ratings_calculate_submarine_ride, // SUBMARINE_RIDE
|
||||
ride_ratings_calculate_river_rafts, // RIVER_RAFTS
|
||||
nullptr, // 50
|
||||
ride_ratings_calculate_enterprise, // ENTERPRISE
|
||||
nullptr, // 52
|
||||
nullptr, // 53
|
||||
nullptr, // 54
|
||||
nullptr, // 55
|
||||
ride_ratings_calculate_inverted_impulse_coaster, // INVERTED_IMPULSE_COASTER
|
||||
ride_ratings_calculate_mini_roller_coaster, // MINI_ROLLER_COASTER
|
||||
ride_ratings_calculate_mine_ride, // MINE_RIDE
|
||||
nullptr, // 59
|
||||
ride_ratings_calculate_lim_launched_roller_coaster, // LIM_LAUNCHED_ROLLER_COASTER
|
||||
};
|
||||
|
||||
static ride_ratings_calculation ride_ratings_get_calculate_func(uint8_t rideType)
|
||||
ride_ratings_calculation ride_ratings_get_calculate_func(uint8_t rideType)
|
||||
{
|
||||
return RideRatingsCalculateFuncTable[rideType];
|
||||
return RideTypeDescriptors[rideType].RatingsCalculationFunction;
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
@@ -60,3 +60,86 @@ extern RideRatingCalculationData gRideRatingsCalcData;
|
||||
|
||||
void ride_ratings_update_ride(const Ride& ride);
|
||||
void ride_ratings_update_all();
|
||||
|
||||
using ride_ratings_calculation = void (*)(Ride* ride);
|
||||
ride_ratings_calculation ride_ratings_get_calculate_func(uint8_t rideType);
|
||||
|
||||
void ride_ratings_calculate_spiral_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_stand_up_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_suspended_swinging_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_inverted_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_junior_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_miniature_railway(Ride* ride);
|
||||
void ride_ratings_calculate_monorail(Ride* ride);
|
||||
void ride_ratings_calculate_mini_suspended_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_boat_hire(Ride* ride);
|
||||
void ride_ratings_calculate_wooden_wild_mouse(Ride* ride);
|
||||
void ride_ratings_calculate_steeplechase(Ride* ride);
|
||||
void ride_ratings_calculate_car_ride(Ride* ride);
|
||||
void ride_ratings_calculate_launched_freefall(Ride* ride);
|
||||
void ride_ratings_calculate_bobsleigh_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_observation_tower(Ride* ride);
|
||||
void ride_ratings_calculate_looping_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_dinghy_slide(Ride* ride);
|
||||
void ride_ratings_calculate_mine_train_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_chairlift(Ride* ride);
|
||||
void ride_ratings_calculate_corkscrew_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_maze(Ride* ride);
|
||||
void ride_ratings_calculate_spiral_slide(Ride* ride);
|
||||
void ride_ratings_calculate_go_karts(Ride* ride);
|
||||
void ride_ratings_calculate_log_flume(Ride* ride);
|
||||
void ride_ratings_calculate_river_rapids(Ride* ride);
|
||||
void ride_ratings_calculate_dodgems(Ride* ride);
|
||||
void ride_ratings_calculate_pirate_ship(Ride* ride);
|
||||
void ride_ratings_calculate_inverter_ship(Ride* ride);
|
||||
void ride_ratings_calculate_food_stall(Ride* ride);
|
||||
void ride_ratings_calculate_shop(Ride* ride);
|
||||
void ride_ratings_calculate_merry_go_round(Ride* ride);
|
||||
void ride_ratings_calculate_information_kiosk(Ride* ride);
|
||||
void ride_ratings_calculate_toilets(Ride* ride);
|
||||
void ride_ratings_calculate_ferris_wheel(Ride* ride);
|
||||
void ride_ratings_calculate_motion_simulator(Ride* ride);
|
||||
void ride_ratings_calculate_3d_cinema(Ride* ride);
|
||||
void ride_ratings_calculate_top_spin(Ride* ride);
|
||||
void ride_ratings_calculate_space_rings(Ride* ride);
|
||||
void ride_ratings_calculate_reverse_freefall_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_lift(Ride* ride);
|
||||
void ride_ratings_calculate_vertical_drop_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_cash_machine(Ride* ride);
|
||||
void ride_ratings_calculate_twist(Ride* ride);
|
||||
void ride_ratings_calculate_haunted_house(Ride* ride);
|
||||
void ride_ratings_calculate_first_aid(Ride* ride);
|
||||
void ride_ratings_calculate_circus_show(Ride* ride);
|
||||
void ride_ratings_calculate_ghost_train(Ride* ride);
|
||||
void ride_ratings_calculate_twister_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_wooden_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_side_friction_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_wild_mouse(Ride* ride);
|
||||
void ride_ratings_calculate_multi_dimension_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_flying_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_virginia_reel(Ride* ride);
|
||||
void ride_ratings_calculate_splash_boats(Ride* ride);
|
||||
void ride_ratings_calculate_mini_helicopters(Ride* ride);
|
||||
void ride_ratings_calculate_lay_down_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_suspended_monorail(Ride* ride);
|
||||
void ride_ratings_calculate_reverser_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_heartline_twister_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_mini_golf(Ride* ride);
|
||||
void ride_ratings_calculate_giga_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_roto_drop(Ride* ride);
|
||||
void ride_ratings_calculate_flying_saucers(Ride* ride);
|
||||
void ride_ratings_calculate_crooked_house(Ride* ride);
|
||||
void ride_ratings_calculate_monorail_cycles(Ride* ride);
|
||||
void ride_ratings_calculate_compact_inverted_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_water_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_air_powered_vertical_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_inverted_hairpin_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_magic_carpet(Ride* ride);
|
||||
void ride_ratings_calculate_submarine_ride(Ride* ride);
|
||||
void ride_ratings_calculate_river_rafts(Ride* ride);
|
||||
void ride_ratings_calculate_enterprise(Ride* ride);
|
||||
void ride_ratings_calculate_inverted_impulse_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_mini_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_mine_ride(Ride* ride);
|
||||
void ride_ratings_calculate_lim_launched_roller_coaster(Ride* ride);
|
||||
void ride_ratings_calculate_drink_stall(Ride* ride);
|
||||
|
||||
@@ -32,6 +32,7 @@ constexpr const RideTypeDescriptor AirPoweredVerticalCoasterRTD =
|
||||
SET_FIELD(Heights, { 255, 32, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_air_powered_vertical_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 44, 66, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 90, 20, 0, 0, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 200, 0, 45, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor BobsleighCoasterRTD =
|
||||
SET_FIELD(Heights, { 19, 24, 5, 7, }),
|
||||
SET_FIELD(MaxMass, 25),
|
||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_bobsleigh_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 80, 5, 45, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor CompactInvertedCoasterRTD =
|
||||
SET_FIELD(Heights, { 27, 40, 29, 8, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_compact_inverted_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 13, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 100, 5, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor CorkscrewRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 28, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { SoundId::LiftArrow, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_corkscrew_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 105, 5, 50, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 30, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 35),
|
||||
SET_FIELD(LiftData, { SoundId::LiftBM, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_flying_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 49, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 125, 5, 50, }),
|
||||
@@ -66,6 +67,7 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterAltRTD =
|
||||
SET_FIELD(Heights, { 30, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 35),
|
||||
SET_FIELD(LiftData, { SoundId::LiftBM, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_flying_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 49, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 125, 5, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor GigaCoasterRTD =
|
||||
SET_FIELD(Heights, { 86, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 31),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 5, 8 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_giga_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 51, 32, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 10, 20, 80, 12, 3, 40 }),
|
||||
SET_FIELD(BuildCosts, { 120, 5, 55, }),
|
||||
|
||||
@@ -33,6 +33,7 @@ constexpr const RideTypeDescriptor HeartlineTwisterCoasterRTD =
|
||||
SET_FIELD(Heights, { 22, 24, 15, 9, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_heartline_twister_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 47, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 135, 7, 30, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor InvertedHairpinCoasterRTD =
|
||||
SET_FIELD(Heights, { 16, 24, 24, 7, }),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { SoundId::LiftWildMouse, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_inverted_hairpin_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 30 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 9, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 67, 4, 40, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor InvertedImpulseCoasterRTD =
|
||||
SET_FIELD(Heights, { 45, 40, 29, 8, }),
|
||||
SET_FIELD(MaxMass, 23),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 7 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_inverted_impulse_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 180, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 125, 5, 25, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor InvertedRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 38, 40, 29, 8, }),
|
||||
SET_FIELD(MaxMass, 27),
|
||||
SET_FIELD(LiftData, { SoundId::LiftBM, 5, 7 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_inverted_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 13, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 110, 5, 50, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor JuniorRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 15, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_junior_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 45, 4, 40, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor LIMLaunchedRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 35, 24, 5, 7, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_lim_launched_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 42, 20, 80, 9, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 95, 5, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor LayDownRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 26, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 25),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_lay_down_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 49, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 107, 5, 50, }),
|
||||
@@ -62,6 +63,7 @@ constexpr const RideTypeDescriptor LayDownRollerCoasterAltRTD =
|
||||
SET_FIELD(Heights, { 26, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 25),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_lay_down_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 49, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 107, 5, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor LoopingRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 35, 24, 5, 7, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_looping_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 90, 5, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor MineRideRTD =
|
||||
SET_FIELD(Heights, { 13, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 27),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_mine_ride),
|
||||
SET_FIELD(RatingsMultipliers, { 60, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 85, 4, 40, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor MineTrainCoasterRTD =
|
||||
SET_FIELD(Heights, { 21, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { SoundId::LiftArrow, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_mine_train_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 82, 6, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor MiniRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 16, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 10),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_mini_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 35, 20, 80, 8, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 65, 4, 40, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor MiniSuspendedCoasterRTD =
|
||||
SET_FIELD(Heights, { 10, 24, 24, 8, }),
|
||||
SET_FIELD(MaxMass, 3),
|
||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_mini_suspended_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 60, 5, 40, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor MultiDimensionRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 40, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 78),
|
||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_multi_dimension_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 75, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 180, 5, 50, }),
|
||||
@@ -63,6 +64,7 @@ constexpr const RideTypeDescriptor MultiDimensionRollerCoasterAltRTD =
|
||||
SET_FIELD(Heights, { 40, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 78),
|
||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_multi_dimension_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 75, 20, 90, 11, 3, 15 }),
|
||||
SET_FIELD(BuildCosts, { 180, 5, 50, }),
|
||||
|
||||
@@ -32,6 +32,7 @@ constexpr const RideTypeDescriptor ReverseFreefallCoasterRTD =
|
||||
SET_FIELD(Heights, { 255, 32, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_reverse_freefall_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 44, 66, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 80, 20, 0, 0, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 200, 0, 45, }),
|
||||
|
||||
@@ -33,6 +33,7 @@ constexpr const RideTypeDescriptor ReverserRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 18, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 3, 4 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_reverser_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 48, 28, 7 }),
|
||||
SET_FIELD(UpkeepCosts, { 39, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 55, 6, 37, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor SideFrictionRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 15, 24, 4, 11, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { SoundId::LiftWood, 3, 4 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_side_friction_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 48, 28, 7 }),
|
||||
SET_FIELD(UpkeepCosts, { 39, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 55, 6, 37, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor SpiralRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 19, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 31),
|
||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 7, 7 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_spiral_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 41, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 70, 5, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor StandUpRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 25, 24, 9, 11, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_stand_up_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 100, 5, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor SteelWildMouseRTD =
|
||||
SET_FIELD(Heights, { 16, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { SoundId::LiftWildMouse, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_wild_mouse),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 30 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 9, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 55, 4, 40, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor SteeplechaseRTD =
|
||||
SET_FIELD(Heights, { 14, 24, 7, 7, }),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_steeplechase),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 57, 4, 40, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor SuspendedSwingingCoasterRTD =
|
||||
SET_FIELD(Heights, { 24, 40, 29, 8, }),
|
||||
SET_FIELD(MaxMass, 26),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_suspended_swinging_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 20, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 95, 5, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor TwisterRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 54, 24, 8, 9, }),
|
||||
SET_FIELD(MaxMass, 31),
|
||||
SET_FIELD(LiftData, { SoundId::LiftBM, 5, 8 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_twister_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 36, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 43, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 120, 5, 55, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor VerticalDropCoasterRTD =
|
||||
SET_FIELD(Heights, { 53, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 25),
|
||||
SET_FIELD(LiftData, { SoundId::LiftBM, 4, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_vertical_drop_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 38, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 44, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 120, 5, 42, }),
|
||||
|
||||
@@ -33,6 +33,7 @@ constexpr const RideTypeDescriptor VirginiaReelRTD =
|
||||
SET_FIELD(Heights, { 14, 24, 6, 7, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 3, 4 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_virginia_reel),
|
||||
SET_FIELD(RatingsMultipliers, { 30, 15, 25 }),
|
||||
SET_FIELD(UpkeepCosts, { 39, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 53, 6, 25, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor WaterCoasterRTD =
|
||||
SET_FIELD(Heights, { 18, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 13),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_water_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 60, 20, 80, 8, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 55, 4, 40, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor WoodenRollerCoasterRTD =
|
||||
SET_FIELD(Heights, { 41, 24, 8, 11, }),
|
||||
SET_FIELD(MaxMass, 19),
|
||||
SET_FIELD(LiftData, { SoundId::LiftWood, 5, 7 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_wooden_roller_coaster),
|
||||
SET_FIELD(RatingsMultipliers, { 52, 33, 8 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 75, 7, 50, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor WoodenWildMouseRTD =
|
||||
SET_FIELD(Heights, { 14, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 4),
|
||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_wooden_wild_mouse),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 30 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 9, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 50, 6, 40, }),
|
||||
|
||||
@@ -37,6 +37,7 @@ constexpr const RideTypeDescriptor CarRideRTD =
|
||||
SET_FIELD(Heights, { 6, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 2),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_car_ride),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 10, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 70, 20, 0, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 25, 5, 30, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor CircusRTD =
|
||||
SET_FIELD(Heights, { 12, 128, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_circus_show),
|
||||
SET_FIELD(RatingsMultipliers, { 20, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 125, 2, 1, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor CrookedHouseRTD =
|
||||
SET_FIELD(Heights, { 16, 96, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_crooked_house),
|
||||
SET_FIELD(RatingsMultipliers, { 15, 8, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 30, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 65, 2, 1, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor DodgemsRTD =
|
||||
SET_FIELD(Heights, { 9, 48, 2, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_dodgems),
|
||||
SET_FIELD(RatingsMultipliers, { 40, 20, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 5, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 55, 2, 1, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor FerrisWheelRTD =
|
||||
SET_FIELD(Heights, { 16, 176, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_ferris_wheel),
|
||||
SET_FIELD(RatingsMultipliers, { 60, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 225, 2, 1, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor FlyingSaucersRTD =
|
||||
SET_FIELD(Heights, { 9, 48, 2, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_flying_saucers),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 25, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 90, 1, 0, 5, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 70, 4, 1, }),
|
||||
|
||||
@@ -37,6 +37,7 @@ constexpr const RideTypeDescriptor GhostTrainRTD =
|
||||
SET_FIELD(Heights, { 8, 24, 6, 7, }),
|
||||
SET_FIELD(MaxMass, 2),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_ghost_train),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 10, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 80, 20, 0, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 26, 5, 30, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor HauntedHouseRTD =
|
||||
SET_FIELD(Heights, { 16, 160, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_haunted_house),
|
||||
SET_FIELD(RatingsMultipliers, { 20, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 85, 2, 1, }),
|
||||
|
||||
@@ -33,6 +33,7 @@ constexpr const RideTypeDescriptor MazeRTD =
|
||||
SET_FIELD(Heights, { 6, 24, 0, 1, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_maze),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 55, 2, 8, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor MerryGoRoundRTD =
|
||||
SET_FIELD(Heights, { 12, 64, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_merry_go_round),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 115, 2, 1, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor MiniGolfRTD =
|
||||
SET_FIELD(Heights, { 7, 32, 2, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_mini_golf),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 30, 20, 80, 11, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 50, 7, 20, }),
|
||||
|
||||
@@ -37,6 +37,7 @@ constexpr const RideTypeDescriptor MiniHelicoptersRTD =
|
||||
SET_FIELD(Heights, { 7, 24, 4, 7, }),
|
||||
SET_FIELD(MaxMass, 2),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_mini_helicopters),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 10, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 70, 20, 0, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 25, 5, 30, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor MonorailCyclesRTD =
|
||||
SET_FIELD(Heights, { 5, 24, 8, 7, }),
|
||||
SET_FIELD(MaxMass, 2),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_monorail_cycles),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 10, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 47, 20, 0, 8, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 20, 5, 30, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor ObservationTowerRTD =
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_observation_tower),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 10, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 37, 0, 4, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor SpaceRingsRTD =
|
||||
SET_FIELD(Heights, { 16, 48, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_space_rings),
|
||||
SET_FIELD(RatingsMultipliers, { 12, 4, 4 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 72, 2, 1, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor SpiralSlideRTD =
|
||||
SET_FIELD(Heights, { 15, 128, 0, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_spiral_slide),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 165, 2, 1, }),
|
||||
|
||||
@@ -33,6 +33,7 @@ constexpr const RideTypeDescriptor CashMachineRTD =
|
||||
SET_FIELD(Heights, { 12, 32, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_cash_machine),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 400, 0, 1, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor DrinkStallRTD =
|
||||
SET_FIELD(Heights, { 12, 64, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_drink_stall),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 500, 0, 1, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor FirstAidRTD =
|
||||
SET_FIELD(Heights, { 12, 48, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_first_aid),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 45, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 500, 0, 1, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor FoodStallRTD =
|
||||
SET_FIELD(Heights, { 12, 64, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_food_stall),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 600, 0, 1, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor InformationKioskRTD =
|
||||
SET_FIELD(Heights, { 12, 48, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_information_kiosk),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 500, 0, 1, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor ShopRTD =
|
||||
SET_FIELD(Heights, { 12, 64, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_shop),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 400, 0, 1, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor ToiletsRTD =
|
||||
SET_FIELD(Heights, { 12, 32, 0, 0, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_toilets),
|
||||
SET_FIELD(RatingsMultipliers, { 0, 0, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 450, 0, 1, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor CinemaRTD =
|
||||
SET_FIELD(Heights, { 12, 128, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_3d_cinema),
|
||||
SET_FIELD(RatingsMultipliers, { 20, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 140, 2, 1, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor EnterpriseRTD =
|
||||
SET_FIELD(Heights, { 16, 160, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_enterprise),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 100, 2, 1, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor GoKartsRTD =
|
||||
SET_FIELD(Heights, { 7, 24, 2, 1, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_go_karts),
|
||||
SET_FIELD(RatingsMultipliers, { 120, 20, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 8, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 62, 4, 20, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor LaunchedFreefallRTD =
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_launched_freefall),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 50, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 10, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 50, 0, 4, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor MagicCarpetRTD =
|
||||
SET_FIELD(Heights, { 15, 176, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_magic_carpet),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 198, 2, 1, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor MotionSimulatorRTD =
|
||||
SET_FIELD(Heights, { 12, 64, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_motion_simulator),
|
||||
SET_FIELD(RatingsMultipliers, { 24, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 220, 2, 1, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor RotoDropRTD =
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_roto_drop),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 50, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 10, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 55, 0, 4, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor SwingingInverterShipRTD =
|
||||
SET_FIELD(Heights, { 15, 176, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_inverter_ship),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 212, 2, 1, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor SwingingShipRTD =
|
||||
SET_FIELD(Heights, { 12, 112, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_pirate_ship),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 155, 2, 1, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor TopSpinRTD =
|
||||
SET_FIELD(Heights, { 16, 112, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_top_spin),
|
||||
SET_FIELD(RatingsMultipliers, { 24, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 145, 2, 1, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor TwistRTD =
|
||||
SET_FIELD(Heights, { 12, 64, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_twist),
|
||||
SET_FIELD(RatingsMultipliers, { 40, 20, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 90, 2, 1, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor ChairliftRTD =
|
||||
SET_FIELD(Heights, { 40, 32, 28, 2, }),
|
||||
SET_FIELD(MaxMass, 18),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_chairlift),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 60, 20, 0, 4, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 65, 1, 30, }),
|
||||
|
||||
@@ -35,6 +35,7 @@ constexpr const RideTypeDescriptor LiftRTD =
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
SET_FIELD(MaxMass, 15),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_lift),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 10, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 10, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 39, 0, 4, }),
|
||||
|
||||
@@ -37,6 +37,7 @@ constexpr const RideTypeDescriptor MiniatureRailwayRTD =
|
||||
SET_FIELD(Heights, { 7, 32, 5, 9, }),
|
||||
SET_FIELD(MaxMass, 39),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_miniature_railway),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, -10 }),
|
||||
SET_FIELD(UpkeepCosts, { 60, 20, 0, 10, 3, 5 }),
|
||||
SET_FIELD(BuildCosts, { 35, 6, 50, }),
|
||||
|
||||
@@ -37,6 +37,7 @@ constexpr const RideTypeDescriptor MonorailRTD =
|
||||
SET_FIELD(Heights, { 8, 32, 8, 9, }),
|
||||
SET_FIELD(MaxMass, 78),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_monorail),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, -10 }),
|
||||
SET_FIELD(UpkeepCosts, { 65, 20, 0, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 42, 5, 50, }),
|
||||
|
||||
@@ -38,6 +38,7 @@ constexpr const RideTypeDescriptor SuspendedMonorailRTD =
|
||||
SET_FIELD(Heights, { 12, 40, 32, 8, }),
|
||||
SET_FIELD(MaxMass, 78),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_suspended_monorail),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, -10 }),
|
||||
SET_FIELD(UpkeepCosts, { 70, 20, 0, 10, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 65, 5, 50, }),
|
||||
|
||||
@@ -34,6 +34,7 @@ constexpr const RideTypeDescriptor BoatHireRTD =
|
||||
SET_FIELD(Heights, { 255, 16, 0, 3, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_boat_hire),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 4, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 55, 5, 5, }),
|
||||
|
||||
@@ -38,6 +38,7 @@ constexpr const RideTypeDescriptor DinghySlideRTD =
|
||||
SET_FIELD(Heights, { 15, 24, 5, 7, }),
|
||||
SET_FIELD(MaxMass, 5),
|
||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_dinghy_slide),
|
||||
SET_FIELD(RatingsMultipliers, { 50, 30, 10 }),
|
||||
SET_FIELD(UpkeepCosts, { 40, 20, 80, 4, 3, 10 }),
|
||||
SET_FIELD(BuildCosts, { 40, 4, 40, }),
|
||||
|
||||
@@ -37,6 +37,7 @@ constexpr const RideTypeDescriptor LogFlumeRTD =
|
||||
SET_FIELD(Heights, { 9, 24, 7, 9, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_log_flume),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 34, 6 }),
|
||||
SET_FIELD(UpkeepCosts, { 80, 20, 0, 9, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 45, 5, 40, }),
|
||||
|
||||
@@ -37,6 +37,7 @@ constexpr const RideTypeDescriptor RiverRaftsRTD =
|
||||
SET_FIELD(Heights, { 12, 24, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_river_rafts),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 34, 6 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 20, 0, 9, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 40, 5, 30, }),
|
||||
|
||||
@@ -38,6 +38,7 @@ constexpr const RideTypeDescriptor RiverRapidsRTD =
|
||||
SET_FIELD(Heights, { 9, 32, 14, 15, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_river_rapids),
|
||||
SET_FIELD(RatingsMultipliers, { 72, 26, 6 }),
|
||||
SET_FIELD(UpkeepCosts, { 82, 20, 0, 10, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 62, 6, 40, }),
|
||||
|
||||
@@ -37,6 +37,7 @@ constexpr const RideTypeDescriptor SplashBoatsRTD =
|
||||
SET_FIELD(Heights, { 16, 24, 7, 11, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_splash_boats),
|
||||
SET_FIELD(RatingsMultipliers, { 80, 34, 6 }),
|
||||
SET_FIELD(UpkeepCosts, { 70, 20, 0, 9, 0, 10 }),
|
||||
SET_FIELD(BuildCosts, { 57, 5, 30, }),
|
||||
|
||||
@@ -36,6 +36,7 @@ constexpr const RideTypeDescriptor SubmarineRideRTD =
|
||||
SET_FIELD(Heights, { 255, 16, 0, 3, }),
|
||||
SET_FIELD(MaxMass, 255),
|
||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||
SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_submarine_ride),
|
||||
SET_FIELD(RatingsMultipliers, { 70, 6, 0 }),
|
||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 4, 0, 0 }),
|
||||
SET_FIELD(BuildCosts, { 70, 0, 5, }),
|
||||
|
||||
Reference in New Issue
Block a user