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 ScriptConfigGetConfig (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.
NWidgetBaseMakeCompanyButtonRowsAIDebug (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.
WindowShowAIDebugWindow (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 (  ) 
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().

Widgets for the configure AI window.

Definition at line 656 of file ai_gui.cpp.

Widgets for the AI debug window.

Definition at line 1445 of file ai_gui.cpp.

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.

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.