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 "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>`

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 1409 of file ai_gui.cpp.

References 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 1399 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 951 of file ai_gui.cpp.

References NWidgetCore::colour.

Referenced by AIDebugWindow::OnPaint().

void ShowAIConfigWindow | ( |  | ) |

Open the AI config window.

Definition at line 937 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 1502 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(), GameInstance::Died(), AIInstance::Died(), MenuClickHelp(), MainToolbarWindow::OnHotkey(), and ShowAIDebugWindowIfAIError().

void ShowAIDebugWindowIfAIError | ( |  | ) |

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

Definition at line 1525 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 271 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 616 of file ai_gui.cpp.

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

Referenced by AIDebugWindow::OnClick(), and AIConfigWindow::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 648 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 656 of file ai_gui.cpp.

const NWidgetPart _nested_ai_debug_widgets[]`[static]`

Widgets for the AI debug window.

Definition at line 1445 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 238 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 585 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 1417 of file ai_gui.cpp.