diff --git a/data/language/english_uk.txt b/data/language/english_uk.txt index 0872b0d03b..83ed7fc69b 100644 --- a/data/language/english_uk.txt +++ b/data/language/english_uk.txt @@ -3475,7 +3475,7 @@ STR_5133 :{SMALLFONT}{BLACK}Adjust smaller area of land rights STR_5134 :{SMALLFONT}{BLACK}Adjust larger area of land rights STR_5135 :{SMALLFONT}{BLACK}Buy land rights and construction rights STR_5136 :Land rights -STR_5137 :Allow lift hill and launch speeds{NEWLINE}up to {VELOCITY} +STR_5137 :Unlock operating limits STR_5138 :{SMALLFONT}{WINDOW_COLOUR_2}{STRINGID} STR_5139 :{WHITE}{STRINGID} STR_5140 :Disable brakes failure @@ -3923,6 +3923,7 @@ STR_5581 :Show FPS STR_5582 :Trap mouse cursor in window STR_5583 :{COMMA1DP16}ms{POWERNEGATIVEONE} STR_5584 :SI +STR_5585 :{SMALLFONT}{BLACK}Unlocks ride operation limits, allowing for things like {VELOCITY} lift hills ##################### # Rides/attractions # diff --git a/src/localisation/string_ids.h b/src/localisation/string_ids.h index a684ad72ea..3ed880519a 100644 --- a/src/localisation/string_ids.h +++ b/src/localisation/string_ids.h @@ -1892,7 +1892,7 @@ enum { STR_CHEAT_RENEW_RIDES = 5123, STR_CHEAT_MAKE_DESTRUCTABLE = 5125, STR_CHEAT_FIX_ALL_RIDES = 5132, - STR_CHEAT_410_HILL_LIFT = 5137, + STR_CHEAT_UNLOCK_OPERATING_LIMITS = 5137, STR_CHEAT_DISABLE_BRAKES_FAILURE = 5140, STR_CHEAT_DISABLE_BREAKDOWNS = 5141, STR_CHEATS_BUTTON_ON_TOOLBAR = 5147, @@ -2190,6 +2190,8 @@ enum { STR_UNIT_SUFFIX_METRES_PER_SECOND = 5583, STR_SI = 5584, + STR_CHEAT_UNLOCK_OPERATING_LIMITS_TIP = 5585, + // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working STR_COUNT = 32768 }; diff --git a/src/windows/cheats.c b/src/windows/cheats.c index e905ac7577..6fc5ff6f49 100644 --- a/src/windows/cheats.c +++ b/src/windows/cheats.c @@ -256,7 +256,7 @@ static rct_widget window_cheats_rides_widgets[] = { { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(0), HPL(0), STR_CHEAT_RENEW_RIDES, STR_NONE}, // Renew rides { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(1), HPL(1), STR_CHEAT_MAKE_DESTRUCTABLE, STR_NONE}, // Make destructable { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(1), HPL(1), STR_CHEAT_FIX_ALL_RIDES, STR_NONE }, // Fix all rides - { WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(11), OHPL(11) + 8, STR_CHEAT_410_HILL_LIFT, STR_NONE }, // 410 km/h lift hill + { WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(11), OHPL(11) + 8, STR_CHEAT_UNLOCK_OPERATING_LIMITS, STR_CHEAT_UNLOCK_OPERATING_LIMITS_TIP },// 410 km/h lift hill etc. { WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(9), OHPL(9), STR_CHEAT_DISABLE_BRAKES_FAILURE, STR_NONE }, // Disable brakes failure { WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(10), OHPL(10), STR_CHEAT_DISABLE_BREAKDOWNS, STR_NONE }, // Disable all breakdowns { WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(8), OHPL(8), STR_CHEAT_BUILD_IN_PAUSE_MODE, STR_NONE }, // Build in pause mode diff --git a/src/windows/ride.c b/src/windows/ride.c index a552d2fe2f..49cdf122b0 100644 --- a/src/windows/ride.c +++ b/src/windows/ride.c @@ -2764,7 +2764,10 @@ static void window_ride_mode_tweak_decrease(rct_window *w) { rct_ride *ride = GET_RIDE(w->number); uint8 value = ride->operation_option; - if (value > RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 4, uint8)) + //fast_lift_hill is the cheat that allows maxing many limits on the Operating tab. + uint8 min_value = gConfigCheat.fast_lift_hill ? 0 : RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 4, uint8); + + if (value > min_value) value -= ride->mode == RIDE_MODE_BUMPERCAR ? 10 : 1; window_ride_mode_tweak_set(w, value); @@ -2918,7 +2921,7 @@ static void window_ride_operating_resize(rct_window *w) static void window_ride_operating_mousedown(int widgetIndex, rct_window *w, rct_widget *widget) { rct_ride *ride = GET_RIDE(w->number); - uint8 max_lift_hill_speed; + uint8 parameter_check; switch (widgetIndex) { case WIDX_MODE_TWEAK_INCREASE: @@ -2928,16 +2931,12 @@ static void window_ride_operating_mousedown(int widgetIndex, rct_window *w, rct_ window_ride_mode_tweak_decrease(w); break; case WIDX_LIFT_HILL_SPEED_INCREASE: - - if(gConfigCheat.fast_lift_hill) - max_lift_hill_speed = 255; - else - max_lift_hill_speed = RCT2_GLOBAL(0x0097D7CA + (ride->type * 4), uint8); - - set_operating_setting(w->number, 8, min(ride->lift_hill_speed + 1, max_lift_hill_speed)); + parameter_check = gConfigCheat.fast_lift_hill ? 255 : RCT2_GLOBAL(0x0097D7CA + (ride->type * 4), uint8); + set_operating_setting(w->number, 8, min(ride->lift_hill_speed + 1, parameter_check)); break; case WIDX_LIFT_HILL_SPEED_DECREASE: - set_operating_setting(w->number, 8, max(RCT2_GLOBAL(0x0097D7C9 + (ride->type * 4), uint8), ride->lift_hill_speed - 1)); + parameter_check = gConfigCheat.fast_lift_hill ? 0 : RCT2_GLOBAL(0x0097D7C9 + (ride->type * 4), uint8); + set_operating_setting(w->number, 8, max(ride->lift_hill_speed - 1, parameter_check)); break; case WIDX_MINIMUM_LENGTH_INCREASE: set_operating_setting(w->number, 2, min(ride->min_waiting_time + 1, 250)); @@ -2958,10 +2957,11 @@ static void window_ride_operating_mousedown(int widgetIndex, rct_window *w, rct_ window_ride_load_dropdown(w, widget); break; case WIDX_OPERATE_NUMBER_OF_CIRCUITS_INCREASE: - set_operating_setting(w->number, 9, min(ride->num_circuits + 1, 20)); + parameter_check = gConfigCheat.fast_lift_hill ? 255 : 20; + set_operating_setting(w->number, 9, min(ride->num_circuits + 1, parameter_check)); break; case WIDX_OPERATE_NUMBER_OF_CIRCUITS_DECREASE: - set_operating_setting(w->number, 9, max(1, ride->num_circuits - 1)); + set_operating_setting(w->number, 9, max(ride->num_circuits - 1, 1)); break; } }