--- a/network_gui.c Mon Jan 01 16:10:01 2007 +0000
+++ b/network_gui.c Mon Jan 01 16:31:13 2007 +0000
@@ -424,8 +424,7 @@
STR_NETWORK_ENTER_IP,
31 | 0x1000, // maximum number of characters OR
250, // characters up to this width pixels, whichever is satisfied first
- w->window_class,
- w->window_number, CS_ALPHANUMERAL);
+ w, CS_ALPHANUMERAL);
} break;
case 13: /* Start server */
ShowNetworkStartServerWindow();
@@ -648,8 +647,7 @@
break;
case 4: /* Set password button */
- ShowQueryString(BindCString(_network_server_password),
- STR_NETWORK_SET_PASSWORD, 20, 250, w->window_class, w->window_number, CS_ALPHANUMERAL);
+ ShowQueryString(BindCString(_network_server_password), STR_NETWORK_SET_PASSWORD, 20, 250, w, CS_ALPHANUMERAL);
break;
case 5: { /* Select map */
@@ -1381,7 +1379,7 @@
case NETWORK_GAME_PASSWORD: caption = STR_NETWORK_NEED_GAME_PASSWORD_CAPTION; break;
case NETWORK_COMPANY_PASSWORD: caption = STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION; break;
}
- ShowQueryString(STR_EMPTY, caption, 20, 180, WC_NETWORK_STATUS_WINDOW, 0, CS_ALPHANUMERAL);
+ ShowQueryString(STR_EMPTY, caption, 20, 180, FindWindowById(WC_NETWORK_STATUS_WINDOW, 0), CS_ALPHANUMERAL);
}
@@ -1418,16 +1416,16 @@
case WE_CLICK:
switch (e->we.click.widget) {
- case 0: /* Close 'X' */
- case 3: /* Disconnect button */
+ case 2: /* Disconnect button */
NetworkDisconnect();
- DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0);
+ DeleteWindow(w);
SwitchMode(SM_MENU);
ShowNetworkGameWindow();
break;
}
break;
+ /* If the server asks for a password, we need to fill it in */
case WE_ON_EDIT_TEXT_CANCEL:
NetworkDisconnect();
ShowNetworkGameWindow();
@@ -1440,8 +1438,7 @@
}
static const Widget _network_join_status_window_widget[] = {
-{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
-{ WWT_CAPTION, RESIZE_NONE, 14, 11, 249, 0, 13, STR_NETWORK_CONNECTING, STR_018C_WINDOW_TITLE_DRAG_THIS},
+{ WWT_CAPTION, RESIZE_NONE, 14, 0, 249, 0, 13, STR_NETWORK_CONNECTING, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 14, 0, 249, 14, 84, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 75, 175, 69, 80, STR_NETWORK_DISCONNECT, STR_NULL},
{ WIDGETS_END},
@@ -1450,26 +1447,18 @@
static const WindowDesc _network_join_status_window_desc = {
WDP_CENTER, WDP_CENTER, 250, 85,
WC_NETWORK_STATUS_WINDOW, 0,
- WDF_STD_TOOLTIPS | WDF_DEF_WIDGET,
+ WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_MODAL,
_network_join_status_window_widget,
NetworkJoinStatusWindowWndProc,
};
void ShowJoinStatusWindow(void)
{
+ Window *w;
DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0);
- _network_join_status = NETWORK_JOIN_STATUS_CONNECTING;
- AllocateWindowDesc(&_network_join_status_window_desc);
-}
-
-void ShowJoinStatusWindowAfterJoin(void)
-{
- /* This is a special instant of ShowJoinStatusWindow, because
- it is opened after the map is loaded, but the client maybe is not
- done registering itself to the server */
- DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0);
- _network_join_status = NETWORK_JOIN_STATUS_REGISTERING;
- AllocateWindowDesc(&_network_join_status_window_desc);
+ w = AllocateWindowDesc(&_network_join_status_window_desc);
+ /* Parent the status window to the lobby */
+ if (w != NULL) w->parent = FindWindowById(WC_NETWORK_WINDOW, 0);
}
static void SendChat(const char *buf, DestType type, byte dest)
@@ -1709,10 +1698,8 @@
w = AllocateWindowDesc(&_chat_window_desc);
LowerWindowWidget(w, 2);
- WP(w,querystr_d).caption = GB(type, 0, 8) | (dest << 8); // Misuse of caption
- WP(w,querystr_d).wnd_class = WC_MAIN_TOOLBAR;
- WP(w,querystr_d).wnd_num = 0;
- WP(w,querystr_d).afilter = CS_ALPHANUMERAL;
+ WP(w, querystr_d).caption = GB(type, 0, 8) | (dest << 8); // Misuse of caption
+ WP(w, querystr_d).afilter = CS_ALPHANUMERAL;
InitializeTextBuffer(&WP(w, querystr_d).text, _edit_str_buf, lengthof(_edit_str_buf), 0);
}