OpenTTD: src/ai/ai_gui.cpp File Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Data Structures | Functions | Variables
ai_gui.cpp File Reference

Window for configuring the AIs More...

`#include "../stdafx.h"`
`#include "../table/sprites.h"`
`#include "../error.h"`
`#include "../settings_gui.h"`
`#include "../querystring_gui.h"`
`#include "../stringfilter_type.h"`
`#include "../company_base.h"`
`#include "../company_gui.h"`
`#include "../strings_func.h"`
`#include "../window_func.h"`
`#include "../gfx_func.h"`
`#include "../command_func.h"`
`#include "../network/network.h"`
`#include "../settings_func.h"`
`#include "../network/network_content.h"`
`#include "../textfile_gui.h"`
`#include "../widgets/dropdown_type.h"`
`#include "../widgets/dropdown_func.h"`
`#include "../hotkeys.h"`
`#include "../core/geometry_func.hpp"`
`#include "ai.hpp"`
`#include "ai_gui.hpp"`
`#include "../script/api/script_log.hpp"`
`#include "ai_config.hpp"`
`#include "ai_info.hpp"`
`#include "ai_instance.hpp"`
`#include "../game/game.hpp"`
`#include "../game/game_config.hpp"`
`#include "../game/game_info.hpp"`
`#include "../game/game_instance.hpp"`
`#include "table/strings.h"`
`#include <vector>`
`#include "../safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | AIListWindow
| Window that let you choose an available AI. More...
struct | AISettingsWindow
| Window for settings the parameters of an AI. More...
struct | ScriptTextfileWindow
| Window for displaying the textfile of a AI. More...
struct | AIConfigWindow
| Window to configure which AIs will start. More...
struct | AIDebugWindow
| Window with everything an AI prints via ScriptLog. More...

## Functions
static ScriptConfig * | GetConfig (CompanyID slot)
static void | ShowAIListWindow (CompanyID slot)
| Open the AI list window to chose an AI for the given company slot.
static void | ShowAISettingsWindow (CompanyID slot)
| Open the AI settings window to change the AI settings for an AI.
void | ShowScriptTextfileWindow (TextfileType file_type, CompanyID slot)
| Open the AI version of the textfile window.
void | ShowAIConfigWindow ()
| Open the AI config window.
static bool | SetScriptButtonColour (NWidgetCore &button, bool dead, bool paused)
| Set the widget colour of a button based on the state of the script.
NWidgetBase * | MakeCompanyButtonRowsAIDebug (int *biggest_index)
| Make a number of rows with buttons for each company for the AI debug window.
static EventState | AIDebugGlobalHotkeys (int hotkey)
| Handler for global hotkeys of the AIDebugWindow.
Window * | ShowAIDebugWindow (CompanyID show_company)
| Open the AI debug window and select the given company.
void | InitializeAIGui ()
| Reset the AI windows to their initial state.
void | ShowAIDebugWindowIfAIError ()
| Open the AI debug window if one of the AI scripts has crashed.

## Variables
static const NWidgetPart | _nested_ai_list_widgets []
| Widgets for the AI list window.
static WindowDesc | _ai_list_desc (WDP_CENTER,"settings_script_list", 200, 234, WC_AI_LIST, WC_NONE, 0, _nested_ai_list_widgets, lengthof(_nested_ai_list_widgets))
| Window definition for the ai list window.
static const NWidgetPart | _nested_ai_settings_widgets []
| Widgets for the AI settings window.
static WindowDesc | _ai_settings_desc (WDP_CENTER,"settings_script", 500, 208, WC_AI_SETTINGS, WC_NONE, 0, _nested_ai_settings_widgets, lengthof(_nested_ai_settings_widgets))
| Window definition for the AI settings window.
static const NWidgetPart | _nested_ai_config_widgets []
| Widgets for the configure AI window.
static WindowDesc | _ai_config_desc (WDP_CENTER,"settings_script_config", 0, 0, WC_GAME_OPTIONS, WC_NONE, 0, _nested_ai_config_widgets, lengthof(_nested_ai_config_widgets))
| Window definition for the configure AI window.
static Hotkey | aidebug_hotkeys []
static const NWidgetPart | _nested_ai_debug_widgets []
| Widgets for the AI debug window.
static WindowDesc | _ai_debug_desc (WDP_AUTO,"script_debug", 600, 450, WC_AI_DEBUG, WC_NONE, 0, _nested_ai_debug_widgets, lengthof(_nested_ai_debug_widgets),&AIDebugWindow::hotkeys)
| Window definition for the AI debug window.

## Detailed Description

Window for configuring the AIs

Definition in file ai_gui.cpp.

## Function Documentation

static EventState AIDebugGlobalHotkeys | ( | int | hotkey | ) |
| static

Handler for global hotkeys of the AIDebugWindow.

Parameters

  hotkey | Hotkey

Returns
  ES_HANDLED if hotkey was accepted.

Definition at line 1430 of file ai_gui.cpp.

References ES_NOT_HANDLED, INVALID_COMPANY, Window::OnHotkey(), and ShowAIDebugWindow().

NWidgetBase* MakeCompanyButtonRowsAIDebug | ( | int * | biggest_index | ) |

Make a number of rows with buttons for each company for the AI debug window.

Definition at line 1420 of file ai_gui.cpp.

References MakeCompanyButtonRows(), WID_AID_COMPANY_BUTTON_END, and WID_AID_COMPANY_BUTTON_START.

static bool SetScriptButtonColour | ( | NWidgetCore & | button,
|  | bool | dead,
|  | bool | paused
| ) |  |
| static

Set the widget colour of a button based on the state of the script.

(dead or alive)

Parameters

  button | the button to update.
  dead | true if the script is dead, otherwise false.
  paused | true if the script is paused, otherwise false.

Returns
  true if the colour was changed and the window need to be marked as dirty.

Definition at line 972 of file ai_gui.cpp.

References NWidgetCore::colour.

Referenced by AIDebugWindow::OnPaint().

void ShowAIConfigWindow | ( |  | ) |

Open the AI config window.

Definition at line 958 of file ai_gui.cpp.

References DeleteWindowByClass(), and WC_GAME_OPTIONS.

Referenced by MenuClickSettings(), and SelectGameWindow::OnClick().

Window* ShowAIDebugWindow | ( | CompanyID | show_company | ) |

Open the AI debug window and select the given company.

Parameters

  show_company | Display debug information about this AI company.

Definition at line 1523 of file ai_gui.cpp.

References _ai_debug_desc, _network_server, _networking, BringWindowToFrontById(), AIDebugWindow::ChangeToAI(), INVALID_COMPANY, INVALID_STRING_ID, ShowErrorMessage(), WC_AI_DEBUG, and WL_INFO.

Referenced by AIDebugGlobalHotkeys(), MenuClickHelp(), MainToolbarWindow::OnHotkey(), and ShowAIDebugWindowIfAIError().

void ShowAIDebugWindowIfAIError | ( |  | ) |

Open the AI debug window if one of the AI scripts has crashed.

Definition at line 1546 of file ai_gui.cpp.

References _network_server, _networking, Game::GetGameInstance(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, CompanyProperties::is_ai, ScriptInstance::IsDead(), OWNER_DEITY, and ShowAIDebugWindow().

Referenced by InitializeWindowsAndCaches().

static void ShowAIListWindow | ( | CompanyID | slot | ) |
| static

Open the AI list window to chose an AI for the given company slot.

Parameters

  slot | The slot to change the AI of.

Definition at line 273 of file ai_gui.cpp.

References _ai_list_desc, DeleteWindowByClass(), and WC_AI_LIST.

Referenced by AIConfigWindow::OnClick().

static void ShowAISettingsWindow | ( | CompanyID | slot | ) |
| static

Open the AI settings window to change the AI settings for an AI.

Parameters

  slot | The CompanyID of the AI to change the settings.

Definition at line 622 of file ai_gui.cpp.

References _ai_settings_desc, DeleteWindowByClass(), WC_AI_LIST, and WC_AI_SETTINGS.

Referenced by AIConfigWindow::OnClick(), and AIDebugWindow::OnClick().

void ShowScriptTextfileWindow | ( | TextfileType | file_type,
|  | CompanyID | slot
| ) |  |

Open the AI version of the textfile window.

Parameters

  file_type | The type of textfile to display.
  slot | The slot the Script is using.

Definition at line 654 of file ai_gui.cpp.

References DeleteWindowByClass(), and WC_TEXTFILE.

Referenced by AIConfigWindow::OnClick().

## Variable Documentation

WindowDesc _ai_config_desc(WDP_CENTER,"settings_script_config", 0, 0, WC_GAME_OPTIONS, WC_NONE, 0, _nested_ai_config_widgets, lengthof(_nested_ai_config_widgets))
| static

Window definition for the configure AI window.

WindowDesc _ai_debug_desc(WDP_AUTO,"script_debug", 600, 450, WC_AI_DEBUG, WC_NONE, 0, _nested_ai_debug_widgets, lengthof(_nested_ai_debug_widgets),&AIDebugWindow::hotkeys)
| static

Window definition for the AI debug window.

Referenced by ShowAIDebugWindow().

WindowDesc _ai_list_desc(WDP_CENTER,"settings_script_list", 200, 234, WC_AI_LIST, WC_NONE, 0, _nested_ai_list_widgets, lengthof(_nested_ai_list_widgets))
| static

Window definition for the ai list window.

Referenced by ShowAIListWindow().

WindowDesc _ai_settings_desc(WDP_CENTER,"settings_script", 500, 208, WC_AI_SETTINGS, WC_NONE, 0, _nested_ai_settings_widgets, lengthof(_nested_ai_settings_widgets))
| static

Window definition for the AI settings window.

Referenced by ShowAISettingsWindow().

const NWidgetPart _nested_ai_config_widgets[]
| static

Widgets for the configure AI window.

Definition at line 662 of file ai_gui.cpp.

const NWidgetPart _nested_ai_debug_widgets[]
| static

Widgets for the AI debug window.

Definition at line 1466 of file ai_gui.cpp.

const NWidgetPart _nested_ai_list_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_MAUVE),
NWidget(WWT_CAPTION, COLOUR_MAUVE, WID_AIL_CAPTION), SetDataTip(STR_AI_LIST_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_DEFSIZEBOX, COLOUR_MAUVE),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIL_LIST), SetMinimalSize(188, 112), SetFill(1, 1), SetResize(1, 1), SetMatrixDataTip(1, 0, STR_AI_LIST_TOOLTIP), SetScrollbar(WID_AIL_SCROLLBAR),
NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, WID_AIL_SCROLLBAR),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_MAUVE, WID_AIL_INFO_BG), SetMinimalTextLines(8, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM), SetResize(1, 0),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
NWidget(WWT_PUSHTXTBTN, COLOUR_MAUVE, WID_AIL_ACCEPT), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_AI_LIST_ACCEPT, STR_AI_LIST_ACCEPT_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_MAUVE, WID_AIL_CANCEL), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_AI_LIST_CANCEL, STR_AI_LIST_CANCEL_TOOLTIP),
EndContainer(),
NWidget(WWT_RESIZEBOX, COLOUR_MAUVE),
EndContainer(),
}

Widgets for the AI list window.

Definition at line 240 of file ai_gui.cpp.

const NWidgetPart _nested_ai_settings_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_MAUVE),
NWidget(WWT_CAPTION, COLOUR_MAUVE, WID_AIS_CAPTION), SetDataTip(STR_AI_SETTINGS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_DEFSIZEBOX, COLOUR_MAUVE),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIS_BACKGROUND), SetMinimalSize(188, 182), SetResize(1, 1), SetFill(1, 0), SetMatrixDataTip(1, 0, STR_NULL), SetScrollbar(WID_AIS_SCROLLBAR),
NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, WID_AIS_SCROLLBAR),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
NWidget(WWT_PUSHTXTBTN, COLOUR_MAUVE, WID_AIS_ACCEPT), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_AI_SETTINGS_CLOSE, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_MAUVE, WID_AIS_RESET), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_AI_SETTINGS_RESET, STR_NULL),
EndContainer(),
NWidget(WWT_RESIZEBOX, COLOUR_MAUVE),
EndContainer(),
}

Widgets for the AI settings window.

Definition at line 591 of file ai_gui.cpp.

Hotkey aidebug_hotkeys[]
| static

Initial value:
{
Hotkey('1', "company_1", WID_AID_COMPANY_BUTTON_START),
Hotkey('2', "company_2", WID_AID_COMPANY_BUTTON_START + 1),
Hotkey('3', "company_3", WID_AID_COMPANY_BUTTON_START + 2),
Hotkey('4', "company_4", WID_AID_COMPANY_BUTTON_START + 3),
Hotkey('5', "company_5", WID_AID_COMPANY_BUTTON_START + 4),
Hotkey('6', "company_6", WID_AID_COMPANY_BUTTON_START + 5),
Hotkey('7', "company_7", WID_AID_COMPANY_BUTTON_START + 6),
Hotkey('8', "company_8", WID_AID_COMPANY_BUTTON_START + 7),
Hotkey('9', "company_9", WID_AID_COMPANY_BUTTON_START + 8),
Hotkey((uint16)0, "company_10", WID_AID_COMPANY_BUTTON_START + 9),
Hotkey((uint16)0, "company_11", WID_AID_COMPANY_BUTTON_START + 10),
Hotkey((uint16)0, "company_12", WID_AID_COMPANY_BUTTON_START + 11),
Hotkey((uint16)0, "company_13", WID_AID_COMPANY_BUTTON_START + 12),
Hotkey((uint16)0, "company_14", WID_AID_COMPANY_BUTTON_START + 13),
Hotkey((uint16)0, "company_15", WID_AID_COMPANY_BUTTON_START + 14),
Hotkey('S', "settings", WID_AID_SETTINGS),
Hotkey('0', "game_script", WID_AID_SCRIPT_GAME),
Hotkey((uint16)0, "reload", WID_AID_RELOAD_TOGGLE),
Hotkey('B', "break_toggle", WID_AID_BREAK_STR_ON_OFF_BTN),
Hotkey('F', "break_string", WID_AID_BREAK_STR_EDIT_BOX),
Hotkey('C', "match_case", WID_AID_MATCH_CASE_BTN),
Hotkey(WKC_RETURN, "continue", WID_AID_CONTINUE_BTN),
HOTKEY_LIST_END
}

Definition at line 1438 of file ai_gui.cpp.