File diff r25816:b9a33e4cab9f → r25817:3f5c3838fe0a
src/network/network_gui.cpp
Show inline comments
 
@@ -61,16 +61,6 @@ static ClientID _admin_client_id = INVAL
 
static CompanyID _admin_company_id = INVALID_COMPANY; ///< For what company a confirmation window is open.
 

	
 
/**
 
 * Visibility of the server. Public servers advertise, where private servers
 
 * do not.
 
 */
 
static const StringID _server_visibility_dropdown[] = {
 
	STR_NETWORK_SERVER_VISIBILITY_LOCAL,
 
	STR_NETWORK_SERVER_VISIBILITY_PUBLIC,
 
	INVALID_STRING_ID
 
};
 

	
 
/**
 
 * Update the network new window because a new server is
 
 * found on the network.
 
 */
 
@@ -79,6 +69,17 @@ void UpdateNetworkGameWindow()
 
	InvalidateWindowData(WC_NETWORK_WINDOW, WN_NETWORK_WINDOW_GAME, 0);
 
}
 

	
 
static DropDownList BuildVisibilityDropDownList()
 
{
 
	DropDownList list;
 

	
 
	list.emplace_back(new DropDownListStringItem(STR_NETWORK_SERVER_VISIBILITY_LOCAL, SERVER_GAME_TYPE_LOCAL, false));
 
	list.emplace_back(new DropDownListStringItem(STR_NETWORK_SERVER_VISIBILITY_INVITE_ONLY, SERVER_GAME_TYPE_INVITE_ONLY, false));
 
	list.emplace_back(new DropDownListStringItem(STR_NETWORK_SERVER_VISIBILITY_PUBLIC, SERVER_GAME_TYPE_PUBLIC, false));
 

	
 
	return list;
 
}
 

	
 
typedef GUIList<NetworkGameList*, StringFilter&> GUIGameServerList;
 
typedef int ServerListPosition;
 
static const ServerListPosition SLP_INVALID = -1;
 
@@ -1015,7 +1016,7 @@ struct NetworkStartServerWindow : public
 
	{
 
		switch (widget) {
 
			case WID_NSS_CONNTYPE_BTN:
 
				SetDParam(0, _server_visibility_dropdown[_settings_client.network.server_advertise]);
 
				SetDParam(0, STR_NETWORK_SERVER_VISIBILITY_LOCAL + _settings_client.network.server_game_type);
 
				break;
 

	
 
			case WID_NSS_CLIENTS_TXT:
 
@@ -1036,7 +1037,7 @@ struct NetworkStartServerWindow : public
 
	{
 
		switch (widget) {
 
			case WID_NSS_CONNTYPE_BTN:
 
				*size = maxdim(GetStringBoundingBox(_server_visibility_dropdown[0]), GetStringBoundingBox(_server_visibility_dropdown[1]));
 
				*size = maxdim(maxdim(GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_LOCAL), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_PUBLIC)), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_INVITE_ONLY));
 
				size->width += padding.width;
 
				size->height += padding.height;
 
				break;
 
@@ -1066,7 +1067,7 @@ struct NetworkStartServerWindow : public
 
				break;
 

	
 
			case WID_NSS_CONNTYPE_BTN: // Connection type
 
				ShowDropDownMenu(this, _server_visibility_dropdown, _settings_client.network.server_advertise, WID_NSS_CONNTYPE_BTN, 0, 0); // do it for widget WID_NSS_CONNTYPE_BTN
 
				ShowDropDownList(this, BuildVisibilityDropDownList(), _settings_client.network.server_game_type, WID_NSS_CONNTYPE_BTN);
 
				break;
 

	
 
			case WID_NSS_CLIENTS_BTND:    case WID_NSS_CLIENTS_BTNU:    // Click on up/down button for number of clients
 
@@ -1144,7 +1145,7 @@ struct NetworkStartServerWindow : public
 
	{
 
		switch (widget) {
 
			case WID_NSS_CONNTYPE_BTN:
 
				_settings_client.network.server_advertise = (index != 0);
 
				_settings_client.network.server_game_type = (ServerGameType)index;
 
				break;
 
			default:
 
				NOT_REACHED();
 
@@ -2041,7 +2042,7 @@ public:
 
	{
 
		switch (widget) {
 
			case WID_CL_SERVER_VISIBILITY:
 
				*size = maxdim(GetStringBoundingBox(_server_visibility_dropdown[0]), GetStringBoundingBox(_server_visibility_dropdown[1]));
 
				*size = maxdim(maxdim(GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_LOCAL), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_PUBLIC)), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_INVITE_ONLY));
 
				size->width += padding.width;
 
				size->height += padding.height;
 
				break;
 
@@ -2073,7 +2074,7 @@ public:
 
				break;
 

	
 
			case WID_CL_SERVER_VISIBILITY:
 
				SetDParam(0, _server_visibility_dropdown[_settings_client.network.server_advertise]);
 
				SetDParam(0, STR_NETWORK_SERVER_VISIBILITY_LOCAL + _settings_client.network.server_game_type);
 
				break;
 

	
 
			case WID_CL_SERVER_INVITE_CODE: {
 
@@ -2117,7 +2118,7 @@ public:
 
			case WID_CL_SERVER_VISIBILITY:
 
				if (!_network_server) break;
 

	
 
				ShowDropDownMenu(this, _server_visibility_dropdown, _settings_client.network.server_advertise, WID_CL_SERVER_VISIBILITY, 0, 0);
 
				ShowDropDownList(this, BuildVisibilityDropDownList(), _settings_client.network.server_game_type, WID_CL_SERVER_VISIBILITY);
 
				break;
 

	
 
			case WID_CL_MATRIX: {
 
@@ -2183,7 +2184,8 @@ public:
 
			case WID_CL_SERVER_VISIBILITY:
 
				if (!_network_server) break;
 

	
 
				_settings_client.network.server_advertise = (index != 0);
 
				_settings_client.network.server_game_type = (ServerGameType)index;
 
				NetworkUpdateServerGameType();
 
				break;
 

	
 
			case WID_CL_MATRIX: {