2016-05-04 19:24:41 +02:00
# pragma region Copyright (c) 2014-2016 OpenRCT2 Developers
2014-04-15 01:50:20 +02:00
/*****************************************************************************
* OpenRCT2 , an open source clone of Roller Coaster Tycoon 2.
*
2016-05-04 19:24:41 +02:00
* OpenRCT2 is the work of many authors , a full list can be found in contributors . md
* For more information , visit https : //github.com/OpenRCT2/OpenRCT2
2014-04-15 01:50:20 +02:00
*
* OpenRCT2 is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
2016-05-04 19:24:41 +02:00
*
* A full copy of the GNU General Public License can be found in licence . txt
2014-04-15 01:50:20 +02:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2016-05-04 19:24:41 +02:00
# pragma endregion
2014-04-15 01:50:20 +02:00
2015-05-16 17:16:09 +02:00
# include "../config.h"
2014-10-06 18:36:58 +02:00
# include "../game.h"
# include "../interface/widget.h"
# include "../interface/window.h"
# include "../localisation/localisation.h"
2015-01-25 01:20:53 +01:00
# include "../world/park.h"
2014-10-06 20:41:43 +02:00
# include "../peep/peep.h"
2014-10-06 18:36:58 +02:00
# include "../ride/ride.h"
# include "../scenario.h"
# include "../sprites.h"
# include "../world/climate.h"
# include "../world/park.h"
# include "../world/sprite.h"
2015-06-01 17:02:09 +02:00
# include "../interface/themes.h"
2015-06-09 17:19:05 +02:00
# include "../cheats.h"
2016-01-25 15:29:31 +01:00
# include "../network/network.h"
2016-02-15 15:55:36 +01:00
# include "../management/marketing.h"
2015-11-06 19:46:18 +01:00
# include "error.h"
2016-01-27 20:29:19 +01:00
# include "dropdown.h"
2014-07-16 04:41:12 +02:00
2015-06-25 15:14:36 +02:00
# define CHEATS_PARK_RATING_SPINNER_PAUSE 20
2014-04-15 01:50:20 +02:00
enum {
WINDOW_CHEATS_PAGE_MONEY ,
2014-07-16 04:41:12 +02:00
WINDOW_CHEATS_PAGE_GUESTS ,
WINDOW_CHEATS_PAGE_MISC ,
2015-03-26 21:52:19 +01:00
WINDOW_CHEATS_PAGE_RIDES ,
2014-04-15 01:50:20 +02:00
} ;
2016-07-14 14:07:49 +02:00
static const rct_string_id WeatherTypes [ ] = {
STR_SUNNY ,
STR_PARTIALLY_CLOUDY ,
STR_CLOUDY ,
STR_RAIN ,
STR_HEAVY_RAIN ,
STR_THUNDERSTORM ,
} ;
2014-05-19 21:10:32 +02:00
enum WINDOW_CHEATS_WIDGET_IDX {
2014-04-15 01:50:20 +02:00
WIDX_BACKGROUND ,
WIDX_TITLE ,
WIDX_CLOSE ,
WIDX_PAGE_BACKGROUND ,
WIDX_TAB_1 ,
WIDX_TAB_2 ,
2014-07-16 04:41:12 +02:00
WIDX_TAB_3 ,
2015-03-26 21:52:19 +01:00
WIDX_TAB_4 ,
2014-05-01 23:55:26 +02:00
WIDX_HIGH_MONEY ,
2015-06-10 19:23:10 +02:00
WIDX_CLEAR_LOAN ,
2015-07-09 16:34:34 +02:00
WIDX_GUEST_PARAMETERS_GROUP = 8 , //Same as HIGH_MONEY as it is also the 8th widget but on a different page
WIDX_GUEST_HAPPINESS_MAX ,
2015-06-16 18:25:37 +02:00
WIDX_GUEST_HAPPINESS_MIN ,
WIDX_GUEST_ENERGY_MAX ,
WIDX_GUEST_ENERGY_MIN ,
WIDX_GUEST_HUNGER_MAX ,
WIDX_GUEST_HUNGER_MIN ,
WIDX_GUEST_THIRST_MAX ,
WIDX_GUEST_THIRST_MIN ,
WIDX_GUEST_NAUSEA_MAX ,
WIDX_GUEST_NAUSEA_MIN ,
WIDX_GUEST_NAUSEA_TOLERANCE_MAX ,
WIDX_GUEST_NAUSEA_TOLERANCE_MIN ,
WIDX_GUEST_BATHROOM_MAX ,
WIDX_GUEST_BATHROOM_MIN ,
WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1 ,
WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15 ,
2015-08-15 20:42:53 +02:00
WIDX_GUEST_IGNORE_RIDE_INTENSITY ,
2015-08-31 11:12:15 +02:00
WIDX_DISABLE_VANDALISM ,
2016-03-20 05:25:19 +01:00
WIDX_DISABLE_LITTERING ,
2015-07-09 16:34:34 +02:00
WIDX_GIVE_ALL_GUESTS_GROUP ,
WIDX_GIVE_GUESTS_MONEY ,
2015-06-16 18:25:37 +02:00
WIDX_GIVE_GUESTS_PARK_MAPS ,
WIDX_GIVE_GUESTS_BALLOONS ,
WIDX_GIVE_GUESTS_UMBRELLAS ,
2015-07-09 16:34:34 +02:00
WIDX_TRAM_GUESTS ,
WIDX_REMOVE_ALL_GUESTS ,
WIDX_EXPLODE_GUESTS ,
WIDX_GENERAL_GROUP = 8 ,
2014-07-16 04:41:12 +02:00
WIDX_OPEN_CLOSE_PARK ,
2015-07-09 16:34:34 +02:00
WIDX_PARK_PARAMETERS ,
WIDX_SANDBOX_MODE ,
2016-07-29 20:49:38 +02:00
WIDX_RESET_DATE ,
2015-07-09 16:34:34 +02:00
WIDX_UNLOCK_ALL_PRICES ,
WIDX_FORCE_PARK_RATING ,
WIDX_PARK_RATING_SPINNER ,
WIDX_INCREASE_PARK_RATING ,
WIDX_DECREASE_PARK_RATING ,
WIDX_WIN_SCENARIO ,
WIDX_HAVE_FUN ,
2016-02-15 15:55:36 +01:00
WIDX_NEVERENDING_MARKETING ,
2015-07-09 16:34:34 +02:00
WIDX_CLIMATE_GROUP ,
WIDX_FREEZE_CLIMATE ,
2016-01-27 20:29:19 +01:00
WIDX_WEATHER ,
WIDX_WEATHER_DROPDOWN_BUTTON ,
2015-07-09 16:34:34 +02:00
WIDX_STAFF_GROUP ,
2014-12-10 02:44:30 +01:00
WIDX_CLEAR_GRASS ,
WIDX_MOWED_GRASS ,
WIDX_WATER_PLANTS ,
WIDX_FIX_VANDALISM ,
2015-02-21 03:04:33 +01:00
WIDX_REMOVE_LITTER ,
2016-05-29 03:12:31 +02:00
WIDX_DISABLE_PLANT_AGING ,
2015-06-18 15:10:53 +02:00
WIDX_FAST_STAFF ,
WIDX_NORMAL_STAFF ,
2015-03-26 21:52:19 +01:00
WIDX_RENEW_RIDES = 8 ,
2015-05-15 16:49:46 +02:00
WIDX_MAKE_DESTRUCTIBLE ,
2015-05-16 17:16:09 +02:00
WIDX_FIX_ALL ,
2015-05-17 14:26:45 +02:00
WIDX_FAST_LIFT_HILL ,
2015-05-17 18:55:57 +02:00
WIDX_DISABLE_BRAKES_FAILURE ,
2015-06-10 18:12:21 +02:00
WIDX_DISABLE_ALL_BREAKDOWNS ,
2015-06-18 15:42:09 +02:00
WIDX_BUILD_IN_PAUSE_MODE ,
2015-09-18 11:55:52 +02:00
WIDX_RESET_CRASH_STATUS ,
2015-10-24 17:10:33 +02:00
WIDX_10_MINUTE_INSPECTIONS ,
2015-10-12 15:58:15 +02:00
WIDX_SHOW_ALL_OPERATING_MODES ,
2016-03-28 22:57:47 +02:00
WIDX_SHOW_VEHICLES_FROM_OTHER_TRACK_TYPES ,
WIDX_DISABLE_TRAIN_LENGTH_LIMITS ,
2016-07-26 00:52:50 +02:00
WIDX_ENABLE_CHAIN_LIFT_ON_ALL_TRACK ,
WIDX_ENABLE_ARBITRARY_RIDE_TYPE_CHANGES ,
2014-04-15 01:50:20 +02:00
} ;
2014-07-16 04:41:12 +02:00
# pragma region MEASUREMENTS
2015-07-09 19:37:51 +02:00
# define WW 249
# define WH 300
# define TAB_HEIGHT 43
# define XSPA 5 // X spacing
# define YSPA 5 // Y spacing
# define XOS 6 + XSPA // X offset from left
# define YOS TAB_HEIGHT + YSPA // Y offset from top (includes tabs height)
# define BTNW 110 // button width
# define BTNH 16 // button height
2016-05-26 09:49:19 +02:00
# define OPTW 220 // Option (checkbox) width (two columns)
# define OPTH 10 // Option (checkbox) height (two columns)
2015-07-09 19:37:51 +02:00
# define GROUP_SPACE 6
# define YPL(ROW) ((sint16)(YOS + ((BTNH + YSPA) * ROW)))
# define HPL(ROW) ((sint16)(YPL(ROW) + BTNH))
# define OHPL(ROW) ((sint16)(YPL(ROW) + OPTH))
# define XPL(COL) ((sint16)(XOS + ((BTNW + XSPA) * COL)))
# define WPL(COL) ((sint16)(XPL(COL) + BTNW))
# define OWPL ((sint16)(XPL(0) + OPTW))
2014-07-21 14:05:43 +02:00
2015-06-16 23:56:08 +02:00
# define MIN_BTN_LEFT ((sint16)(XPL(1)))
2015-07-09 19:37:51 +02:00
# define MIN_BTN_RIGHT ((sint16)(WPL(1) - (BTNW / 2)))
2015-06-16 23:56:08 +02:00
# define MAX_BTN_LEFT ((sint16)(XPL(1.5)))
2015-07-09 16:34:34 +02:00
# define MAX_BTN_RIGHT ((sint16)(WPL(1)))
2015-06-16 23:56:08 +02:00
2014-07-21 14:05:43 +02:00
# define TXTO 3 //text horizontal offset from button left (for button text)
2014-07-16 04:41:12 +02:00
# pragma endregion
2015-06-16 23:56:08 +02:00
# define MAIN_CHEATS_WIDGETS \
2016-07-14 14:07:49 +02:00
{ WWT_FRAME , 0 , 0 , WW - 1 , 0 , WH - 1 , 0xFFFFFFFF , STR_NONE } , /* panel / background */ \
{ WWT_CAPTION , 0 , 1 , WW - 2 , 1 , 14 , STR_CHEAT_TITLE , STR_WINDOW_TITLE_TIP } , /* title bar */ \
{ WWT_CLOSEBOX , 0 , WW - 13 , WW - 3 , 2 , 13 , STR_CLOSE_X , STR_CLOSE_WINDOW_TIP } , /* close x button */ \
{ WWT_IMGBTN , 1 , 0 , WW - 1 , 43 , WH - 1 , 0xFFFFFFFF , STR_NONE } , /* tab content panel */ \
{ WWT_TAB , 1 , 3 , 33 , 17 , 43 , 0x20000000 | SPR_TAB , STR_FINANCIAL_CHEATS_TIP } , /* tab 1 */ \
{ WWT_TAB , 1 , 34 , 64 , 17 , 43 , 0x20000000 | SPR_TAB , STR_GUEST_CHEATS_TIP } , /* tab 2 */ \
{ WWT_TAB , 1 , 65 , 95 , 17 , 43 , 0x20000000 | SPR_TAB , STR_PARK_CHEATS_TIP } , /* tab 3 */ \
{ WWT_TAB , 1 , 96 , 126 , 17 , 43 , 0x20000000 | SPR_TAB , STR_RIDE_CHEATS_TIP } /* tab 4 */
2015-06-16 23:56:08 +02:00
2014-05-01 23:55:26 +02:00
static rct_widget window_cheats_money_widgets [ ] = {
2015-06-16 23:56:08 +02:00
MAIN_CHEATS_WIDGETS ,
2015-07-09 19:37:51 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 1 ) , HPL ( 1 ) , STR_CHEAT_5K_MONEY , STR_NONE } , // high money
2016-01-27 20:28:16 +01:00
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 3 ) , HPL ( 3 ) , STR_CHEAT_CLEAR_LOAN , STR_NONE } , // Clear loan
2014-04-15 01:50:20 +02:00
{ WIDGETS_END } ,
} ;
2014-05-01 23:55:26 +02:00
static rct_widget window_cheats_guests_widgets [ ] = {
2015-06-16 23:56:08 +02:00
MAIN_CHEATS_WIDGETS ,
2016-03-20 05:25:19 +01:00
{ WWT_GROUPBOX , 1 , XPL ( 0 ) - GROUP_SPACE , WPL ( 1 ) + GROUP_SPACE , YPL ( 0 ) , HPL ( 12.5 ) , STR_CHEAT_SET_GUESTS_PARAMETERS , STR_NONE } , // Guests parameters group frame
2015-07-09 19:37:51 +02:00
{ 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
{ WWT_CLOSEBOX , 1 , MIN_BTN_LEFT , MIN_BTN_RIGHT , YPL ( 2 ) , HPL ( 2 ) , STR_MIN , STR_NONE } , // energy min
{ WWT_CLOSEBOX , 1 , MAX_BTN_LEFT , MAX_BTN_RIGHT , YPL ( 3 ) , HPL ( 3 ) , STR_MAX , STR_NONE } , // hunger max
{ WWT_CLOSEBOX , 1 , MIN_BTN_LEFT , MIN_BTN_RIGHT , YPL ( 3 ) , HPL ( 3 ) , STR_MIN , STR_NONE } , // hunger min
{ WWT_CLOSEBOX , 1 , MAX_BTN_LEFT , MAX_BTN_RIGHT , YPL ( 4 ) , HPL ( 4 ) , STR_MAX , STR_NONE } , // thirst max
{ WWT_CLOSEBOX , 1 , MIN_BTN_LEFT , MIN_BTN_RIGHT , YPL ( 4 ) , HPL ( 4 ) , STR_MIN , STR_NONE } , // thirst min
{ WWT_CLOSEBOX , 1 , MAX_BTN_LEFT , MAX_BTN_RIGHT , YPL ( 5 ) , HPL ( 5 ) , STR_MAX , STR_NONE } , // nausea max
{ WWT_CLOSEBOX , 1 , MIN_BTN_LEFT , MIN_BTN_RIGHT , YPL ( 5 ) , HPL ( 5 ) , STR_MIN , STR_NONE } , // nausea min
{ WWT_CLOSEBOX , 1 , MAX_BTN_LEFT , MAX_BTN_RIGHT , YPL ( 6 ) , HPL ( 6 ) , STR_MAX , STR_NONE } , // nausea tolerance max
{ WWT_CLOSEBOX , 1 , MIN_BTN_LEFT , MIN_BTN_RIGHT , YPL ( 6 ) , HPL ( 6 ) , STR_MIN , STR_NONE } , // nausea tolerance min
{ WWT_CLOSEBOX , 1 , MAX_BTN_LEFT , MAX_BTN_RIGHT , YPL ( 7 ) , HPL ( 7 ) , STR_MAX , STR_NONE } , // bathroom max
{ 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
2016-04-26 12:28:12 +02:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 10 ) , OHPL ( 10 ) , STR_CHEAT_IGNORE_INTENSITY , STR_CHEAT_IGNORE_INTENSITY_TIP } , // guests ignore intensity
2015-08-31 11:12:15 +02:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 11 ) , OHPL ( 11 ) , STR_CHEAT_DISABLE_VANDALISM , STR_CHEAT_DISABLE_VANDALISM_TIP } , // disable vandalism
2016-03-20 05:25:19 +01:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 12 ) , OHPL ( 12 ) , STR_CHEAT_DISABLE_LITTERING , STR_CHEAT_DISABLE_LITTERING_TIP } , // disable littering
{ WWT_GROUPBOX , 1 , XPL ( 0 ) - GROUP_SPACE , WPL ( 1 ) + GROUP_SPACE , YPL ( 14 ) , HPL ( 16.5 ) , STR_CHEAT_GIVE_ALL_GUESTS , STR_NONE } , // Guests parameters group frame
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 15 ) , HPL ( 15 ) , STR_CHEAT_CURRENCY_FORMAT , STR_NONE } , // give guests money
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 15 ) , HPL ( 15 ) , STR_SHOP_ITEM_PLURAL_PARK_MAP , STR_NONE } , // give guests park maps
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 16 ) , HPL ( 16 ) , STR_SHOP_ITEM_PLURAL_BALLOON , STR_NONE } , // give guests balloons
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 16 ) , HPL ( 16 ) , STR_SHOP_ITEM_PLURAL_UMBRELLA , STR_NONE } , // give guests umbrellas
2016-04-26 12:28:12 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 18 ) , HPL ( 18 ) , STR_CHEAT_LARGE_TRAM_GUESTS , STR_CHEAT_LARGE_TRAM_GUESTS_TIP } , // large tram
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 18 ) , HPL ( 18 ) , STR_CHEAT_REMOVE_ALL_GUESTS , STR_CHEAT_REMOVE_ALL_GUESTS_TIP } , // remove all guests
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 19 ) , HPL ( 19 ) , STR_CHEAT_EXPLODE , STR_CHEAT_EXPLODE_TIP } , // explode guests
2014-07-16 04:41:12 +02:00
{ WIDGETS_END } ,
} ;
//Strings for following moved to window_cheats_paint()
static rct_widget window_cheats_misc_widgets [ ] = {
2015-06-16 23:56:08 +02:00
MAIN_CHEATS_WIDGETS ,
2016-02-15 15:55:36 +01:00
{ WWT_GROUPBOX , 1 , XPL ( 0 ) - GROUP_SPACE , WPL ( 1 ) + GROUP_SPACE , YPL ( 0 ) , HPL ( 6.25 ) , STR_CHEAT_GENERAL_GROUP , STR_NONE } , // General group
2016-06-04 22:05:30 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 1 ) , HPL ( 1 ) , STR_CHEAT_OPEN_PARK , STR_CHEAT_OPEN_PARK_TIP } , // open / close park
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 1 ) , HPL ( 1 ) , STR_CHEAT_PARK_PARAMETERS , STR_CHEAT_PARK_PARAMETERS_TIP } , // Park parameters
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 2 ) , HPL ( 2 ) , STR_CHEAT_SANDBOX_MODE , STR_CHEAT_SANDBOX_MODE_TIP } , // Sandbox mode (edit land ownership in-game)
2016-07-29 20:49:38 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 2 ) , HPL ( 2 ) , STR_CHEAT_RESET_DATE , STR_NONE } , // Reset date
2016-06-04 22:05:30 +02:00
{ WWT_CHECKBOX , 1 , XPL ( 0 ) , OWPL , YPL ( 3 ) , OHPL ( 3 ) , STR_CHEAT_UNLOCK_PRICES , STR_CHEAT_UNLOCK_PRICES_TIP } , // Unlock all prices
{ WWT_CHECKBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 4 ) , HPL ( 4 ) , STR_FORCE_PARK_RATING , STR_NONE } , // Force park rating
2015-07-09 19:37:51 +02:00
{ WWT_SPINNER , 1 , XPL ( 1 ) , WPL ( 1 ) - 10 , YPL ( 4 ) + 2 , HPL ( 4 ) - 3 , STR_NONE , STR_NONE } , // park rating
{ WWT_DROPDOWN_BUTTON , 1 , WPL ( 1 ) - 10 , WPL ( 1 ) , YPL ( 4 ) + 3 , YPL ( 4 ) + 7 , STR_NUMERIC_UP , STR_NONE } , // increase rating
{ WWT_DROPDOWN_BUTTON , 1 , WPL ( 1 ) - 10 , WPL ( 1 ) , YPL ( 4 ) + 8 , YPL ( 4 ) + 12 , STR_NUMERIC_DOWN , STR_NONE } , // decrease rating
2016-06-04 22:05:30 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 5 ) , HPL ( 5 ) , STR_CHEAT_WIN_SCENARIO , STR_NONE } , // Win scenario
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 5 ) , HPL ( 5 ) , STR_CHEAT_HAVE_FUN , STR_NONE } , // Have fun!
{ WWT_CHECKBOX , 1 , XPL ( 0 ) , OWPL , YPL ( 6 ) , HPL ( 6 ) , STR_CHEAT_NEVERENDING_MARKETING , STR_CHEAT_NEVERENDING_MARKETING_TIP } , // never ending marketing campaigns
{ WWT_GROUPBOX , 1 , XPL ( 0 ) - GROUP_SPACE , WPL ( 1 ) + GROUP_SPACE , YPL ( 7.25 ) , HPL ( 9.5 ) , STR_CHEAT_CLIMATE_GROUP , STR_NONE } , // Climate group
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 8 ) , HPL ( 8 ) , STR_CHEAT_FREEZE_CLIMATE , STR_CHEAT_FREEZE_CLIMATE_TIP } , // Freeze climate
2016-01-27 20:29:19 +01:00
{ WWT_DROPDOWN , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 9 ) + 2 , YPL ( 9 ) + 13 , STR_NONE , STR_FORCE_WEATHER_TOOLTIP } , // Force weather
{ WWT_DROPDOWN_BUTTON , 1 , WPL ( 1 ) - 11 , WPL ( 1 ) - 1 , YPL ( 9 ) + 3 , YPL ( 9 ) + 12 , STR_DROPDOWN_GLYPH , STR_FORCE_WEATHER_TOOLTIP } , // Force weather
2016-05-29 03:12:31 +02:00
{ WWT_GROUPBOX , 1 , XPL ( 0 ) - GROUP_SPACE , WPL ( 1 ) + GROUP_SPACE , YPL ( 11 ) , HPL ( 16.5 ) , STR_CHEAT_STAFF_GROUP , STR_NONE } , // Staff group
2016-06-04 22:05:30 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 12 ) , HPL ( 12 ) , STR_CHEAT_CLEAR_GRASS , STR_NONE } , // Clear grass
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 12 ) , HPL ( 12 ) , STR_CHEAT_MOWED_GRASS , STR_NONE } , // Mowed grass
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 13 ) , HPL ( 13 ) , STR_CHEAT_WATER_PLANTS , STR_NONE } , // Water plants
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 13 ) , HPL ( 13 ) , STR_CHEAT_FIX_VANDALISM , STR_NONE } , // Fix vandalism
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 14 ) , HPL ( 14 ) , STR_CHEAT_REMOVE_LITTER , STR_NONE } , // Remove litter
{ WWT_CHECKBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 15 ) , HPL ( 15 ) , STR_CHEAT_DISABLE_PLANT_AGING , STR_CHEAT_DISABLE_PLANT_AGING_TIP } , // Disable plant aging
2016-05-29 03:12:31 +02:00
{ WWT_CLOSEBOX , 1 , MAX_BTN_LEFT , MAX_BTN_RIGHT , YPL ( 16 ) , HPL ( 16 ) , STR_FAST , STR_NONE } , // Fast staff
{ WWT_CLOSEBOX , 1 , MIN_BTN_LEFT , MIN_BTN_RIGHT , YPL ( 16 ) , HPL ( 16 ) , STR_NORMAL , STR_NONE } , // Normal staff
2015-03-26 21:52:19 +01:00
{ WIDGETS_END } ,
} ;
static rct_widget window_cheats_rides_widgets [ ] = {
2015-06-16 23:56:08 +02:00
MAIN_CHEATS_WIDGETS ,
2016-04-26 12:28:12 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 0 ) , HPL ( 0 ) , STR_CHEAT_RENEW_RIDES , STR_CHEAT_RENEW_RIDES_TIP } , // Renew rides
2016-05-26 09:49:19 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 1 ) , HPL ( 1 ) , STR_CHEAT_MAKE_DESTRUCTABLE , STR_CHEAT_MAKE_DESTRUCTABLE_TIP } , // All destructible
2016-04-26 12:28:12 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 1 ) , HPL ( 1 ) , STR_CHEAT_FIX_ALL_RIDES , STR_CHEAT_FIX_ALL_RIDES_TIP } , // Fix all rides
2016-05-03 10:16:38 +02:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 11 ) , OHPL ( 11 ) , STR_CHEAT_UNLOCK_OPERATING_LIMITS , STR_CHEAT_UNLOCK_OPERATING_LIMITS_TIP } , // 410 km/h lift hill etc.
2016-04-26 12:28:12 +02:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 9 ) , OHPL ( 9 ) , STR_CHEAT_DISABLE_BRAKES_FAILURE , STR_CHEAT_DISABLE_BRAKES_FAILURE_TIP } , // Disable brakes failure
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 10 ) , OHPL ( 10 ) , STR_CHEAT_DISABLE_BREAKDOWNS , STR_CHEAT_DISABLE_BREAKDOWNS_TIP } , // Disable all breakdowns
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 8 ) , OHPL ( 8 ) , STR_CHEAT_BUILD_IN_PAUSE_MODE , STR_CHEAT_BUILD_IN_PAUSE_MODE_TIP } , // Build in pause mode
{ WWT_CLOSEBOX , 1 , XPL ( 0 ) , WPL ( 0 ) , YPL ( 2 ) , HPL ( 2 ) , STR_CHEAT_RESET_CRASH_STATUS , STR_CHEAT_RESET_CRASH_STATUS_TIP } , // Reset crash status
2015-10-24 17:10:33 +02:00
{ WWT_CLOSEBOX , 1 , XPL ( 1 ) , WPL ( 1 ) , YPL ( 2 ) , HPL ( 2 ) , STR_CHEAT_10_MINUTE_INSPECTIONS , STR_CHEAT_10_MINUTE_INSPECTIONS_TIP } , // 10 minute inspections
2015-09-18 11:55:52 +02:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 7 ) , OHPL ( 7 ) , STR_CHEAT_SHOW_ALL_OPERATING_MODES , STR_NONE } , // Show all operating modes
2015-10-12 15:58:15 +02:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 6 ) , OHPL ( 6 ) , STR_CHEAT_SHOW_VEHICLES_FROM_OTHER_TRACK_TYPES , STR_NONE } , // Show vehicles from other track types
2016-05-03 10:16:38 +02:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 12 ) , OHPL ( 12 ) , STR_CHEAT_DISABLE_TRAIN_LENGTH_LIMIT , STR_CHEAT_DISABLE_TRAIN_LENGTH_LIMIT_TIP } , // Disable train length limits
2016-06-07 23:08:38 +02:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 13 ) , OHPL ( 13 ) , STR_CHEAT_ENABLE_CHAIN_LIFT_ON_ALL_TRACK , STR_CHEAT_ENABLE_CHAIN_LIFT_ON_ALL_TRACK_TIP } , // Enable chain lift on all track
2016-07-26 00:52:50 +02:00
{ WWT_CHECKBOX , 2 , XPL ( 0 ) , OWPL , YPL ( 14 ) , OHPL ( 14 ) , STR_CHEAT_ALLOW_ARBITRARY_RIDE_TYPE_CHANGES , STR_CHEAT_ALLOW_ARBITRARY_RIDE_TYPE_CHANGES_TIP } , // Allow arbitrary ride type changes
2014-05-01 23:55:26 +02:00
{ WIDGETS_END } ,
} ;
static rct_widget * window_cheats_page_widgets [ ] = {
window_cheats_money_widgets ,
2014-07-16 04:41:12 +02:00
window_cheats_guests_widgets ,
window_cheats_misc_widgets ,
2015-03-26 21:52:19 +01:00
window_cheats_rides_widgets ,
2014-05-01 23:55:26 +02:00
} ;
2015-07-10 02:39:16 +02:00
static void window_cheats_money_mouseup ( rct_window * w , int widgetIndex ) ;
2016-01-27 20:29:19 +01:00
static void window_cheats_misc_mousedown ( int widgetIndex , rct_window * w , rct_widget * widget ) ;
static void window_cheats_misc_dropdown ( rct_window * w , int widgetIndex , int dropdownIndex ) ;
2015-07-10 02:39:16 +02:00
static void window_cheats_guests_mouseup ( rct_window * w , int widgetIndex ) ;
static void window_cheats_misc_mouseup ( rct_window * w , int widgetIndex ) ;
static void window_cheats_rides_mouseup ( rct_window * w , int widgetIndex ) ;
2014-05-19 19:47:14 +02:00
static void window_cheats_update ( rct_window * w ) ;
2015-07-10 02:39:16 +02:00
static void window_cheats_invalidate ( rct_window * w ) ;
static void window_cheats_paint ( rct_window * w , rct_drawpixelinfo * dpi ) ;
2014-05-01 23:55:26 +02:00
static void window_cheats_set_page ( rct_window * w , int page ) ;
2015-07-10 02:39:16 +02:00
static rct_window_event_list window_cheats_money_events = {
NULL ,
2014-05-02 07:59:12 +02:00
window_cheats_money_mouseup ,
2015-07-10 02:39:16 +02:00
NULL ,
NULL ,
NULL ,
NULL ,
2014-05-01 23:55:26 +02:00
window_cheats_update ,
2015-07-10 02:39:16 +02:00
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
2014-05-01 23:55:26 +02:00
window_cheats_invalidate ,
window_cheats_paint ,
2015-07-10 02:39:16 +02:00
NULL
2014-05-01 23:55:26 +02:00
} ;
2014-04-15 01:50:20 +02:00
2015-07-10 02:39:16 +02:00
static rct_window_event_list window_cheats_guests_events = {
NULL ,
2014-05-02 07:59:12 +02:00
window_cheats_guests_mouseup ,
2015-07-10 02:39:16 +02:00
NULL ,
NULL ,
NULL ,
NULL ,
2014-04-15 01:50:20 +02:00
window_cheats_update ,
2015-07-10 02:39:16 +02:00
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
2014-04-15 01:50:20 +02:00
window_cheats_invalidate ,
window_cheats_paint ,
2015-07-10 02:39:16 +02:00
NULL
2014-04-15 01:50:20 +02:00
} ;
2015-07-10 02:39:16 +02:00
static rct_window_event_list window_cheats_misc_events = {
NULL ,
2014-07-16 04:41:12 +02:00
window_cheats_misc_mouseup ,
2015-07-10 02:39:16 +02:00
NULL ,
2016-01-27 20:29:19 +01:00
window_cheats_misc_mousedown ,
window_cheats_misc_dropdown ,
2015-07-10 02:39:16 +02:00
NULL ,
2014-07-16 04:41:12 +02:00
window_cheats_update ,
2015-07-10 02:39:16 +02:00
NULL ,
NULL ,
2015-08-04 21:25:24 +02:00
NULL ,
NULL ,
2015-07-10 02:39:16 +02:00
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
2014-07-16 04:41:12 +02:00
window_cheats_invalidate ,
window_cheats_paint ,
2015-07-10 02:39:16 +02:00
NULL
2014-07-16 04:41:12 +02:00
} ;
2015-07-10 02:39:16 +02:00
static rct_window_event_list window_cheats_rides_events = {
NULL ,
2015-03-26 21:52:19 +01:00
window_cheats_rides_mouseup ,
2015-07-10 02:39:16 +02:00
NULL ,
NULL ,
NULL ,
NULL ,
2015-03-26 21:52:19 +01:00
window_cheats_update ,
2015-07-10 02:39:16 +02:00
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ,
2015-03-26 21:52:19 +01:00
window_cheats_invalidate ,
window_cheats_paint ,
2015-07-10 02:39:16 +02:00
NULL
2015-03-26 21:52:19 +01:00
} ;
2015-07-10 02:39:16 +02:00
static rct_window_event_list * window_cheats_page_events [ ] = {
& window_cheats_money_events ,
& window_cheats_guests_events ,
& window_cheats_misc_events ,
& window_cheats_rides_events ,
2014-05-01 23:55:26 +02:00
} ;
2015-07-09 16:34:34 +02:00
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 ) ,
2016-05-02 22:35:08 +02:00
( 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_DISABLE_LITTERING ) ,
( 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 ) | ( 1ULL < < WIDX_WEATHER_DROPDOWN_BUTTON ) | ( 1ULL < < WIDX_CLEAR_GRASS ) | ( 1ULL < < WIDX_MOWED_GRASS ) |
2016-05-29 03:12:31 +02:00
( 1ULL < < WIDX_WATER_PLANTS ) | ( 1ULL < < WIDX_DISABLE_PLANT_AGING ) | ( 1ULL < < WIDX_FIX_VANDALISM ) | ( 1ULL < < WIDX_REMOVE_LITTER ) | ( 1ULL < < WIDX_WIN_SCENARIO ) | ( 1ULL < < WIDX_HAVE_FUN ) |
2016-07-29 20:49:38 +02:00
( 1ULL < < WIDX_NEVERENDING_MARKETING ) | ( 1ULL < < WIDX_UNLOCK_ALL_PRICES ) | ( 1ULL < < WIDX_SANDBOX_MODE ) | ( 1ULL < < WIDX_RESET_DATE ) | ( 1ULL < < WIDX_FAST_STAFF ) | ( 1ULL < < WIDX_NORMAL_STAFF ) |
2016-05-02 22:35:08 +02:00
( 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 ) | ( 1ULL < < WIDX_10_MINUTE_INSPECTIONS ) |
2016-07-26 00:52:50 +02:00
( 1ULL < < WIDX_SHOW_ALL_OPERATING_MODES ) | ( 1ULL < < WIDX_SHOW_VEHICLES_FROM_OTHER_TRACK_TYPES ) | ( 1ULL < < WIDX_DISABLE_TRAIN_LENGTH_LIMITS ) |
( 1ULL < < WIDX_ENABLE_CHAIN_LIFT_ON_ALL_TRACK ) | ( 1ULL < < WIDX_ENABLE_ARBITRARY_RIDE_TYPE_CHANGES )
2014-05-01 23:55:26 +02:00
} ;
2015-06-16 23:56:08 +02:00
static rct_string_id window_cheats_page_titles [ ] = {
STR_CHEAT_TITLE_FINANCIAL ,
STR_CHEAT_TITLE_GUEST ,
STR_CHEAT_TITLE_RIDE ,
STR_CHEAT_TITLE_PARK ,
} ;
2014-04-15 01:50:20 +02:00
static void window_cheats_draw_tab_images ( rct_drawpixelinfo * dpi , rct_window * w ) ;
2015-06-25 15:14:36 +02:00
int park_rating_spinner_pressed_for = 0 ;
2014-04-15 01:50:20 +02:00
void window_cheats_open ( )
{
rct_window * window ;
// Check if window is already open
2014-10-16 03:02:43 +02:00
window = window_bring_to_front_by_class ( WC_CHEATS ) ;
2014-04-15 01:50:20 +02:00
if ( window ! = NULL )
return ;
2015-07-10 02:39:16 +02:00
window = window_create ( 32 , 32 , WW , WH , & window_cheats_money_events , WC_CHEATS , 0 ) ;
2014-05-01 23:55:26 +02:00
window - > widgets = window_cheats_money_widgets ;
window - > enabled_widgets = window_cheats_page_enabled_widgets [ 0 ] ;
2014-04-15 01:50:20 +02:00
window_init_scroll_widgets ( window ) ;
2015-06-16 23:56:08 +02:00
window_cheats_set_page ( window , WINDOW_CHEATS_PAGE_MONEY ) ;
2015-06-25 15:14:36 +02:00
park_rating_spinner_value = get_forced_park_rating ( ) > = 0 ? get_forced_park_rating ( ) : 999 ;
2014-04-15 01:50:20 +02:00
}
2016-01-27 20:29:19 +01:00
static void window_cheats_misc_mousedown ( int widgetIndex , rct_window * w , rct_widget * widget )
{
rct_widget * dropdownWidget ;
int i ;
if ( widgetIndex ! = WIDX_WEATHER_DROPDOWN_BUTTON )
return ;
dropdownWidget = widget - 1 ;
for ( i = 0 ; i < 6 ; i + + ) {
2016-05-18 22:51:37 +02:00
gDropdownItemsFormat [ i ] = STR_DROPDOWN_MENU_LABEL ;
2016-07-14 14:07:49 +02:00
gDropdownItemsArgs [ i ] = WeatherTypes [ i ] ;
2016-01-27 20:29:19 +01:00
}
window_dropdown_show_text_custom_width (
w - > x + dropdownWidget - > left ,
w - > y + dropdownWidget - > top ,
dropdownWidget - > bottom - dropdownWidget - > top + 1 ,
w - > colours [ 1 ] ,
DROPDOWN_FLAG_STAY_OPEN ,
6 ,
dropdownWidget - > right - dropdownWidget - > left - 3
) ;
2016-04-23 11:53:48 +02:00
int currentWeather = gClimateCurrentWeather ;
2016-01-27 20:29:19 +01:00
dropdown_set_checked ( currentWeather , true ) ;
}
static void window_cheats_misc_dropdown ( rct_window * w , int widgetIndex , int dropdownIndex )
{
if ( widgetIndex ! = WIDX_WEATHER_DROPDOWN_BUTTON | | dropdownIndex = = - 1 )
return ;
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_FORCEWEATHER , dropdownIndex , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2016-01-27 20:29:19 +01:00
}
2015-07-10 02:39:16 +02:00
static void window_cheats_money_mouseup ( rct_window * w , int widgetIndex )
2014-04-15 01:50:20 +02:00
{
switch ( widgetIndex ) {
case WIDX_CLOSE :
window_close ( w ) ;
break ;
2014-05-01 23:55:26 +02:00
case WIDX_TAB_1 :
case WIDX_TAB_2 :
2014-07-16 04:41:12 +02:00
case WIDX_TAB_3 :
2015-03-26 21:52:19 +01:00
case WIDX_TAB_4 :
2014-05-01 23:55:26 +02:00
window_cheats_set_page ( w , widgetIndex - WIDX_TAB_1 ) ;
break ;
2014-04-15 01:50:20 +02:00
case WIDX_HIGH_MONEY :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_INCREASEMONEY , CHEATS_MONEY_INCREMENT , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-05-01 23:55:26 +02:00
break ;
2015-06-10 19:23:10 +02:00
case WIDX_CLEAR_LOAN :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_CLEARLOAN , CHEATS_MONEY_INCREMENT , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-10 19:23:10 +02:00
break ;
2014-05-02 07:59:12 +02:00
}
}
2015-07-10 02:39:16 +02:00
static void window_cheats_guests_mouseup ( rct_window * w , int widgetIndex )
2014-05-02 07:59:12 +02:00
{
switch ( widgetIndex ) {
case WIDX_CLOSE :
window_close ( w ) ;
break ;
case WIDX_TAB_1 :
case WIDX_TAB_2 :
2014-07-16 04:41:12 +02:00
case WIDX_TAB_3 :
2015-03-26 21:52:19 +01:00
case WIDX_TAB_4 :
2014-05-02 07:59:12 +02:00
window_cheats_set_page ( w , widgetIndex - WIDX_TAB_1 ) ;
break ;
2015-06-16 18:25:37 +02:00
case WIDX_GUEST_HAPPINESS_MAX :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_HAPPINESS , GAME_COMMAND_CHEAT , 255 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_HAPPINESS_MIN :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_HAPPINESS , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_ENERGY_MAX :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_ENERGY , GAME_COMMAND_CHEAT , 127 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_ENERGY_MIN :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_ENERGY , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_HUNGER_MAX :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_HUNGER , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_HUNGER_MIN :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_HUNGER , GAME_COMMAND_CHEAT , 255 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_THIRST_MAX :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_THIRST , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_THIRST_MIN :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_THIRST , GAME_COMMAND_CHEAT , 255 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_NAUSEA_MAX :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_NAUSEA , GAME_COMMAND_CHEAT , 255 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_NAUSEA_MIN :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_NAUSEA , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_NAUSEA_TOLERANCE_MAX :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_NAUSEA_TOLERANCE , GAME_COMMAND_CHEAT , PEEP_NAUSEA_TOLERANCE_HIGH , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_NAUSEA_TOLERANCE_MIN :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_NAUSEA_TOLERANCE , GAME_COMMAND_CHEAT , PEEP_NAUSEA_TOLERANCE_NONE , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_BATHROOM_MAX :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_BATHROOM , GAME_COMMAND_CHEAT , 255 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_BATHROOM_MIN :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_BATHROOM , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1 :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY , GAME_COMMAND_CHEAT , 1 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15 :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGUESTPARAMETER , GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-04-15 01:50:20 +02:00
break ;
2014-07-16 04:41:12 +02:00
case WIDX_TRAM_GUESTS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_GENERATEGUESTS , CHEATS_TRAM_INCREMENT , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-07-16 04:41:12 +02:00
break ;
2015-06-16 18:25:37 +02:00
case WIDX_REMOVE_ALL_GUESTS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_REMOVEALLGUESTS , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-05-31 02:44:08 +02:00
break ;
2015-06-10 00:50:40 +02:00
case WIDX_EXPLODE_GUESTS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_EXPLODEGUESTS , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-10 00:50:40 +02:00
break ;
2015-07-09 16:34:34 +02:00
case WIDX_GIVE_GUESTS_MONEY :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_GIVEALLGUESTS , OBJECT_MONEY , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-07-09 16:34:34 +02:00
break ;
2015-06-16 18:25:37 +02:00
case WIDX_GIVE_GUESTS_PARK_MAPS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_GIVEALLGUESTS , OBJECT_PARK_MAP , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GIVE_GUESTS_BALLOONS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_GIVEALLGUESTS , OBJECT_BALLOON , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
case WIDX_GIVE_GUESTS_UMBRELLAS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_GIVEALLGUESTS , OBJECT_UMBRELLA , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-16 18:25:37 +02:00
break ;
2015-08-15 20:42:53 +02:00
case WIDX_GUEST_IGNORE_RIDE_INTENSITY :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_IGNORERIDEINTENSITY , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-08-15 20:42:53 +02:00
break ;
2015-08-31 11:12:15 +02:00
case WIDX_DISABLE_VANDALISM :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_DISABLEVANDALISM , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-08-31 11:12:15 +02:00
break ;
2016-03-20 05:25:19 +01:00
case WIDX_DISABLE_LITTERING :
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_DISABLELITTERING , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
break ;
2014-07-16 04:41:12 +02:00
}
}
2015-07-10 02:39:16 +02:00
static void window_cheats_misc_mouseup ( rct_window * w , int widgetIndex )
2014-07-16 04:41:12 +02:00
{
switch ( widgetIndex ) {
case WIDX_CLOSE :
window_close ( w ) ;
break ;
case WIDX_TAB_1 :
case WIDX_TAB_2 :
case WIDX_TAB_3 :
2015-03-26 21:52:19 +01:00
case WIDX_TAB_4 :
2014-07-16 04:41:12 +02:00
window_cheats_set_page ( w , widgetIndex - WIDX_TAB_1 ) ;
break ;
case WIDX_FREEZE_CLIMATE :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_FREEZECLIMATE , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-07-16 04:41:12 +02:00
break ;
case WIDX_OPEN_CLOSE_PARK :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_OPENCLOSEPARK , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-07-16 04:41:12 +02:00
break ;
2014-12-10 02:44:30 +01:00
case WIDX_CLEAR_GRASS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGRASSLENGTH , GRASS_LENGTH_CLEAR_0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-12-10 02:44:30 +01:00
break ;
case WIDX_MOWED_GRASS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETGRASSLENGTH , GRASS_LENGTH_MOWED , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-12-10 02:44:30 +01:00
break ;
case WIDX_WATER_PLANTS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_WATERPLANTS , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-12-10 02:44:30 +01:00
break ;
case WIDX_FIX_VANDALISM :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_FIXVANDALISM , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-12-10 02:44:30 +01:00
break ;
case WIDX_REMOVE_LITTER :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_REMOVELITTER , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2014-12-10 02:44:30 +01:00
break ;
2016-05-29 03:12:31 +02:00
case WIDX_DISABLE_PLANT_AGING :
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_DISABLEPLANTAGING , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
break ;
2015-02-21 03:04:33 +01:00
case WIDX_WIN_SCENARIO :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_WINSCENARIO , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-02-21 03:04:33 +01:00
break ;
2015-07-09 16:34:34 +02:00
case WIDX_HAVE_FUN :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_HAVEFUN , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-07-09 16:34:34 +02:00
break ;
2016-02-15 15:55:36 +01:00
case WIDX_NEVERENDING_MARKETING :
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_NEVERENDINGMARKETING , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
break ;
2015-05-22 12:41:22 +02:00
case WIDX_UNLOCK_ALL_PRICES :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_UNLOCKALLPRICES , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-05-22 12:41:22 +02:00
break ;
2015-06-09 17:19:05 +02:00
case WIDX_SANDBOX_MODE :
2016-11-05 10:08:00 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SANDBOXMODE , ! gCheatsSandboxMode , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-07 12:45:55 +02:00
// To prevent tools from staying active after disabling cheat
2016-02-02 01:04:39 +01:00
//tool_cancel();
2015-06-07 12:45:55 +02:00
break ;
2016-07-29 20:49:38 +02:00
case WIDX_RESET_DATE :
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_RESETDATE , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
break ;
2015-06-18 15:10:53 +02:00
case WIDX_FAST_STAFF :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETSTAFFSPEED , 0xFF , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-18 15:10:53 +02:00
break ;
case WIDX_NORMAL_STAFF :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETSTAFFSPEED , 0x60 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-18 15:10:53 +02:00
break ;
2015-06-19 14:59:48 +02:00
case WIDX_PARK_PARAMETERS :
window_editor_scenario_options_open ( ) ;
break ;
2015-06-25 15:14:36 +02:00
case WIDX_FORCE_PARK_RATING :
if ( get_forced_park_rating ( ) > = 0 ) {
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETFORCEDPARKRATING , - 1 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-25 15:14:36 +02:00
} else {
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETFORCEDPARKRATING , park_rating_spinner_value , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-25 15:14:36 +02:00
}
break ;
case WIDX_INCREASE_PARK_RATING :
park_rating_spinner_value = min ( 999 , 10 * ( park_rating_spinner_value / 10 + 1 ) ) ;
widget_invalidate_by_class ( WC_CHEATS , WIDX_PARK_RATING_SPINNER ) ;
if ( get_forced_park_rating ( ) > = 0 )
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETFORCEDPARKRATING , park_rating_spinner_value , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-25 15:14:36 +02:00
break ;
case WIDX_DECREASE_PARK_RATING :
park_rating_spinner_value = max ( 0 , 10 * ( park_rating_spinner_value / 10 - 1 ) ) ;
widget_invalidate_by_class ( WC_CHEATS , WIDX_PARK_RATING_SPINNER ) ;
if ( get_forced_park_rating ( ) > = 0 )
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SETFORCEDPARKRATING , park_rating_spinner_value , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-25 15:14:36 +02:00
break ;
2015-03-26 21:52:19 +01:00
}
}
2015-07-10 02:39:16 +02:00
static void window_cheats_rides_mouseup ( rct_window * w , int widgetIndex )
2015-03-26 21:52:19 +01:00
{
switch ( widgetIndex ) {
case WIDX_CLOSE :
window_close ( w ) ;
break ;
case WIDX_TAB_1 :
case WIDX_TAB_2 :
case WIDX_TAB_3 :
case WIDX_TAB_4 :
window_cheats_set_page ( w , widgetIndex - WIDX_TAB_1 ) ;
break ;
2015-03-18 16:21:45 +01:00
case WIDX_RENEW_RIDES :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_RENEWRIDES , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-03-18 16:21:45 +01:00
break ;
2015-03-28 19:29:19 +01:00
case WIDX_MAKE_DESTRUCTIBLE :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_MAKEDESTRUCTIBLE , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-03-28 19:29:19 +01:00
break ;
2015-05-15 16:49:46 +02:00
case WIDX_FIX_ALL :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_FIXRIDES , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-05-15 16:49:46 +02:00
break ;
2015-05-16 17:16:09 +02:00
case WIDX_FAST_LIFT_HILL :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_FASTLIFTHILL , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-05-17 14:26:45 +02:00
break ;
case WIDX_DISABLE_BRAKES_FAILURE :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_DISABLEBRAKESFAILURE , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-05-17 14:26:45 +02:00
break ;
2015-05-17 18:55:57 +02:00
case WIDX_DISABLE_ALL_BREAKDOWNS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_DISABLEALLBREAKDOWNS , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-05-17 18:55:57 +02:00
break ;
2015-06-10 18:12:21 +02:00
case WIDX_BUILD_IN_PAUSE_MODE :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_BUILDINPAUSEMODE , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-18 15:42:09 +02:00
break ;
case WIDX_RESET_CRASH_STATUS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_RESETCRASHSTATUS , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-06-18 15:42:09 +02:00
break ;
2015-10-24 17:10:33 +02:00
case WIDX_10_MINUTE_INSPECTIONS :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_10MINUTEINSPECTIONS , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-10-24 17:10:33 +02:00
break ;
2015-09-18 11:55:52 +02:00
case WIDX_SHOW_ALL_OPERATING_MODES :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SHOWALLOPERATINGMODES , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-11-06 19:46:18 +01:00
if ( gCheatsShowAllOperatingModes ) {
window_error_open ( STR_WARNING_IN_CAPS , STR_THIS_FEATURE_IS_CURRENTLY_UNSTABLE ) ;
}
2015-09-18 11:55:52 +02:00
break ;
2015-10-12 15:58:15 +02:00
case WIDX_SHOW_VEHICLES_FROM_OTHER_TRACK_TYPES :
2016-02-02 01:04:39 +01:00
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_SHOWVEHICLESFROMOTHERTRACKTYPES , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
2015-11-06 19:46:18 +01:00
if ( gCheatsShowVehiclesFromOtherTrackTypes ) {
window_error_open ( STR_WARNING_IN_CAPS , STR_THIS_FEATURE_IS_CURRENTLY_UNSTABLE ) ;
}
2015-10-12 15:58:15 +02:00
break ;
2016-03-28 22:57:47 +02:00
case WIDX_DISABLE_TRAIN_LENGTH_LIMITS :
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_DISABLETRAINLENGTHLIMIT , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
if ( gCheatsDisableTrainLengthLimit ) {
window_error_open ( STR_WARNING_IN_CAPS , STR_THIS_FEATURE_IS_CURRENTLY_UNSTABLE ) ;
}
break ;
2016-06-07 23:08:38 +02:00
case WIDX_ENABLE_CHAIN_LIFT_ON_ALL_TRACK :
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_ENABLECHAINLIFTONALLTRACK , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
break ;
2016-07-26 00:52:50 +02:00
case WIDX_ENABLE_ARBITRARY_RIDE_TYPE_CHANGES :
game_do_command ( 0 , GAME_COMMAND_FLAG_APPLY , CHEAT_ALLOW_ARBITRARY_RIDE_TYPE_CHANGES , 0 , GAME_COMMAND_CHEAT , 0 , 0 ) ;
if ( gCheatsAllowArbitraryRideTypeChanges ) {
window_error_open ( STR_WARNING_IN_CAPS , STR_THIS_FEATURE_IS_CURRENTLY_UNSTABLE ) ;
}
break ;
2014-04-15 01:50:20 +02:00
}
}
2014-05-18 21:32:50 +02:00
static void window_cheats_update ( rct_window * w )
2014-04-15 01:50:20 +02:00
{
2014-07-23 19:07:38 +02:00
w - > frame_no + + ;
2014-10-16 03:02:43 +02:00
widget_invalidate ( w , WIDX_TAB_1 + w - > page ) ;
2015-06-25 15:14:36 +02:00
if ( widget_is_pressed ( w , WIDX_INCREASE_PARK_RATING ) | | widget_is_pressed ( w , WIDX_DECREASE_PARK_RATING ) )
park_rating_spinner_pressed_for + + ;
else
park_rating_spinner_pressed_for = 0 ;
if ( park_rating_spinner_pressed_for > = CHEATS_PARK_RATING_SPINNER_PAUSE )
if ( ! ( w - > frame_no % 3 ) ) {
if ( widget_is_pressed ( w , WIDX_INCREASE_PARK_RATING ) ) {
park_rating_spinner_value = min ( 999 , 10 * ( park_rating_spinner_value / 10 + 1 ) ) ;
widget_invalidate_by_class ( WC_CHEATS , WIDX_PARK_RATING_SPINNER ) ;
if ( get_forced_park_rating ( ) > = 0 )
set_forced_park_rating ( park_rating_spinner_value ) ;
} else if ( widget_is_pressed ( w , WIDX_DECREASE_PARK_RATING ) ) {
park_rating_spinner_value = max ( 0 , 10 * ( park_rating_spinner_value / 10 - 1 ) ) ;
widget_invalidate_by_class ( WC_CHEATS , WIDX_PARK_RATING_SPINNER ) ;
if ( get_forced_park_rating ( ) > = 0 )
set_forced_park_rating ( park_rating_spinner_value ) ;
}
}
2014-04-15 01:50:20 +02:00
}
2015-07-10 02:39:16 +02:00
static void window_cheats_invalidate ( rct_window * w )
2014-04-15 01:50:20 +02:00
{
int i ;
2015-05-29 18:04:53 +02:00
colour_scheme_update ( w ) ;
2014-05-19 22:53:14 +02:00
2014-05-12 03:18:08 +02:00
rct_widget * widgets = window_cheats_page_widgets [ w - > page ] ;
2014-05-01 23:55:26 +02:00
if ( w - > widgets ! = widgets ) {
w - > widgets = widgets ;
window_init_scroll_widgets ( w ) ;
}
2015-06-04 19:52:35 +02:00
w - > pressed_widgets = 0 ;
2014-12-10 02:44:30 +01:00
switch ( w - > page ) {
2015-07-09 16:34:34 +02:00
case WINDOW_CHEATS_PAGE_MONEY :
2016-05-15 23:03:53 +02:00
set_format_arg ( 0 , int , 50000 ) ;
2015-07-09 16:34:34 +02:00
break ;
case WINDOW_CHEATS_PAGE_GUESTS :
2016-05-15 23:03:53 +02:00
set_format_arg ( 0 , int , 10000 ) ;
2016-01-25 21:24:18 +01:00
widget_set_checkbox_value ( w , WIDX_GUEST_IGNORE_RIDE_INTENSITY , gCheatsIgnoreRideIntensity ) ;
widget_set_checkbox_value ( w , WIDX_DISABLE_VANDALISM , gCheatsDisableVandalism ) ;
2016-03-20 05:25:19 +01:00
widget_set_checkbox_value ( w , WIDX_DISABLE_LITTERING , gCheatsDisableLittering ) ;
2015-07-09 16:34:34 +02:00
break ;
2014-12-10 02:44:30 +01:00
case WINDOW_CHEATS_PAGE_MISC :
2016-07-14 14:07:49 +02:00
w - > widgets [ WIDX_OPEN_CLOSE_PARK ] . text = gParkFlags & PARK_FLAGS_PARK_OPEN ?
2015-06-04 19:52:35 +02:00
STR_CHEAT_CLOSE_PARK : STR_CHEAT_OPEN_PARK ;
2016-01-25 21:24:18 +01:00
widget_set_checkbox_value ( w , WIDX_UNLOCK_ALL_PRICES , gCheatsUnlockAllPrices ) ;
2015-06-25 15:14:36 +02:00
widget_set_checkbox_value ( w , WIDX_FORCE_PARK_RATING , get_forced_park_rating ( ) > = 0 ) ;
2016-07-14 14:07:49 +02:00
w - > widgets [ WIDX_SANDBOX_MODE ] . text = gCheatsSandboxMode ? STR_CHEAT_SANDBOX_MODE_DISABLE : STR_CHEAT_SANDBOX_MODE ;
w - > widgets [ WIDX_FREEZE_CLIMATE ] . text = gCheatsFreezeClimate ? STR_CHEAT_UNFREEZE_CLIMATE : STR_CHEAT_FREEZE_CLIMATE ;
2016-02-15 15:55:36 +01:00
widget_set_checkbox_value ( w , WIDX_NEVERENDING_MARKETING , gCheatsNeverendingMarketing ) ;
2016-05-29 03:12:31 +02:00
widget_set_checkbox_value ( w , WIDX_DISABLE_PLANT_AGING , gCheatsDisablePlantAging ) ;
2014-12-10 02:44:30 +01:00
break ;
2015-05-16 17:16:09 +02:00
case WINDOW_CHEATS_PAGE_RIDES :
2016-05-15 23:03:53 +02:00
set_format_arg ( 0 , uint16 , 255 ) ;
2016-01-25 21:24:18 +01:00
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 ) ;
2015-09-18 11:55:52 +02:00
widget_set_checkbox_value ( w , WIDX_SHOW_ALL_OPERATING_MODES , gCheatsShowAllOperatingModes ) ;
2015-10-12 15:58:15 +02:00
widget_set_checkbox_value ( w , WIDX_SHOW_VEHICLES_FROM_OTHER_TRACK_TYPES , gCheatsShowVehiclesFromOtherTrackTypes ) ;
2016-03-28 22:57:47 +02:00
widget_set_checkbox_value ( w , WIDX_DISABLE_TRAIN_LENGTH_LIMITS , gCheatsDisableTrainLengthLimit ) ;
2016-06-07 23:08:38 +02:00
widget_set_checkbox_value ( w , WIDX_ENABLE_CHAIN_LIFT_ON_ALL_TRACK , gCheatsEnableChainLiftOnAllTrack ) ;
2016-07-26 00:52:50 +02:00
widget_set_checkbox_value ( w , WIDX_ENABLE_ARBITRARY_RIDE_TYPE_CHANGES , gCheatsAllowArbitraryRideTypeChanges ) ;
2015-05-16 17:16:09 +02:00
break ;
2014-12-10 02:44:30 +01:00
}
2014-04-15 01:50:20 +02:00
// Set correct active tab
for ( i = 0 ; i < 7 ; i + + )
w - > pressed_widgets & = ~ ( 1 < < ( WIDX_TAB_1 + i ) ) ;
2014-05-12 03:18:08 +02:00
w - > pressed_widgets | = 1LL < < ( WIDX_TAB_1 + w - > page ) ;
2015-06-16 23:56:08 +02:00
// Set title
2016-07-14 14:07:49 +02:00
w - > widgets [ WIDX_TITLE ] . text = window_cheats_page_titles [ w - > page ] ;
2016-01-27 20:29:19 +01:00
2016-02-02 01:04:39 +01:00
2016-01-27 20:29:19 +01:00
// Current weather
2016-07-14 14:07:49 +02:00
window_cheats_misc_widgets [ WIDX_WEATHER ] . text = WeatherTypes [ gClimateCurrentWeather ] ;
2014-04-15 01:50:20 +02:00
}
2015-07-10 02:39:16 +02:00
static void window_cheats_paint ( rct_window * w , rct_drawpixelinfo * dpi )
2014-04-15 01:50:20 +02:00
{
window_draw_widgets ( w , dpi ) ;
window_cheats_draw_tab_images ( dpi , w ) ;
2014-06-14 11:19:42 +02:00
if ( w - > page = = WINDOW_CHEATS_PAGE_MONEY ) {
2016-05-15 23:03:53 +02:00
set_format_arg ( 0 , money32 , CHEATS_MONEY_INCREMENT ) ;
2016-11-13 18:20:30 +01:00
gfx_draw_string_left ( dpi , STR_CHEAT_5K_MONEY_TIP , gCommonFormatArgs , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 0 ) + TXTO ) ;
gfx_draw_string_left ( dpi , STR_CHEAT_CLEAR_LOAN_TIP , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 2 ) + TXTO ) ;
2014-06-14 11:19:42 +02:00
}
2015-06-18 15:10:53 +02:00
else if ( w - > page = = WINDOW_CHEATS_PAGE_MISC ) {
2016-11-13 18:20:30 +01:00
gfx_draw_string_left ( dpi , STR_CHEAT_STAFF_SPEED , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 16 ) + TXTO ) ;
gfx_draw_string_left ( dpi , STR_FORCE_WEATHER , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 9 ) + TXTO ) ;
2016-07-14 14:07:49 +02:00
gfx_draw_string_right ( dpi , STR_FORMAT_INTEGER , & park_rating_spinner_value , w - > colours [ 2 ] , w - > x + WPL ( 1 ) - 10 - TXTO , w - > y + YPL ( 4 ) + TXTO ) ;
2015-06-18 15:10:53 +02:00
}
2014-06-14 11:19:42 +02:00
else if ( w - > page = = WINDOW_CHEATS_PAGE_GUESTS ) {
2016-11-13 18:20:30 +01:00
gfx_draw_string_left ( dpi , STR_CHEAT_GUEST_HAPPINESS , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 1 ) + TXTO ) ;
gfx_draw_string_left ( dpi , STR_CHEAT_GUEST_ENERGY , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 2 ) + TXTO ) ;
gfx_draw_string_left ( dpi , STR_CHEAT_GUEST_HUNGER , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 3 ) + TXTO ) ;
gfx_draw_string_left ( dpi , STR_CHEAT_GUEST_THIRST , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 4 ) + TXTO ) ;
gfx_draw_string_left ( dpi , STR_CHEAT_GUEST_NAUSEA , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 5 ) + TXTO ) ;
gfx_draw_string_left ( dpi , STR_CHEAT_GUEST_NAUSEA_TOLERANCE , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 6 ) + TXTO ) ;
gfx_draw_string_left ( dpi , STR_CHEAT_GUEST_BATHROOM , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 7 ) + TXTO ) ;
gfx_draw_string_left ( dpi , STR_CHEAT_GUEST_PREFERRED_INTENSITY , NULL , COLOUR_BLACK , w - > x + XPL ( 0 ) + TXTO , w - > y + YPL ( 8 ) + TXTO ) ;
2014-06-14 11:19:42 +02:00
}
2014-04-15 01:50:20 +02:00
}
static void window_cheats_draw_tab_images ( rct_drawpixelinfo * dpi , rct_window * w )
{
int sprite_idx ;
// Money tab
if ( ! ( w - > disabled_widgets & ( 1 < < WIDX_TAB_1 ) ) ) {
2016-05-18 22:51:37 +02:00
sprite_idx = SPR_TAB_FINANCES_SUMMARY_0 ;
2014-04-16 03:05:49 +02:00
if ( w - > page = = WINDOW_CHEATS_PAGE_MONEY )
2014-07-23 19:07:38 +02:00
sprite_idx + = ( w - > frame_no / 2 ) % 8 ;
2014-08-08 20:16:57 +02:00
gfx_draw_sprite ( dpi , sprite_idx , w - > x + w - > widgets [ WIDX_TAB_1 ] . left , w - > y + w - > widgets [ WIDX_TAB_1 ] . top , 0 ) ;
2014-04-15 01:50:20 +02:00
}
2015-10-20 20:16:30 +02:00
2014-04-15 01:50:20 +02:00
// Guests tab
if ( ! ( w - > disabled_widgets & ( 1 < < WIDX_TAB_2 ) ) ) {
2016-05-18 22:51:37 +02:00
sprite_idx = SPR_TAB_GUESTS_0 ;
2014-04-16 03:05:49 +02:00
if ( w - > page = = WINDOW_CHEATS_PAGE_GUESTS )
2014-07-23 19:07:38 +02:00
sprite_idx + = ( w - > frame_no / 3 ) % 8 ;
2014-08-08 20:16:57 +02:00
gfx_draw_sprite ( dpi , sprite_idx , w - > x + w - > widgets [ WIDX_TAB_2 ] . left , w - > y + w - > widgets [ WIDX_TAB_2 ] . top , 0 ) ;
2014-04-15 01:50:20 +02:00
}
2014-07-16 04:41:12 +02:00
// Misc tab
if ( ! ( w - > disabled_widgets & ( 1 < < WIDX_TAB_3 ) ) ) {
2015-12-26 18:19:25 +01:00
sprite_idx = SPR_TAB_PARK ;
2014-08-08 20:16:57 +02:00
gfx_draw_sprite ( dpi , sprite_idx , w - > x + w - > widgets [ WIDX_TAB_3 ] . left , w - > y + w - > widgets [ WIDX_TAB_3 ] . top , 0 ) ;
2014-07-16 04:41:12 +02:00
}
2015-03-26 21:52:19 +01:00
// Rides tab
if ( ! ( w - > disabled_widgets & ( 1 < < WIDX_TAB_4 ) ) ) {
2015-03-28 18:20:19 +01:00
sprite_idx = SPR_TAB_RIDE_0 ;
if ( w - > page = = WINDOW_CHEATS_PAGE_RIDES )
sprite_idx + = ( w - > frame_no / 4 ) % 16 ;
2015-03-26 21:52:19 +01:00
gfx_draw_sprite ( dpi , sprite_idx , w - > x + w - > widgets [ WIDX_TAB_4 ] . left , w - > y + w - > widgets [ WIDX_TAB_4 ] . top , 0 ) ;
}
2014-04-21 11:27:48 +02:00
}
2014-05-01 23:55:26 +02:00
static void window_cheats_set_page ( rct_window * w , int page )
{
w - > page = page ;
2015-03-28 18:20:19 +01:00
w - > frame_no = 0 ;
2015-10-20 20:16:30 +02:00
2014-05-01 23:55:26 +02:00
w - > enabled_widgets = window_cheats_page_enabled_widgets [ page ] ;
2015-10-20 20:16:30 +02:00
2015-06-04 18:35:29 +02:00
w - > pressed_widgets = 0 ;
2014-05-01 23:55:26 +02:00
w - > event_handlers = window_cheats_page_events [ page ] ;
w - > widgets = window_cheats_page_widgets [ page ] ;
2015-06-16 23:56:08 +02:00
int maxY = 0 ;
rct_widget * widget = & w - > widgets [ 8 ] ;
while ( widget - > type ! = WWT_LAST ) {
maxY = max ( maxY , widget - > bottom ) ;
widget + + ;
}
maxY + = 6 ;
window_invalidate ( w ) ;
w - > height = maxY ;
2015-06-24 01:54:59 +02:00
w - > widgets [ WIDX_BACKGROUND ] . bottom = maxY - 1 ;
w - > widgets [ WIDX_PAGE_BACKGROUND ] . bottom = maxY - 1 ;
2014-05-01 23:55:26 +02:00
window_invalidate ( w ) ;
2014-05-02 23:22:38 +02:00
}