OpenTTD
Data Structures | Typedefs | Enumerations | Functions | Variables
cheat_gui.cpp File Reference

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 "string_func.h"
#include "strings_func.h"
#include "window_func.h"
#include "rail_gui.h"
#include "settings_gui.h"
#include "company_gui.h"
#include "linkgraph/linkgraphschedule.h"
#include "map_func.h"
#include "tile_map.h"
#include "newgrf.h"
#include "error.h"
#include "widgets/cheat_widget.h"
#include "table/sprites.h"
#include "safeguards.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_EDIT_MAX_HL, CHT_CHANGE_DATE,
  CHT_NUM_CHEATS
}
 Available cheats. 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.
void EnginesMonthlyLoop ()
 Monthly update of the availability, reliability, and preview offers of the engines.
static int32 ClickChangeDateCheat (int32 p1, int32 p2)
 Handle changing of the current year.
static int32 ClickChangeMaxHlCheat (int32 p1, int32 p2)
 Allow (or disallow) a change of the maximum allowed heightlevel.
 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 WindowDesc _cheats_desc (WDP_AUTO,"cheats", 0, 0, WC_CHEATS, WC_NONE, 0, _nested_cheat_widgets, lengthof(_nested_cheat_widgets))
 Window description of the cheats GUI.

Detailed Description

GUI related to cheating.

Definition in file cheat_gui.cpp.

Typedef Documentation

typedef int32 CheckButtonClick(int32 p1, int32 p2)

Signature of handler function when user clicks at a cheat.

Parameters
p1The new value.
p2Change direction (+1, +1), 0 for boolean settings.

Definition at line 171 of file cheat_gui.cpp.

Enumeration Type Documentation

Available cheats.

Enumerator:
CHT_MONEY 

Change amount of money.

CHT_CHANGE_COMPANY 

Switch company.

CHT_EXTRA_DYNAMITE 

Dynamite anything.

CHT_CROSSINGTUNNELS 

Allow tunnels to cross each other.

CHT_NO_JETCRASH 

Disable jet-airplane crashes.

CHT_SETUP_PROD 

Allow manually editing of industry production.

CHT_EDIT_MAX_HL 

Edit maximum allowed heightlevel.

CHT_CHANGE_DATE 

Do time traveling.

CHT_NUM_CHEATS 

Number of cheats.

Definition at line 153 of file cheat_gui.cpp.

Function Documentation

static int32 ClickChangeCompanyCheat ( int32  p1,
int32  p2 
)
static
static int32 ClickChangeDateCheat ( int32  p1,
int32  p2 
)
static
static int32 ClickChangeMaxHlCheat ( int32  p1,
int32  p2 
)
static

Allow (or disallow) a change of the maximum allowed heightlevel.

Parameters
p1new value
p2unused
Returns
New value (or unchanged old value) of the maximum allowed heightlevel value.

Definition at line 128 of file cheat_gui.cpp.

References _settings_game, Clamp(), GameSettings::construction, INVALID_STRING_ID, InvalidateWindowClassesData(), MapSize(), ConstructionSettings::max_heightlevel, MAX_MAX_HEIGHTLEVEL, MIN_MAX_HEIGHTLEVEL, ReloadNewGRFData(), ShowErrorMessage(), TileHeight(), WC_SMALLMAP, and WL_ERROR.

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.

Parameters
p1not used.
p2is -1 or +1 (down/up)
Returns
Amount of money cheat.

Definition at line 56 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.

Parameters
p1new value
p2unused
Returns
New value allowing change of industry production.

Definition at line 87 of file cheat_gui.cpp.

References _cheats, InvalidateWindowClassesData(), Cheats::setup_prod, Cheat::value, and WC_INDUSTRY_VIEW.

void EnginesMonthlyLoop ( )

Monthly update of the availability, reliability, and preview offers of the engines.

Definition at line 986 of file engine.cpp.

Referenced by ClickChangeDateCheat(), and OnNewMonth().

void ShowCheatWindow ( )

Open cheat window.

Definition at line 418 of file cheat_gui.cpp.

References _cheats_desc, DeleteWindowById(), and WC_CHEATS.

Referenced by MainToolbarWindow::OnHotkey().

Variable Documentation

WindowDesc _cheats_desc(WDP_AUTO,"cheats", 0, 0, WC_CHEATS, WC_NONE, 0, _nested_cheat_widgets, lengthof(_nested_cheat_widgets))
static

Window description of the cheats GUI.

Referenced by ShowCheatWindow().

const CheatEntry _cheats_ui[]
static
Initial value:
{
{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_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 186 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 45 of file cheat_gui.cpp.

Referenced by ClickMoneyCheat().

const NWidgetPart _nested_cheat_widgets[]
static
Initial value:
{
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),
NWidget(WWT_PANEL, COLOUR_GREY, WID_C_PANEL), SetDataTip(0x0, STR_CHEATS_TOOLTIP), EndContainer(),
}

Widget definitions of the cheat GUI.

Definition at line 200 of file cheat_gui.cpp.