GUI related to cheating. More...
#include "stdafx.h"
#include "command_func.h"
#include "cheat_type.h"
#include "company_base.h"
#include "company_func.h"
#include "date_func.h"
#include "saveload/saveload.h"
#include "textbuf_gui.h"
#include "window_gui.h"
#include "newgrf.h"
#include "string_func.h"
#include "strings_func.h"
#include "window_func.h"
#include "rail_gui.h"
#include "gui.h"
#include "company_gui.h"
#include "gamelog.h"
#include "table/strings.h"
#include "table/sprites.h"
Go to the source code of this file.
Data Structures | |
struct | CheatEntry |
Information of a cheat. More... | |
struct | CheatWindow |
GUI for the cheats. More... | |
Typedefs | |
typedef int32 | CheckButtonClick (int32 p1, int32 p2) |
Signature of handler function when user clicks at a cheat. | |
Enumerations | |
enum | CheatNumbers { CHT_MONEY, CHT_CHANGE_COMPANY, CHT_EXTRA_DYNAMITE, CHT_CROSSINGTUNNELS, CHT_NO_JETCRASH, CHT_SETUP_PROD, CHT_SWITCH_CLIMATE, CHT_CHANGE_DATE, CHT_NUM_CHEATS } |
Available cheats. More... | |
enum | CheatWidgets { CW_PANEL } |
Names of the cheat window widgets. More... | |
Functions | |
static int32 | ClickMoneyCheat (int32 p1, int32 p2) |
Handle cheating of money. | |
static int32 | ClickChangeCompanyCheat (int32 p1, int32 p2) |
Handle changing of company. | |
static int32 | ClickSetProdCheat (int32 p1, int32 p2) |
Allow (or disallow) changing production of all industries. | |
static int32 | ClickChangeClimateCheat (int32 p1, int32 p2) |
Handle changing of climate. | |
void | EnginesMonthlyLoop () |
static int32 | ClickChangeDateCheat (int32 p1, int32 p2) |
Handle changing of the current year. | |
assert_compile (CHT_NUM_CHEATS==lengthof(_cheats_ui)) | |
void | ShowCheatWindow () |
Open cheat window. | |
Variables | |
static int32 | _money_cheat_amount = 10000000 |
The 'amount' to cheat with. | |
static const CheatEntry | _cheats_ui [] |
The available cheats. | |
static const NWidgetPart | _nested_cheat_widgets [] |
Widget definitions of the cheat GUI. | |
static const WindowDesc | _cheats_desc (WDP_AUTO, 0, 0, WC_CHEATS, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_cheat_widgets, lengthof(_nested_cheat_widgets)) |
Window description of the cheats GUI. |
GUI related to cheating.
Definition in file cheat_gui.cpp.
typedef int32 CheckButtonClick(int32 p1, int32 p2) |
Signature of handler function when user clicks at a cheat.
p1 | The new value. | |
p2 | Change direction (+1, +1), 0 for boolean settings. |
Definition at line 152 of file cheat_gui.cpp.
enum CheatNumbers |
Available cheats.
Definition at line 134 of file cheat_gui.cpp.
enum CheatWidgets |
Names of the cheat window widgets.
Definition at line 181 of file cheat_gui.cpp.
static int32 ClickChangeClimateCheat | ( | int32 | p1, | |
int32 | p2 | |||
) | [static] |
Handle changing of climate.
p1 | New climate. | |
p2 | Unused. |
Definition at line 94 of file cheat_gui.cpp.
References _settings_game, GameSettings::game_creation, GamelogStartAction(), GamelogStopAction(), GamelogTestMode(), GLAT_CHEAT, GameCreationSettings::landscape, and ReloadNewGRFData().
static int32 ClickChangeCompanyCheat | ( | int32 | p1, | |
int32 | p2 | |||
) | [static] |
Handle changing of company.
p1 | company to set to | |
p2 | is -1 or +1 (down/up) |
Definition at line 62 of file cheat_gui.cpp.
References _local_company, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_company_pool >::GetPoolSize(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), and SetLocalCompany().
static int32 ClickChangeDateCheat | ( | int32 | p1, | |
int32 | p2 | |||
) | [static] |
Handle changing of the current year.
p1 | Unused. | |
p2 | +1 (increase) or -1 (decrease). |
Definition at line 116 of file cheat_gui.cpp.
References _cur_year, _date, Clamp(), ConvertDateToYMD(), ConvertYMDToDate(), YearMonthDay::day, InvalidateWindowClassesData(), MAX_YEAR, MIN_YEAR, YearMonthDay::month, ResetSignalVariant(), SetDate(), and SetWindowDirty().
static int32 ClickMoneyCheat | ( | int32 | p1, | |
int32 | p2 | |||
) | [static] |
Handle cheating of money.
Note that the amount of money of a company must be changed through a command rather than by setting a variable. Since the cheat data structure expects a variable, the amount of given/taken money is used for this purpose.
p1 | not used. | |
p2 | is -1 or +1 (down/up) |
Definition at line 50 of file cheat_gui.cpp.
References _money_cheat_amount, CMD_MONEY_CHEAT, and DoCommandP().
static int32 ClickSetProdCheat | ( | int32 | p1, | |
int32 | p2 | |||
) | [static] |
Allow (or disallow) changing production of all industries.
p1 | new value | |
p2 | unused |
Definition at line 81 of file cheat_gui.cpp.
References InvalidateWindowClassesData(), Cheats::setup_prod, and Cheat::value.
void ShowCheatWindow | ( | ) |
Open cheat window.
Definition at line 399 of file cheat_gui.cpp.
References _cheats_desc, and DeleteWindowById().
Referenced by MainToolbarWindow::OnKeyPress().
const WindowDesc _cheats_desc(WDP_AUTO, 0, 0, WC_CHEATS, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_cheat_widgets, lengthof(_nested_cheat_widgets)) [static] |
Window description of the cheats GUI.
Referenced by ShowCheatWindow().
const CheatEntry _cheats_ui[] [static] |
{ {SLE_INT32, STR_CHEAT_MONEY, &_money_cheat_amount, &_cheats.money.been_used, &ClickMoneyCheat }, {SLE_UINT8, STR_CHEAT_CHANGE_COMPANY, &_local_company, &_cheats.switch_company.been_used, &ClickChangeCompanyCheat }, {SLE_BOOL, STR_CHEAT_EXTRA_DYNAMITE, &_cheats.magic_bulldozer.value, &_cheats.magic_bulldozer.been_used, NULL }, {SLE_BOOL, STR_CHEAT_CROSSINGTUNNELS, &_cheats.crossing_tunnels.value, &_cheats.crossing_tunnels.been_used, NULL }, {SLE_BOOL, STR_CHEAT_NO_JETCRASH, &_cheats.no_jetcrash.value, &_cheats.no_jetcrash.been_used, NULL }, {SLE_BOOL, STR_CHEAT_SETUP_PROD, &_cheats.setup_prod.value, &_cheats.setup_prod.been_used, &ClickSetProdCheat }, {SLE_UINT8, STR_CHEAT_SWITCH_CLIMATE, &_settings_game.game_creation.landscape, &_cheats.switch_climate.been_used, &ClickChangeClimateCheat }, {SLE_INT32, STR_CHEAT_CHANGE_DATE, &_cur_year, &_cheats.change_date.been_used, &ClickChangeDateCheat }, }
The available cheats.
Order matches with the values of CheatNumbers
Definition at line 167 of file cheat_gui.cpp.
int32 _money_cheat_amount = 10000000 [static] |
The 'amount' to cheat with.
This variable is semantically a constant value, but because the cheat code requires to be able to write to the variable it is not constified.
Definition at line 39 of file cheat_gui.cpp.
Referenced by ClickMoneyCheat().
const NWidgetPart _nested_cheat_widgets[] [static] |
{ NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_GREY), NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_CHEATS, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), NWidget(WWT_SHADEBOX, COLOUR_GREY), NWidget(WWT_STICKYBOX, COLOUR_GREY), EndContainer(), NWidget(WWT_PANEL, COLOUR_GREY, CW_PANEL), SetDataTip(0x0, STR_CHEATS_TOOLTIP), EndContainer(), }
Widget definitions of the cheat GUI.
Definition at line 186 of file cheat_gui.cpp.