From 2ff3e33e3e8b95a9cea70f983c6b384107d032f0 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Mon, 31 Aug 2015 11:12:15 +0200 Subject: [PATCH] Add cheat to disable vandalism --- data/language/english_uk.txt | 2 ++ src/config.c | 1 + src/config.h | 1 + src/localisation/string_ids.h | 3 +++ src/peep/peep.c | 3 +++ src/windows/cheats.c | 30 +++++++++++++++++++----------- 6 files changed, 29 insertions(+), 11 deletions(-) diff --git a/data/language/english_uk.txt b/data/language/english_uk.txt index 180217eb18..b114e49fc6 100644 --- a/data/language/english_uk.txt +++ b/data/language/english_uk.txt @@ -3852,3 +3852,5 @@ STR_5510 :Default sound device STR_5511 :(UNKNOWN) STR_5512 :Save Game As STR_5513 :(Quick) save game +STR_5514 :Disable vandalism +STR_5515 :{SMALLFONT}{BLACK}Stops guests from vandalising your park when they're angry diff --git a/src/config.c b/src/config.c index 3c41cb5ad4..152cfb0cdc 100644 --- a/src/config.c +++ b/src/config.c @@ -223,6 +223,7 @@ config_property_definition _cheatDefinitions[] = { { 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[] = { diff --git a/src/config.h b/src/config.h index 8cbe69fd83..87ea0e48ba 100644 --- a/src/config.h +++ b/src/config.h @@ -197,6 +197,7 @@ typedef struct { uint8 unlock_all_prices; uint8 build_in_pause_mode; uint8 ignore_ride_intensity; + uint8 disable_vandalism; } cheat_configuration; typedef struct { diff --git a/src/localisation/string_ids.h b/src/localisation/string_ids.h index f0f09cf83b..2dcd3b2624 100644 --- a/src/localisation/string_ids.h +++ b/src/localisation/string_ids.h @@ -2073,6 +2073,9 @@ enum { STR_SAVE_GAME_AS = 5512, STR_SHORTCUT_QUICK_SAVE_GAME = 5513, + STR_CHEAT_DISABLE_VANDALISM = 5514, + STR_CHEAT_DISABLE_VANDALISM_TIP = 5515, + // 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/peep/peep.c b/src/peep/peep.c index 5e99ed6eb7..606a64942d 100644 --- a/src/peep/peep.c +++ b/src/peep/peep.c @@ -3891,6 +3891,9 @@ 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) + return; + if (!(peep->flags & PEEP_FLAGS_ANGRY)){ if (peep->happiness >= 48) return; if (peep->energy < 85) return; diff --git a/src/windows/cheats.c b/src/windows/cheats.c index c1385b4ca1..80435be664 100644 --- a/src/windows/cheats.c +++ b/src/windows/cheats.c @@ -78,6 +78,7 @@ enum WINDOW_CHEATS_WIDGET_IDX { WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1, WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15, WIDX_GUEST_IGNORE_RIDE_INTENSITY, + WIDX_DISABLE_VANDALISM, WIDX_GIVE_ALL_GUESTS_GROUP, WIDX_GIVE_GUESTS_MONEY, WIDX_GIVE_GUESTS_PARK_MAPS, @@ -186,7 +187,7 @@ static rct_widget window_cheats_money_widgets[] = { static rct_widget window_cheats_guests_widgets[] = { MAIN_CHEATS_WIDGETS, - { WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(0), HPL(10.5), STR_CHEAT_SET_GUESTS_PARAMETERS, STR_NONE }, // Guests parameters group frame + { WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(0), HPL(11.5), STR_CHEAT_SET_GUESTS_PARAMETERS, STR_NONE }, // Guests parameters group frame { WWT_CLOSEBOX, 1, MAX_BTN_LEFT, MAX_BTN_RIGHT, YPL(1), HPL(1), STR_MAX, STR_NONE }, // happiness max { WWT_CLOSEBOX, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(1), HPL(1), STR_MIN, STR_NONE }, // happiness min { WWT_CLOSEBOX, 1, MAX_BTN_LEFT, MAX_BTN_RIGHT, YPL(2), HPL(2), STR_MAX, STR_NONE }, // energy max @@ -203,15 +204,16 @@ static rct_widget window_cheats_guests_widgets[] = { { WWT_CLOSEBOX, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(7), HPL(7), STR_MIN, STR_NONE }, // bathroom min { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(9), HPL(9), STR_CHEAT_MORE_THAN_1, STR_NONE }, // ride intensity > 1 { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(9), HPL(9), STR_CHEAT_LESS_THAN_15, STR_NONE }, // ride intensity < 15 - { WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(10), OHPL(10), STR_CHEAT_IGNORE_INTENSITY, STR_NONE }, // don't care about intensity - { WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(12), HPL(14.5), STR_CHEAT_GIVE_ALL_GUESTS, STR_NONE }, // Guests parameters group frame - { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(13), HPL(13), STR_CHEAT_CURRENCY_FORMAT, STR_NONE }, // give guests money - { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(13), HPL(13), 2018, STR_NONE }, // give guests park maps - { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(14), HPL(14), 2016, STR_NONE }, // give guests balloons - { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(14), HPL(14), 2020, STR_NONE }, // give guests umbrellas - { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(16), HPL(16), STR_CHEAT_LARGE_TRAM_GUESTS, STR_CHEAT_TIP_LARGE_TRAM_GUESTS }, // large tram - { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(16), HPL(16), STR_CHEAT_REMOVE_ALL_GUESTS, STR_CHEAT_TIP_REMOVE_ALL_GUESTS }, // remove all guests - { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(17), HPL(17), STR_CHEAT_EXPLODE, STR_CHEAT_TIP_EXPLODE }, // explode guests + { WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(10), OHPL(10), STR_CHEAT_IGNORE_INTENSITY, STR_NONE }, // guests ignore intensity + { WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(11), OHPL(11), STR_CHEAT_DISABLE_VANDALISM, STR_CHEAT_DISABLE_VANDALISM_TIP }, // disable vandalism + { WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(13), HPL(15.5), STR_CHEAT_GIVE_ALL_GUESTS, STR_NONE }, // Guests parameters group frame + { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(14), HPL(14), STR_CHEAT_CURRENCY_FORMAT, STR_NONE }, // give guests money + { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(14), HPL(14), STR_SHOP_ITEM_PLURAL_PARK_MAP, STR_NONE }, // give guests park maps + { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(15), HPL(15), STR_SHOP_ITEM_PLURAL_BALLOON, STR_NONE }, // give guests balloons + { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(15), HPL(15), STR_SHOP_ITEM_PLURAL_UMBRELLA, STR_NONE }, // give guests umbrellas + { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(17), HPL(17), STR_CHEAT_LARGE_TRAM_GUESTS, STR_CHEAT_TIP_LARGE_TRAM_GUESTS }, // large tram + { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(17), HPL(17), STR_CHEAT_REMOVE_ALL_GUESTS, STR_CHEAT_TIP_REMOVE_ALL_GUESTS }, // remove all guests + { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(18), HPL(18), STR_CHEAT_EXPLODE, STR_CHEAT_TIP_EXPLODE }, // explode guests { WIDGETS_END }, }; @@ -408,7 +410,7 @@ static rct_window_event_list *window_cheats_page_events[] = { static uint64 window_cheats_page_enabled_widgets[] = { (1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_HIGH_MONEY) | (1ULL << WIDX_CLEAR_LOAN), - (1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_GUEST_PARAMETERS_GROUP) | (1ULL << WIDX_GUEST_HAPPINESS_MAX) | (1ULL << WIDX_GUEST_HAPPINESS_MIN) | (1ULL << WIDX_GUEST_ENERGY_MAX) | (1ULL << WIDX_GUEST_ENERGY_MIN) | (1ULL << WIDX_GUEST_HUNGER_MAX) | (1ULL << WIDX_GUEST_HUNGER_MIN) | (1ULL << WIDX_GUEST_THIRST_MAX) | (1ULL << WIDX_GUEST_THIRST_MIN) | (1ULL << WIDX_GUEST_NAUSEA_MAX) | (1ULL << WIDX_GUEST_NAUSEA_MIN) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MAX) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MIN) | (1ULL << WIDX_GUEST_BATHROOM_MAX) | (1ULL << WIDX_GUEST_BATHROOM_MIN) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15) | (1ULL << WIDX_GUEST_IGNORE_RIDE_INTENSITY) | (1ULL << WIDX_GIVE_ALL_GUESTS_GROUP) | (1ULL << WIDX_GIVE_GUESTS_MONEY) | (1ULL << WIDX_GIVE_GUESTS_PARK_MAPS) | (1ULL << WIDX_GIVE_GUESTS_BALLOONS) | (1ULL << WIDX_GIVE_GUESTS_UMBRELLAS) | (1ULL << WIDX_TRAM_GUESTS) | (1ULL << WIDX_REMOVE_ALL_GUESTS) | (1ULL << WIDX_EXPLODE_GUESTS), + (1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_GUEST_PARAMETERS_GROUP) | (1ULL << WIDX_GUEST_HAPPINESS_MAX) | (1ULL << WIDX_GUEST_HAPPINESS_MIN) | (1ULL << WIDX_GUEST_ENERGY_MAX) | (1ULL << WIDX_GUEST_ENERGY_MIN) | (1ULL << WIDX_GUEST_HUNGER_MAX) | (1ULL << WIDX_GUEST_HUNGER_MIN) | (1ULL << WIDX_GUEST_THIRST_MAX) | (1ULL << WIDX_GUEST_THIRST_MIN) | (1ULL << WIDX_GUEST_NAUSEA_MAX) | (1ULL << WIDX_GUEST_NAUSEA_MIN) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MAX) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MIN) | (1ULL << WIDX_GUEST_BATHROOM_MAX) | (1ULL << WIDX_GUEST_BATHROOM_MIN) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15) | (1ULL << WIDX_GUEST_IGNORE_RIDE_INTENSITY) | (1ULL << WIDX_GIVE_ALL_GUESTS_GROUP) | (1ULL << WIDX_GIVE_GUESTS_MONEY) | (1ULL << WIDX_GIVE_GUESTS_PARK_MAPS) | (1ULL << WIDX_GIVE_GUESTS_BALLOONS) | (1ULL << WIDX_GIVE_GUESTS_UMBRELLAS) | (1ULL << WIDX_TRAM_GUESTS) | (1ULL << WIDX_REMOVE_ALL_GUESTS) | (1ULL << WIDX_EXPLODE_GUESTS) | (1ULL << WIDX_DISABLE_VANDALISM), (1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_FREEZE_CLIMATE) | (1ULL << WIDX_OPEN_CLOSE_PARK) | (1ULL << WIDX_WEATHER_SUN) | (1ULL << WIDX_WEATHER_THUNDER) | (1ULL << WIDX_CLEAR_GRASS) | (1ULL << WIDX_MOWED_GRASS) | (1ULL << WIDX_WATER_PLANTS) | (1ULL << WIDX_FIX_VANDALISM) | (1ULL << WIDX_REMOVE_LITTER) | (1ULL << WIDX_WIN_SCENARIO) | (1ULL << WIDX_HAVE_FUN) | (1ULL << WIDX_UNLOCK_ALL_PRICES) | (1ULL << WIDX_SANDBOX_MODE) | (1ULL << WIDX_FAST_STAFF) | (1ULL << WIDX_NORMAL_STAFF) | (1ULL << WIDX_PARK_PARAMETERS) | (1ULL << WIDX_FORCE_PARK_RATING) | (1ULL << WIDX_INCREASE_PARK_RATING) | (1ULL << WIDX_DECREASE_PARK_RATING), (1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_RENEW_RIDES) | (1ULL << WIDX_MAKE_DESTRUCTIBLE) | (1ULL << WIDX_FIX_ALL) | (1ULL << WIDX_FAST_LIFT_HILL) | (1ULL << WIDX_DISABLE_BRAKES_FAILURE) | (1ULL << WIDX_DISABLE_ALL_BREAKDOWNS) | (1ULL << WIDX_BUILD_IN_PAUSE_MODE) | (1ULL << WIDX_RESET_CRASH_STATUS) }; @@ -860,6 +862,11 @@ static void window_cheats_guests_mouseup(rct_window *w, int widgetIndex) config_save_default(); window_invalidate(w); break; + case WIDX_DISABLE_VANDALISM: + gConfigCheat.disable_vandalism ^= 1; + config_save_default(); + window_invalidate(w); + break; } } @@ -1048,6 +1055,7 @@ static void window_cheats_invalidate(rct_window *w) case WINDOW_CHEATS_PAGE_GUESTS: RCT2_GLOBAL(0x013CE952, 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); break; case WINDOW_CHEATS_PAGE_MISC: w->widgets[WIDX_OPEN_CLOSE_PARK].image = RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_PARK_OPEN ?