diff --git a/src/cheats.c b/src/cheats.c index c6ced49833..820bdda7eb 100644 --- a/src/cheats.c +++ b/src/cheats.c @@ -5,6 +5,13 @@ bool gCheatsDisableClearanceChecks = false; bool gCheatsDisableSupportLimits = false; bool gCheatsShowAllOperatingModes = false; bool gCheatsShowVehiclesFromOtherTrackTypes = false; +bool gCheatsFastLiftHill = false; +bool gCheatsDisableBrakesFailure = false; +bool gCheatsDisableAllBreakdowns = false; +bool gCheatsUnlockAllPrices = false; +bool gCheatsBuildInPauseMode = false; +bool gCheatsIgnoreRideIntensity = false; +bool gCheatsDisableVandalism = false; void cheats_reset() { @@ -13,4 +20,11 @@ void cheats_reset() gCheatsDisableSupportLimits = false; gCheatsShowAllOperatingModes = false; gCheatsShowVehiclesFromOtherTrackTypes = false; + gCheatsFastLiftHill = false; + gCheatsDisableBrakesFailure = false; + gCheatsDisableAllBreakdowns = false; + gCheatsUnlockAllPrices = false; + gCheatsBuildInPauseMode = false; + gCheatsIgnoreRideIntensity = false; + gCheatsDisableVandalism = false; } diff --git a/src/cheats.h b/src/cheats.h index ab46cfb676..0637d4778d 100644 --- a/src/cheats.h +++ b/src/cheats.h @@ -28,6 +28,13 @@ extern bool gCheatsDisableClearanceChecks; extern bool gCheatsDisableSupportLimits; extern bool gCheatsShowAllOperatingModes; extern bool gCheatsShowVehiclesFromOtherTrackTypes; +extern bool gCheatsFastLiftHill; +extern bool gCheatsDisableBrakesFailure; +extern bool gCheatsDisableAllBreakdowns; +extern bool gCheatsUnlockAllPrices; +extern bool gCheatsBuildInPauseMode; +extern bool gCheatsIgnoreRideIntensity; +extern bool gCheatsDisableVandalism; void cheats_reset(); diff --git a/src/config.c b/src/config.c index ecffde2464..722c54dd69 100644 --- a/src/config.c +++ b/src/config.c @@ -232,16 +232,6 @@ config_property_definition _soundDefinitions[] = { { offsetof(sound_configuration, device), "audio_device", CONFIG_VALUE_TYPE_STRING, { .value_string = NULL }, NULL }, }; -config_property_definition _cheatDefinitions[] = { - { offsetof(cheat_configuration, fast_lift_hill), "fast_lift_hill", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL }, - { offsetof(cheat_configuration, disable_brakes_failure), "disable_brakes_failure", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL }, - { offsetof(cheat_configuration, disable_all_breakdowns), "disable_all_breakdowns", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL }, - { offsetof(cheat_configuration, unlock_all_prices), "unlock_all_prices", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL }, - { offsetof(cheat_configuration, build_in_pause_mode), "build_in_pause_mode", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL }, - { offsetof(cheat_configuration, ignore_ride_intensity), "ignore_ride_intensity", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL }, - { offsetof(cheat_configuration, disable_vandalism), "disable_vandalism", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL }, -}; - config_property_definition _twitchDefinitions[] = { { offsetof(twitch_configuration, channel), "channel", CONFIG_VALUE_TYPE_STRING, { .value_string = NULL }, NULL }, { offsetof(twitch_configuration, enable_follower_peep_names), "follower_peep_names", CONFIG_VALUE_TYPE_BOOLEAN, true, NULL }, @@ -290,7 +280,6 @@ config_section_definition _sectionDefinitions[] = { { &gConfigGeneral, "general", _generalDefinitions, countof(_generalDefinitions) }, { &gConfigInterface, "interface", _interfaceDefinitions, countof(_interfaceDefinitions) }, { &gConfigSound, "sound", _soundDefinitions, countof(_soundDefinitions) }, - { &gConfigCheat, "cheat", _cheatDefinitions, countof(_cheatDefinitions) }, { &gConfigTwitch, "twitch", _twitchDefinitions, countof(_twitchDefinitions) }, { &gConfigNetwork, "network", _networkDefinitions, countof(_networkDefinitions) }, { &gConfigNotifications, "notifications", _notificationsDefinitions, countof(_notificationsDefinitions) }, @@ -301,7 +290,6 @@ config_section_definition _sectionDefinitions[] = { general_configuration gConfigGeneral; interface_configuration gConfigInterface; sound_configuration gConfigSound; -cheat_configuration gConfigCheat; twitch_configuration gConfigTwitch; network_configuration gConfigNetwork; notification_configuration gConfigNotifications; diff --git a/src/config.h b/src/config.h index c97db49f03..222a60d537 100644 --- a/src/config.h +++ b/src/config.h @@ -205,16 +205,6 @@ typedef struct { utf8string device; } sound_configuration; -typedef struct { - uint8 fast_lift_hill; - uint8 disable_brakes_failure; - uint8 disable_all_breakdowns; - uint8 unlock_all_prices; - uint8 build_in_pause_mode; - uint8 ignore_ride_intensity; - uint8 disable_vandalism; -} cheat_configuration; - typedef struct { utf8string channel; uint8 enable_follower_peep_names; @@ -330,7 +320,6 @@ typedef struct { extern general_configuration gConfigGeneral; extern interface_configuration gConfigInterface; extern sound_configuration gConfigSound; -extern cheat_configuration gConfigCheat; extern twitch_configuration gConfigTwitch; extern network_configuration gConfigNetwork; extern notification_configuration gConfigNotifications; diff --git a/src/peep/peep.c b/src/peep/peep.c index 05b8ca2300..108443b4d9 100644 --- a/src/peep/peep.c +++ b/src/peep/peep.c @@ -38,6 +38,7 @@ #include "../management/marketing.h" #include "../game.h" #include "../ride/track.h" +#include "../cheats.h" #include "peep.h" #include "staff.h" @@ -4068,7 +4069,7 @@ static int peep_update_walking_find_bin(rct_peep* peep){ * rct2: 0x00690848 */ static void peep_update_walking_break_scenery(rct_peep* peep){ - if(gConfigCheat.disable_vandalism) + if(gCheatsDisableVandalism) return; if (!(peep->flags & PEEP_FLAGS_ANGRY)){ @@ -8137,7 +8138,7 @@ static bool peep_should_go_on_ride_again(rct_peep *peep, rct_ride *ride) { if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_20)) return false; if (ride->excitement == (ride_rating)0xFFFF) return false; - if (ride->intensity > RIDE_RATING(10,00) && !gConfigCheat.ignore_ride_intensity) return false; + if (ride->intensity > RIDE_RATING(10,00) && !gCheatsIgnoreRideIntensity) return false; if (peep->happiness < 180) return false; if (peep->energy < 100) return false; if (peep->nausea > 160) return false; @@ -8168,7 +8169,7 @@ static bool peep_really_liked_ride(rct_peep *peep, rct_ride *ride) peep->happiness >= 215 && ((peep->nausea <= 120 && ride->excitement != (ride_rating)0xFFFF && - ride->intensity <= RIDE_RATING(10,00))||gConfigCheat.ignore_ride_intensity); + ride->intensity <= RIDE_RATING(10,00))||gCheatsIgnoreRideIntensity); } /** @@ -8842,7 +8843,7 @@ static bool peep_should_go_on_ride(rct_peep *peep, int rideIndex, int entranceNu // If a peep has already decided that they're going to go on a ride, they'll skip the weather and // excitment check and will only do a basic intensity check when they arrive at the ride itself. if (rideIndex == peep->guest_heading_to_ride_id) { - if (ride->intensity > RIDE_RATING(10, 00) && !gConfigCheat.ignore_ride_intensity) { + if (ride->intensity > RIDE_RATING(10, 00) && !gCheatsIgnoreRideIntensity) { peep_ride_is_too_intense(peep, rideIndex, peepAtRide); return false; } @@ -8862,7 +8863,7 @@ static bool peep_should_go_on_ride(rct_peep *peep, int rideIndex, int entranceNu return false; } - if (!gConfigCheat.ignore_ride_intensity) { + if (!gCheatsIgnoreRideIntensity) { // Intensity calculations. Even though the max intensity can go up to 15, it's capped // at 10.0 (before happiness calculations). A full happiness bar will increase the max // intensity and decrease the min intensity by about 2.5. @@ -8916,7 +8917,7 @@ static bool peep_should_go_on_ride(rct_peep *peep, int rideIndex, int entranceNu return false; } - if (!gConfigCheat.ignore_ride_intensity) { + if (!gCheatsIgnoreRideIntensity) { if (ride->max_positive_vertical_g > FIXED_2DP(5, 00) || ride->max_negative_vertical_g < FIXED_2DP(-4, 00) || ride->max_lateral_g > FIXED_2DP(4, 00)) { diff --git a/src/ride/ride.c b/src/ride/ride.c index 5cf19a0f0f..a47baf3a6f 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -2150,7 +2150,8 @@ static void ride_breakdown_update(int rideIndex) // // a 0.8% chance, less the breakdown factor which accumulates as the game // continues. - if ((ride->reliability == 0 || (int)(scenario_rand() & 0x2FFFFF) <= 1 + RIDE_INITIAL_RELIABILITY - ride->reliability) && !gConfigCheat.disable_all_breakdowns) { + if ((ride->reliability == 0 || (int)(scenario_rand() & 0x2FFFFF) <= 1 + RIDE_INITIAL_RELIABILITY - ride->reliability) + && !gCheatsDisableAllBreakdowns) { breakdownReason = ride_get_new_breakdown_problem(ride); if (breakdownReason != -1) ride_prepare_breakdown(rideIndex, breakdownReason); @@ -2209,7 +2210,7 @@ static int ride_get_new_breakdown_problem(rct_ride *ride) return -1; // If brakes failure is disabled, also take it out of the equation (see above comment why) - if (gConfigCheat.disable_brakes_failure) + if (gCheatsDisableBrakesFailure) return -1; monthsOld = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_MONTH_YEAR, uint8) - ride->build_date; @@ -6072,7 +6073,7 @@ void game_command_demolish_ride(int *eax, int *ebx, int *ecx, int *edx, int *esi RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z; } - if(!(*ebx & 0x40) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) && !gConfigCheat.build_in_pause_mode){ + if(!(*ebx & 0x40) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) && !gCheatsBuildInPauseMode){ RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; *ebx = MONEY32_UNDEFINED; return; @@ -7633,7 +7634,7 @@ money32 place_ride_entrance_or_exit(sint16 x, sint16 y, sint16 z, uint8 directio return MONEY32_UNDEFINED; } - if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){ + if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){ RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; return MONEY32_UNDEFINED; } @@ -7845,7 +7846,7 @@ money32 remove_ride_entrance_or_exit(sint16 x, sint16 y, uint8 rideIndex, uint8 } if (!(flags & GAME_COMMAND_FLAG_GHOST)){ - if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){ + if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){ RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; return MONEY32_UNDEFINED; } diff --git a/src/ride/track.c b/src/ride/track.c index 98afb79443..cf42ec0cd4 100644 --- a/src/ride/track.c +++ b/src/ride/track.c @@ -3258,7 +3258,7 @@ void game_command_place_track_design(int* eax, int* ebx, int* ecx, int* edx, int RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, sint16) = z; if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED)){ - if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){ + if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){ RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; *ebx = MONEY32_UNDEFINED; return; @@ -4130,7 +4130,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in return MONEY32_UNDEFINED; } if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED)) { - if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) { + if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) { RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; return MONEY32_UNDEFINED; } @@ -4647,7 +4647,7 @@ money32 track_remove(uint8 type, uint8 sequence, sint16 originX, sint16 originY, break; } - if (!(flags & (1 << 3)) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){ + if (!(flags & (1 << 3)) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){ RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; return MONEY32_UNDEFINED; } diff --git a/src/windows/cheats.c b/src/windows/cheats.c index 4f25e6b045..3a642f9e11 100644 --- a/src/windows/cheats.c +++ b/src/windows/cheats.c @@ -886,12 +886,12 @@ static void window_cheats_guests_mouseup(rct_window *w, int widgetIndex) cheat_give_all_guests(OBJECT_UMBRELLA); break; case WIDX_GUEST_IGNORE_RIDE_INTENSITY: - gConfigCheat.ignore_ride_intensity ^= 1; + gCheatsIgnoreRideIntensity ^= 1; config_save_default(); window_invalidate(w); break; case WIDX_DISABLE_VANDALISM: - gConfigCheat.disable_vandalism ^= 1; + gCheatsDisableVandalism ^= 1; config_save_default(); window_invalidate(w); break; @@ -945,7 +945,7 @@ static void window_cheats_misc_mouseup(rct_window *w, int widgetIndex) RCT2_GLOBAL(RCT2_ADDRESS_OBJECTIVE_TYPE, uint8) = OBJECTIVE_HAVE_FUN; break; case WIDX_UNLOCK_ALL_PRICES: - gConfigCheat.unlock_all_prices ^= 1; + gCheatsUnlockAllPrices ^= 1; config_save_default(); window_invalidate(w); window_invalidate_by_class(WC_RIDE); @@ -1012,22 +1012,22 @@ static void window_cheats_rides_mouseup(rct_window *w, int widgetIndex) cheat_fix_rides(); break; case WIDX_FAST_LIFT_HILL: - gConfigCheat.fast_lift_hill ^= 1; + gCheatsFastLiftHill ^= 1; config_save_default(); window_invalidate(w); break; case WIDX_DISABLE_BRAKES_FAILURE: - gConfigCheat.disable_brakes_failure ^= 1; + gCheatsDisableBrakesFailure ^= 1; config_save_default(); window_invalidate(w); break; case WIDX_DISABLE_ALL_BREAKDOWNS: - gConfigCheat.disable_all_breakdowns ^= 1; + gCheatsDisableAllBreakdowns ^= 1; config_save_default(); window_invalidate(w); break; case WIDX_BUILD_IN_PAUSE_MODE: - gConfigCheat.build_in_pause_mode ^= 1; + gCheatsBuildInPauseMode ^= 1; config_save_default(); window_invalidate(w); break; @@ -1097,21 +1097,21 @@ static void window_cheats_invalidate(rct_window *w) break; case WINDOW_CHEATS_PAGE_GUESTS: RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS, int) = 10000; - widget_set_checkbox_value(w, WIDX_GUEST_IGNORE_RIDE_INTENSITY, gConfigCheat.ignore_ride_intensity); - widget_set_checkbox_value(w, WIDX_DISABLE_VANDALISM, gConfigCheat.disable_vandalism); + widget_set_checkbox_value(w, WIDX_GUEST_IGNORE_RIDE_INTENSITY, gCheatsIgnoreRideIntensity); + widget_set_checkbox_value(w, WIDX_DISABLE_VANDALISM, gCheatsDisableVandalism); break; case WINDOW_CHEATS_PAGE_MISC: w->widgets[WIDX_OPEN_CLOSE_PARK].image = RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_PARK_OPEN ? STR_CHEAT_CLOSE_PARK : STR_CHEAT_OPEN_PARK; - widget_set_checkbox_value(w, WIDX_UNLOCK_ALL_PRICES, gConfigCheat.unlock_all_prices); + widget_set_checkbox_value(w, WIDX_UNLOCK_ALL_PRICES, gCheatsUnlockAllPrices); widget_set_checkbox_value(w, WIDX_FORCE_PARK_RATING, get_forced_park_rating() >= 0); break; case WINDOW_CHEATS_PAGE_RIDES: RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS + 0, uint16) = 255; - widget_set_checkbox_value(w, WIDX_FAST_LIFT_HILL, gConfigCheat.fast_lift_hill); - widget_set_checkbox_value(w, WIDX_DISABLE_BRAKES_FAILURE, gConfigCheat.disable_brakes_failure); - widget_set_checkbox_value(w, WIDX_DISABLE_ALL_BREAKDOWNS, gConfigCheat.disable_all_breakdowns); - widget_set_checkbox_value(w, WIDX_BUILD_IN_PAUSE_MODE, gConfigCheat.build_in_pause_mode); + widget_set_checkbox_value(w, WIDX_FAST_LIFT_HILL, gCheatsFastLiftHill); + widget_set_checkbox_value(w, WIDX_DISABLE_BRAKES_FAILURE, gCheatsDisableBrakesFailure); + widget_set_checkbox_value(w, WIDX_DISABLE_ALL_BREAKDOWNS, gCheatsDisableAllBreakdowns); + widget_set_checkbox_value(w, WIDX_BUILD_IN_PAUSE_MODE, gCheatsBuildInPauseMode); widget_set_checkbox_value(w, WIDX_SHOW_ALL_OPERATING_MODES, gCheatsShowAllOperatingModes); widget_set_checkbox_value(w, WIDX_SHOW_VEHICLES_FROM_OTHER_TRACK_TYPES, gCheatsShowVehiclesFromOtherTrackTypes); break; diff --git a/src/windows/park.c b/src/windows/park.c index 2c6a3940e6..f8f408f14d 100644 --- a/src/windows/park.c +++ b/src/windows/park.c @@ -39,6 +39,7 @@ #include "../management/finance.h" #include "dropdown.h" #include "../interface/themes.h" +#include "../cheats.h" enum WINDOW_PARK_PAGE { WINDOW_PARK_PAGE_ENTRANCE, @@ -1458,7 +1459,7 @@ static void window_park_price_invalidate(rct_window *w) // If the entry price is locked at free, disable the widget, unless the unlock_all_prices cheat is active. if ((RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_PARK_FREE_ENTRY) - && (!gConfigCheat.unlock_all_prices)) { + && (!gCheatsUnlockAllPrices)) { window_park_price_widgets[WIDX_PRICE].type = WWT_12; window_park_price_widgets[WIDX_INCREASE_PRICE].type = WWT_EMPTY; window_park_price_widgets[WIDX_DECREASE_PRICE].type = WWT_EMPTY; diff --git a/src/windows/ride.c b/src/windows/ride.c index c7616b1cd3..2d47e7bbb4 100644 --- a/src/windows/ride.c +++ b/src/windows/ride.c @@ -2752,10 +2752,10 @@ static void window_ride_mode_tweak_increase(rct_window *w) rct_ride *ride = get_ride(w->number); uint8 value = ride->operation_option; //fast_lift_hill is the cheat that allows maxing out many limits on the Operating tab. - uint8 max_value = gConfigCheat.fast_lift_hill ? 255 : RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 5, uint8); + uint8 max_value = gCheatsFastLiftHill ? 255 : RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 5, uint8); //Allow 64 people in mazes under non-cheat settings. The old maximum of 16 was too little for even moderately big mazes. - if(ride->mode == RIDE_MODE_MAZE && !gConfigCheat.fast_lift_hill) + if(ride->mode == RIDE_MODE_MAZE && !gCheatsFastLiftHill) max_value = 64; if (value < max_value) @@ -2773,7 +2773,7 @@ static void window_ride_mode_tweak_decrease(rct_window *w) rct_ride *ride = get_ride(w->number); uint8 value = ride->operation_option; //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); + uint8 min_value = gCheatsFastLiftHill ? 0 : RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 4, uint8); if (value > min_value) value -= ride->mode == RIDE_MODE_BUMPERCAR ? 10 : 1; @@ -2939,11 +2939,11 @@ 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: - parameter_check = gConfigCheat.fast_lift_hill ? 255 : RideLiftData[ride->type].maximum_speed; + parameter_check = gCheatsFastLiftHill ? 255 : RideLiftData[ride->type].maximum_speed; set_operating_setting(w->number, 8, min(ride->lift_hill_speed + 1, parameter_check)); break; case WIDX_LIFT_HILL_SPEED_DECREASE: - parameter_check = gConfigCheat.fast_lift_hill ? 0 : RideLiftData[ride->type].minimum_speed; + parameter_check = gCheatsFastLiftHill ? 0 : RideLiftData[ride->type].minimum_speed; set_operating_setting(w->number, 8, max(ride->lift_hill_speed - 1, parameter_check)); break; case WIDX_MINIMUM_LENGTH_INCREASE: @@ -2965,7 +2965,7 @@ 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: - parameter_check = gConfigCheat.fast_lift_hill ? 255 : 20; + parameter_check = gCheatsFastLiftHill ? 255 : 20; set_operating_setting(w->number, 9, min(ride->num_circuits + 1, parameter_check)); break; case WIDX_OPERATE_NUMBER_OF_CIRCUITS_DECREASE: @@ -5499,7 +5499,7 @@ static void window_ride_income_increase_primary_price(rct_window *w) if ((RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_PARK_FREE_ENTRY) == 0) { if (ride->type != RIDE_TYPE_TOILETS && ride_type->shop_item == 0xFF) { - if (!gConfigCheat.unlock_all_prices) + if (!gCheatsUnlockAllPrices) return; } } @@ -5524,7 +5524,7 @@ static void window_ride_income_decrease_primary_price(rct_window *w) if ((RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_PARK_FREE_ENTRY) == 0) { if (ride->type != RIDE_TYPE_TOILETS && ride_type->shop_item == 0xFF) { - if (!gConfigCheat.unlock_all_prices) + if (!gCheatsUnlockAllPrices) return; } } @@ -5687,7 +5687,7 @@ static void window_ride_income_invalidate(rct_window *w) //If the park doesn't have free entry, lock the admission price, unless the cheat to unlock all prices is activated. if ((!(RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_PARK_FREE_ENTRY) && rideEntry->shop_item == 255 && ride->type != RIDE_TYPE_TOILETS) - && (!gConfigCheat.unlock_all_prices)) + && (!gCheatsUnlockAllPrices)) { w->disabled_widgets |= (1 << WIDX_PRIMARY_PRICE); } diff --git a/src/windows/track_place.c b/src/windows/track_place.c index f2b2903dbb..587a1935f4 100644 --- a/src/windows/track_place.c +++ b/src/windows/track_place.c @@ -30,6 +30,7 @@ #include "../ride/track.h" #include "../ride/track_data.h" #include "../interface/themes.h" +#include "../cheats.h" #define TRACK_MINI_PREVIEW_WIDTH 168 #define TRACK_MINI_PREVIEW_HEIGHT 78 @@ -485,7 +486,7 @@ static void window_track_place_toolupdate(rct_window* w, int widgetIndex, int x, // Get base Z position mapZ = window_track_place_get_base_z(mapX, mapY); - if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gConfigCheat.build_in_pause_mode) { + if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gCheatsBuildInPauseMode) { window_track_place_clear_provisional(); // Try increasing Z until a feasible placement is found diff --git a/src/world/footpath.c b/src/world/footpath.c index 3dfa16c711..0d5301738f 100644 --- a/src/world/footpath.c +++ b/src/world/footpath.c @@ -314,7 +314,7 @@ static money32 footpath_place_real(int type, int x, int y, int z, int slope, int RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z * 8; - if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) { + if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) { RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; return MONEY32_UNDEFINED; } @@ -391,7 +391,7 @@ money32 footpath_remove_real(int x, int y, int z, int flags) RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z * 8; - if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) { + if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) { RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; return MONEY32_UNDEFINED; } @@ -451,7 +451,7 @@ static money32 footpath_place_from_track(int type, int x, int y, int z, int slop RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z * 8; - if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) { + if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) { RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; return MONEY32_UNDEFINED; } diff --git a/src/world/map.c b/src/world/map.c index 71fae34741..a4fed6445d 100644 --- a/src/world/map.c +++ b/src/world/map.c @@ -725,7 +725,7 @@ void game_command_remove_scenery(int* eax, int* ebx, int* ecx, int* edx, int* es RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = base_height * 8; - if (!(flags & GAME_COMMAND_FLAG_GHOST) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) { + if (!(flags & GAME_COMMAND_FLAG_GHOST) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) { RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; *ebx = MONEY32_UNDEFINED; return; @@ -803,7 +803,7 @@ void game_command_remove_large_scenery(int* eax, int* ebx, int* ecx, int* edx, i RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z; RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4; - if (!(flags & GAME_COMMAND_FLAG_GHOST) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) { + if (!(flags & GAME_COMMAND_FLAG_GHOST) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) { RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; *ebx = MONEY32_UNDEFINED; return; @@ -953,7 +953,7 @@ void game_command_remove_banner(int* eax, int* ebx, int* ecx, int* edx, int* esi RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z; - if(!(flags & GAME_COMMAND_FLAG_GHOST) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){ + if(!(flags & GAME_COMMAND_FLAG_GHOST) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){ RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; *ebx = MONEY32_UNDEFINED; return; @@ -1455,7 +1455,7 @@ money32 map_change_surface_style(int x0, int y0, int x1, int y1, uint8 surfaceSt money32 cost = 0; - if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) { + if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) { cost += RCT2_GLOBAL(0x009E32B4, uint32); return (RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_NO_MONEY) ? 0 : cost; } @@ -1584,7 +1584,7 @@ const uint8 map_element_lower_styles[5][32] = { static money32 map_set_land_height(int flags, int x, int y, int height, int style, int selectionType) { - if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) { + if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) { RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; return MONEY32_UNDEFINED; } @@ -2552,7 +2552,7 @@ void game_command_set_water_height(int* eax, int* ebx, int* ecx, int* edx, int* RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, sint16) = x + 16; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, sint16) = y + 16; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint32) = base_height * 8; - if(RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){ + if(RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){ RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; *ebx = MONEY32_UNDEFINED; return; @@ -2640,7 +2640,7 @@ void game_command_remove_fence(int* eax, int* ebx, int* ecx, int* edx, int* esi, uint8 direction = *edx; RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4; - if(!(*ebx & 0x40) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){ + if(!(*ebx & 0x40) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){ RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; *ebx = MONEY32_UNDEFINED; return; @@ -2696,7 +2696,7 @@ void game_command_place_banner(int* eax, int* ebx, int* ecx, int* edx, int* esi, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 16; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = base_height * 16; RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_LANDSCAPING * 4; - if(RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gConfigCheat.build_in_pause_mode){ + if(RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gCheatsBuildInPauseMode){ if(sub_68B044() && x < 8192 && y < 8192){ rct_map_element* map_element = map_get_first_element_at(x / 32, y / 32); int dl = base_height * 2; @@ -2802,7 +2802,7 @@ void game_command_place_scenery(int* eax, int* ebx, int* ecx, int* edx, int* esi } RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) += 16; RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) += 16; - if(RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gConfigCheat.build_in_pause_mode){ + if(RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gCheatsBuildInPauseMode){ if(sub_68B044()){ if(RCT2_GLOBAL(0x009D8150, uint8) & 1 || (x <= RCT2_GLOBAL(RCT2_ADDRESS_MAP_MAX_XY, uint16) && y <= RCT2_GLOBAL(RCT2_ADDRESS_MAP_MAX_XY, uint16))){ rct_scenery_entry* scenery_entry = (rct_scenery_entry*)object_entry_groups[OBJECT_TYPE_SMALL_SCENERY].chunks[scenery_type]; @@ -3176,7 +3176,7 @@ void game_command_place_fence(int* eax, int* ebx, int* ecx, int* edx, int* esi, RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, sint16) = map_element_height(position.x, position.y) & 0xFFFF; } - if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode){ + if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){ RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; *ebx = MONEY32_UNDEFINED; return; @@ -3436,7 +3436,7 @@ void game_command_place_large_scenery(int* eax, int* ebx, int* ecx, int* edx, in // Supports cost RCT2_GLOBAL(0x00F4389A, money32) = 0; - if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gConfigCheat.build_in_pause_mode) { + if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) { RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; *ebx = MONEY32_UNDEFINED; return; diff --git a/src/world/park.c b/src/world/park.c index 5c8f0e05c2..0c82c7d228 100644 --- a/src/world/park.c +++ b/src/world/park.c @@ -36,6 +36,7 @@ #include "park.h" #include "sprite.h" #include "../config.h" +#include "../cheats.h" uint8 *gParkRatingHistory = RCT2_ADDRESS(RCT2_ADDRESS_PARK_RATING_HISTORY, uint8); uint8 *gGuestsInParkHistory = RCT2_ADDRESS(RCT2_ADDRESS_GUESTS_IN_PARK_HISTORY, uint8); @@ -1056,7 +1057,7 @@ int map_buy_land_rights(int x0, int y0, int x1, int y1, int setting, int flags) // Game command modified to accept selection size totalCost = 0; RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED; - if ((RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_SCENARIO_EDITOR) != 0 || RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gConfigCheat.build_in_pause_mode) { + if ((RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_SCENARIO_EDITOR) != 0 || RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gCheatsBuildInPauseMode) { for (y = y0; y <= y1; y += 32) { for (x = x0; x <= x1; x += 32) { cost = map_buy_land_rights_for_tile(x, y, setting, flags);