Files @ r24498:e9114d9ab04a
Branch filter:

Location: cpp/openttd-patchpack/source/src/widgets/network_widget.h

Patric Stout
Fix #6468: don't store version of AIs-started-via-console in name

You can do: "startai myai.3", which starts version 3 of "myai".
This is very useful for testing save/load code between different
versions of your AI.

However, when using this syntax, the AI got saved as "myai.3" as
name of the AI, instead of "myai". This caused several problems,
like indicating to the user the AI could not be found, but still
load the AI. But in all cases, the AI never got the chance to
load the saved data, making the whole reason this exists pointless.

By splitting the name and version already in the console command,
the code becomes simpler and AIs started this way now follow the
normal flow after initialization.
/*
 * This file is part of OpenTTD.
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 */

/** @file network_widget.h Types related to the network widgets. */

#ifndef WIDGETS_NETWORK_WIDGET_H
#define WIDGETS_NETWORK_WIDGET_H

/** Widgets of the #NetworkGameWindow class. */
enum NetworkGameWidgets {
	WID_NG_MAIN,               ///< Main panel.

	WID_NG_CLIENT_LABEL,       ///< Label in front of client name edit box.
	WID_NG_CLIENT,             ///< Panel with editbox to set client name.
	WID_NG_FILTER_LABEL,       ///< Label in front of the filter/search edit box.
	WID_NG_FILTER,             ///< Panel with the edit box to enter the search text.

	WID_NG_HEADER,             ///< Header container of the matrix.
	WID_NG_NAME,               ///< 'Name' button.
	WID_NG_CLIENTS,            ///< 'Clients' button.
	WID_NG_MAPSIZE,            ///< 'Map size' button.
	WID_NG_DATE,               ///< 'Date' button.
	WID_NG_YEARS,              ///< 'Years' button.
	WID_NG_INFO,               ///< Third button in the game list panel.

	WID_NG_MATRIX,             ///< Panel with list of games.
	WID_NG_SCROLLBAR,          ///< Scrollbar of matrix.

	WID_NG_LASTJOINED_LABEL,   ///< Label "Last joined server:".
	WID_NG_LASTJOINED,         ///< Info about the last joined server.
	WID_NG_LASTJOINED_SPACER,  ///< Spacer after last joined server panel.

	WID_NG_DETAILS,            ///< Panel with game details.
	WID_NG_DETAILS_SPACER,     ///< Spacer for game actual details.
	WID_NG_JOIN,               ///< 'Join game' button.
	WID_NG_REFRESH,            ///< 'Refresh server' button.
	WID_NG_NEWGRF,             ///< 'NewGRF Settings' button.
	WID_NG_NEWGRF_SEL,         ///< Selection 'widget' to hide the NewGRF settings.
	WID_NG_NEWGRF_MISSING,     ///< 'Find missing NewGRF online' button.
	WID_NG_NEWGRF_MISSING_SEL, ///< Selection widget for the above button.

	WID_NG_SEARCH_INTERNET,    ///< 'Search internet server' button.
	WID_NG_SEARCH_LAN,         ///< 'Search LAN server' button.
	WID_NG_ADD,                ///< 'Add server' button.
	WID_NG_START,              ///< 'Start server' button.
	WID_NG_CANCEL,             ///< 'Cancel' button.
};

/** Widgets of the #NetworkStartServerWindow class. */
enum NetworkStartServerWidgets {
	WID_NSS_BACKGROUND,        ///< Background of the window.
	WID_NSS_GAMENAME_LABEL,    ///< Label for the game name.
	WID_NSS_GAMENAME,          ///< Background for editbox to set game name.
	WID_NSS_SETPWD,            ///< 'Set password' button.
	WID_NSS_CONNTYPE_LABEL,    ///< Label for 'connection type'.
	WID_NSS_CONNTYPE_BTN,      ///< 'Connection type' droplist button.
	WID_NSS_CLIENTS_LABEL,     ///< Label for 'max clients'.
	WID_NSS_CLIENTS_BTND,      ///< 'Max clients' downarrow.
	WID_NSS_CLIENTS_TXT,       ///< 'Max clients' text.
	WID_NSS_CLIENTS_BTNU,      ///< 'Max clients' uparrow.
	WID_NSS_COMPANIES_LABEL,   ///< Label for 'max companies'.
	WID_NSS_COMPANIES_BTND,    ///< 'Max companies' downarrow.
	WID_NSS_COMPANIES_TXT,     ///< 'Max companies' text.
	WID_NSS_COMPANIES_BTNU,    ///< 'Max companies' uparrow.
	WID_NSS_SPECTATORS_LABEL,  ///< Label for 'max spectators'.
	WID_NSS_SPECTATORS_BTND,   ///< 'Max spectators' downarrow.
	WID_NSS_SPECTATORS_TXT,    ///< 'Max spectators' text.
	WID_NSS_SPECTATORS_BTNU,   ///< 'Max spectators' uparrow.

	WID_NSS_LANGUAGE_LABEL,    ///< Label for 'language spoken'.
	WID_NSS_LANGUAGE_BTN,      ///< 'Language spoken' droplist button.

	WID_NSS_GENERATE_GAME,     ///< New game button.
	WID_NSS_LOAD_GAME,         ///< Load game button.
	WID_NSS_PLAY_SCENARIO,     ///< Play scenario button.
	WID_NSS_PLAY_HEIGHTMAP,    ///< Play heightmap button.

	WID_NSS_CANCEL,            ///< 'Cancel' button.
};

/** Widgets of the #NetworkLobbyWindow class. */
enum NetworkLobbyWidgets {
	WID_NL_BACKGROUND, ///< Background of the window.
	WID_NL_TEXT,       ///< Heading text.
	WID_NL_HEADER,     ///< Header above list of companies.
	WID_NL_MATRIX,     ///< List of companies.
	WID_NL_SCROLLBAR,  ///< Scroll bar.
	WID_NL_DETAILS,    ///< Company details.
	WID_NL_JOIN,       ///< 'Join company' button.
	WID_NL_NEW,        ///< 'New company' button.
	WID_NL_SPECTATE,   ///< 'Spectate game' button.
	WID_NL_REFRESH,    ///< 'Refresh server' button.
	WID_NL_CANCEL,     ///< 'Cancel' button.
};

/** Widgets of the #NetworkClientListWindow class. */
enum ClientListWidgets {
	WID_CL_PANEL, ///< Panel of the window.
};

/** Widgets of the #NetworkClientListPopupWindow class. */
enum ClientListPopupWidgets {
	WID_CLP_PANEL, ///< Panel of the window.
};

/** Widgets of the #NetworkJoinStatusWindow class. */
enum NetworkJoinStatusWidgets {
	WID_NJS_BACKGROUND, ///< Background of the window.
	WID_NJS_CANCELOK,   ///< Cancel / OK button.
};

/** Widgets of the #NetworkCompanyPasswordWindow class. */
enum NetworkCompanyPasswordWidgets {
	WID_NCP_BACKGROUND,               ///< Background of the window.
	WID_NCP_LABEL,                    ///< Label in front of the password field.
	WID_NCP_PASSWORD,                 ///< Input field for the password.
	WID_NCP_SAVE_AS_DEFAULT_PASSWORD, ///< Toggle 'button' for saving the current password as default password.
	WID_NCP_WARNING,                  ///< Warning text about password security
	WID_NCP_CANCEL,                   ///< Close the window without changing anything.
	WID_NCP_OK,                       ///< Safe the password etc.
};

#endif /* WIDGETS_NETWORK_WIDGET_H */