diff src/player_gui.cpp @ 7998:c23b6367e55b draft

(svn r11556) -Feature: allow setting a default password for new companies in network games.
author rubidium <rubidium@openttd.org>
date Sun, 02 Dec 2007 14:48:26 +0000
parents d109780d515b
children 936ad1eb1c04
line wrap: on
line diff
--- a/src/player_gui.cpp
+++ b/src/player_gui.cpp
@@ -25,6 +25,7 @@
 #include "newgrf.h"
 #include "network/network_data.h"
 #include "network/network_client.h"
+#include "network/network_gui.h"
 #include "player_face.h"
 
 static void DoShowPlayerFinances(PlayerID player, bool show_small, bool show_stickied);
@@ -1200,15 +1201,11 @@
 					DoCommandP(0, w->window_number, 0, NULL, CMD_SELL_SHARE_IN_COMPANY | CMD_MSG(STR_707C_CAN_T_SELL_25_SHARE_IN));
 					break;
 
-				#ifdef ENABLE_NETWORK
+#ifdef ENABLE_NETWORK
 				case PCW_WIDGET_COMPANY_PASSWORD:
-					if (w->window_number == _local_player) {
-						WP(w, def_d).byte_1 = 2;
-						ShowQueryString(BindCString(_network_player_info[_local_player].password),
-							STR_SET_COMPANY_PASSWORD, sizeof(_network_player_info[_local_player].password), 250, w, CS_ALPHANUMERAL);
-					}
+					if (w->window_number == _local_player) ShowNetworkCompanyPasswordWindow();
 					break;
-				#endif /* ENABLE_NETWORK */
+#endif /* ENABLE_NETWORK */
 			}
 			break;
 
@@ -1230,15 +1227,13 @@
 
 		case WE_DESTROY:
 			DeleteWindowById(WC_PLAYER_FACE, w->window_number);
+			if (w->window_number == _local_player) DeleteWindowById(WC_COMPANY_PASSWORD_WINDOW, 0);
 			break;
 
-		case WE_ON_EDIT_TEXT: {
-			char *b = e->we.edittext.str;
+		case WE_ON_EDIT_TEXT:
+			if (StrEmpty(e->we.edittext.str)) return;
 
-			/* empty string is allowed for password */
-			if (*b == '\0' && WP(w, def_d).byte_1 != 2) return;
-
-			_cmd_text = b;
+			_cmd_text = e->we.edittext.str;
 			switch (WP(w, def_d).byte_1) {
 				case 0: /* Change president name */
 					DoCommandP(0, 0, 0, NULL, CMD_CHANGE_PRESIDENT_NAME | CMD_MSG(STR_700D_CAN_T_CHANGE_PRESIDENT));
@@ -1246,15 +1241,8 @@
 				case 1: /* Change company name */
 					DoCommandP(0, 0, 0, NULL, CMD_CHANGE_COMPANY_NAME | CMD_MSG(STR_700C_CAN_T_CHANGE_COMPANY_NAME));
 					break;
-				#ifdef ENABLE_NETWORK
-				case 2: /* Change company password */
-					if (*b == '\0') *b = '*'; // empty password is a '*' because of console argument
-					NetworkChangeCompanyPassword(1, &b);
-					break;
-				#endif /* ENABLE_NETWORK */
 			}
 			break;
-		}
 	}
 }