author | signde |
Sun, 12 Sep 2004 16:03:40 +0000 | |
changeset 214 | f1ebbfefc3f8 |
parent 213 | 770e504a6e51 |
child 216 | 1be476b97e32 |
permissions | -rw-r--r-- |
0 | 1 |
#include "stdafx.h" |
2 |
#include "ttd.h" |
|
3 |
#include "window.h" |
|
4 |
#include "gui.h" |
|
5 |
#include "gfx.h" |
|
6 |
#include "command.h" |
|
211 | 7 |
#include "network.h" |
0 | 8 |
|
9 |
#define BGC 5 |
|
10 |
#define BTC 15 |
|
11 |
#define MAX_QUERYSTR_LEN 64 |
|
12 |
static byte _edit_str_buf[MAX_QUERYSTR_LEN*2]; |
|
13 |
static void ShowNetworkStartServerWindow(); |
|
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
14 |
#if 0 |
0 | 15 |
static void ShowNetworkLobbyWindow(); |
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
16 |
#endif |
0 | 17 |
|
18 |
static byte _selected_field; |
|
19 |
||
20 |
static const StringID _connection_types_dropdown[] = { |
|
21 |
STR_NETWORK_LAN, |
|
22 |
STR_NETWORK_INTERNET, |
|
23 |
INVALID_STRING_ID |
|
24 |
}; |
|
25 |
||
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
26 |
/* Should be _network_game->players_max but since network is not yet really done |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
27 |
* we'll just use some dummy here |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
28 |
* network.c -->> static NetworkGameInfo _network_game; |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
29 |
*/ |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
30 |
static byte _players_max; |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
31 |
/* Should be ??????????? (something) but since network is not yet really done |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
32 |
* we'll just use some dummy here |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
33 |
*/ |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
34 |
static byte _network_connection; |
206 | 35 |
static uint16 _network_game_count_last; |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
36 |
|
211 | 37 |
enum { |
38 |
NET_PRC__OFFSET_TOP_WIDGET = 93, |
|
39 |
NET_PRC__SIZE_OF_ROW = 14, |
|
40 |
}; |
|
41 |
||
42 |
static NetworkGameList *selected_item = NULL; |
|
43 |
||
0 | 44 |
static void NetworkGameWindowWndProc(Window *w, WindowEvent *e) |
45 |
{ |
|
46 |
switch(e->event) { |
|
47 |
case WE_PAINT: { |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
48 |
|
0 | 49 |
SET_DPARAM16(0, 0x00); |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
50 |
SET_DPARAM16(2, STR_NETWORK_LAN + _network_connection); |
0 | 51 |
DrawWindowWidgets(w); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
52 |
|
0 | 53 |
DrawEditBox(w, 6); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
54 |
|
0 | 55 |
DrawString(9, 43, STR_NETWORK_PLAYER_NAME, 2); |
56 |
DrawString(9, 63, STR_NETWORK_SELECT_CONNECTION, 2); |
|
57 |
||
58 |
DrawString(15, 82, STR_NETWORK_GAME_NAME, 2); |
|
59 |
DrawString(238, 82, STR_NETWORK_PLAYERS, 2); |
|
60 |
DrawString(288, 82, STR_NETWORK_MAP_SIZE, 2); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
61 |
|
211 | 62 |
{ // draw list of games |
63 |
uint16 y = NET_PRC__OFFSET_TOP_WIDGET + 3; |
|
64 |
int32 n = 0; |
|
65 |
NetworkGameList *cur_item = _network_game_list; |
|
66 |
while (cur_item != NULL) { |
|
67 |
if (cur_item == selected_item) |
|
68 |
GfxFillRect(11, y - 2, 380, y + 9, 10); // show highlighted item with a different colour |
|
69 |
||
70 |
DoDrawString(cur_item->item.server_name, 15, y, 16); // server name |
|
71 |
||
72 |
SET_DPARAM8(0, cur_item->item.players_on); |
|
73 |
SET_DPARAM8(1, cur_item->item.players_max); |
|
74 |
DrawString(238, y, STR_NETWORK_PLAYERS_VAL, 2); // #/# |
|
75 |
||
76 |
DoDrawString(cur_item->item.map_name, 288, y, 16); // map size |
|
77 |
cur_item = cur_item->_next; |
|
78 |
y += NET_PRC__SIZE_OF_ROW; |
|
79 |
if (++n == w->vscroll.cap) { break;} // max number of games in the window |
|
80 |
} |
|
81 |
} |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
82 |
} break; |
0 | 83 |
|
84 |
case WE_CLICK: |
|
85 |
_selected_field = e->click.widget; |
|
86 |
switch(e->click.widget) { |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
87 |
case 0: case 15: /* Close 'X' | Cancel button */ |
0 | 88 |
DeleteWindowById(WC_NETWORK_WINDOW, 0); |
105 | 89 |
NetworkLobbyShutdown(); |
0 | 90 |
break; |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
91 |
case 3: { /* Find server automaticaly */ |
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
92 |
NetworkCoreConnectGame("auto", _network_server_port); |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
93 |
} break; |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
94 |
case 4: { /* Connect via direct ip */ |
0 | 95 |
StringID str; |
96 |
str = AllocateName((byte*)_decode_parameters, 0); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
97 |
|
0 | 98 |
ShowQueryString( |
99 |
str, |
|
100 |
STR_NETWORK_ENTER_IP, |
|
213
770e504a6e51
(svn r214) -Feature: CMD_NET_INSTANT [just in time command handling over network] (sign_de)
darkvater
parents:
211
diff
changeset
|
101 |
50, // maximum 50 characters OR |
770e504a6e51
(svn r214) -Feature: CMD_NET_INSTANT [just in time command handling over network] (sign_de)
darkvater
parents:
211
diff
changeset
|
102 |
250, // characters up to width 250 pixels, whichever is satisfied first |
0 | 103 |
w->window_class, |
104 |
w->window_number); |
|
105 |
DeleteName(str); |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
106 |
} break; |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
107 |
case 5: /* Start server */ |
0 | 108 |
ShowNetworkStartServerWindow(); |
109 |
break; |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
110 |
case 7: case 8: /* Connection type */ |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
111 |
ShowDropDownMenu(w, _connection_types_dropdown, _network_connection, 8, 0); // do it for widget 8 |
0 | 112 |
return; |
211 | 113 |
case 14: { /* Matrix to show networkgames */ |
114 |
uint32 id_v = (e->click.pt.y - NET_PRC__OFFSET_TOP_WIDGET) / NET_PRC__SIZE_OF_ROW; |
|
115 |
||
116 |
if (id_v >= w->vscroll.cap) { return;} // click out of bounds |
|
117 |
||
118 |
id_v += w->vscroll.pos; |
|
119 |
||
120 |
{ |
|
121 |
NetworkGameList *cur_item = _network_game_list; |
|
122 |
int32 n = 0; |
|
123 |
while (cur_item != NULL) { |
|
124 |
if (n++ == id_v) { break;} // found clicked item |
|
125 |
||
126 |
cur_item = cur_item->_next; |
|
127 |
} |
|
128 |
||
129 |
if (cur_item == NULL) { return;} // click out of vehicle bounds |
|
130 |
||
131 |
selected_item = cur_item; |
|
132 |
} |
|
133 |
} break; |
|
134 |
case 16: /* Join Game */ |
|
135 |
if (selected_item != NULL) |
|
136 |
NetworkCoreConnectGameStruct(selected_item); |
|
137 |
break; |
|
0 | 138 |
} |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
139 |
break; |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
140 |
|
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
141 |
case WE_DROPDOWN_SELECT: /* we have selected a dropdown item in the list */ |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
142 |
_network_connection = e->dropdown.index; |
206 | 143 |
switch (_network_connection) { |
211 | 144 |
case 0: /* LAN */ |
206 | 145 |
NetworkGameListFromLAN(); |
146 |
break; |
|
211 | 147 |
case 1: /* Internet */ |
206 | 148 |
NetworkGameListFromInternet(); |
149 |
break; |
|
150 |
} |
|
211 | 151 |
|
152 |
_network_game_count_last = _network_game_count; |
|
153 |
SetWindowDirty(w); |
|
154 |
||
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
155 |
break; |
0 | 156 |
|
157 |
case WE_MOUSELOOP: |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
158 |
if (_selected_field == 6) |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
159 |
HandleEditBox(w, 6); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
160 |
|
0 | 161 |
break; |
162 |
||
163 |
case WE_KEYPRESS: |
|
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
164 |
if (_selected_field != 6) |
0 | 165 |
break; |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
166 |
|
0 | 167 |
switch (HandleEditBoxKey(w, 6, e)) { |
168 |
case 1: |
|
169 |
HandleButtonClick(w, 9); |
|
170 |
break; |
|
171 |
} |
|
172 |
break; |
|
173 |
||
174 |
case WE_ON_EDIT_TEXT: { |
|
214
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
175 |
byte *b = e->edittext.str; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
176 |
if (*b != 0) { |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
177 |
byte * ip = NULL; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
178 |
byte * port = NULL; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
179 |
byte * player = NULL; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
180 |
byte c; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
181 |
uint16 rport; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
182 |
|
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
183 |
rport = _network_server_port; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
184 |
c = 0; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
185 |
ip = b; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
186 |
|
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
187 |
while (b[c] != 0) { |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
188 |
if (((char)b[c]) == '#') { |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
189 |
player = &b[c+1]; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
190 |
b[c] = 0; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
191 |
} |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
192 |
if (((char)b[c]) == ':') { |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
193 |
port = &b[c+1]; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
194 |
b[c] = 0; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
195 |
} |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
196 |
c++; |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
197 |
} |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
198 |
|
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
199 |
if (player!=NULL) _network_playas = atoi(player); |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
200 |
if (port!=NULL) rport = atoi(port); |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
201 |
|
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
202 |
NetworkCoreConnectGame(b, rport); |
f1ebbfefc3f8
(svn r215) -Feature: direct connect now allows selecting a port and a playername [ip/host]:[port]#[player]
signde
parents:
213
diff
changeset
|
203 |
} |
211 | 204 |
} break; |
205 |
||
206 |
case WE_TICK: { |
|
207 |
if (_network_game_count_last != _network_game_count) |
|
208 |
SetWindowDirty(w); |
|
0 | 209 |
} break; |
210 |
||
211 |
} |
|
212 |
} |
|
213 |
||
214 |
static const Widget _network_game_window_widgets[] = { |
|
211 | 215 |
{ WWT_CLOSEBOX, BGC, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
216 |
{ WWT_CAPTION, BGC, 10, 399, 0, 13, STR_NETWORK_MULTIPLAYER, STR_NULL}, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
217 |
{ WWT_IMGBTN, BGC, 0, 399, 14, 199, 0x0, STR_NULL}, |
0 | 218 |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
219 |
{ WWT_PUSHTXTBTN, BTC, 20, 130, 22, 33, STR_NETWORK_FIND_SERVER, STR_NETWORK_FIND_SERVER_TIP}, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
220 |
{ WWT_PUSHTXTBTN, BTC, 145, 255, 22, 33, STR_NETWORK_DIRECT_CONNECT, STR_NETWORK_DIRECT_CONNECT_TIP}, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
221 |
{ WWT_PUSHTXTBTN, BTC, 270, 380, 22, 33, STR_NETWORK_START_SERVER, STR_NETWORK_START_SERVER_TIP}, |
0 | 222 |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
223 |
{ WWT_IMGBTN, BGC, 250, 394, 42, 53, 0x0, STR_NETWORK_ENTER_NAME_TIP}, |
0 | 224 |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
225 |
{ WWT_6, BGC, 250, 393, 62, 73, STR_NETWORK_COMBO1, STR_NETWORK_CONNECTION_TYPE_TIP}, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
226 |
{ WWT_CLOSEBOX, BGC, 382, 392, 63, 72, STR_0225, STR_NETWORK_CONNECTION_TYPE_TIP}, |
0 | 227 |
|
211 | 228 |
{ WWT_SCROLLBAR, BGC, 382, 392, 81, 176, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
0 | 229 |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
230 |
{ WWT_IMGBTN, BTC, 10, 231, 81, 92, 0x0, STR_NETWORK_GAME_NAME_TIP }, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
231 |
{ WWT_IMGBTN, BTC, 232, 281, 81, 92, 0x0, STR_NETWORK_PLAYERS_TIP }, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
232 |
{ WWT_IMGBTN, BTC, 282, 331, 81, 92, 0x0, STR_NETWORK_MAP_SIZE_TIP }, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
233 |
{ WWT_IMGBTN, BTC, 332, 381, 81, 92, 0x0, STR_NETWORK_INFO_ICONS_TIP }, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
234 |
|
211 | 235 |
{ WWT_MATRIX, BGC, 10, 381, 93, 176, 0x601, STR_NETWORK_CLICK_GAME_TO_SELECT}, |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
236 |
|
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
237 |
{ WWT_PUSHTXTBTN, BTC, 145, 255, 180, 191, STR_012E_CANCEL, STR_NULL}, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
238 |
{ WWT_PUSHTXTBTN, BTC, 270, 392, 180, 191, STR_NETWORK_JOIN_GAME, STR_NULL}, |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
175
diff
changeset
|
239 |
{ WIDGETS_END}, |
0 | 240 |
}; |
241 |
||
242 |
static const WindowDesc _network_game_window_desc = { |
|
243 |
WDP_CENTER, WDP_CENTER, 400, 200, |
|
244 |
WC_NETWORK_WINDOW,0, |
|
245 |
WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS, |
|
246 |
_network_game_window_widgets, |
|
247 |
NetworkGameWindowWndProc, |
|
248 |
}; |
|
249 |
||
250 |
||
251 |
void ShowNetworkGameWindow() |
|
252 |
{ |
|
253 |
Window *w; |
|
254 |
DeleteWindowById(WC_NETWORK_WINDOW, 0); |
|
105 | 255 |
|
256 |
NetworkLobbyInit(); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
257 |
|
0 | 258 |
w = AllocateWindowDesc(&_network_game_window_desc); |
259 |
strcpy(_edit_str_buf, "Your name"); |
|
211 | 260 |
w->vscroll.cap = 6; |
261 |
w->disabled_state = (1<<6) | (1<<7) | (1<<8); // disable buttons not yet working |
|
262 |
NetworkGameListFromLAN(); // default dropdown item is LAN, so fill that array |
|
0 | 263 |
|
206 | 264 |
_network_game_count_last = _network_game_count; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
265 |
|
0 | 266 |
WP(w,querystr_d).caret = 1; |
267 |
WP(w,querystr_d).maxlen = MAX_QUERYSTR_LEN; |
|
268 |
WP(w,querystr_d).maxwidth = 240; |
|
269 |
WP(w,querystr_d).buf = _edit_str_buf; |
|
270 |
} |
|
271 |
||
272 |
static const StringID _players_dropdown[] = { |
|
273 |
STR_NETWORK_2_PLAYERS, |
|
274 |
STR_NETWORK_3_PLAYERS, |
|
275 |
STR_NETWORK_4_PLAYERS, |
|
276 |
STR_NETWORK_5_PLAYERS, |
|
277 |
STR_NETWORK_6_PLAYERS, |
|
278 |
STR_NETWORK_7_PLAYERS, |
|
279 |
STR_NETWORK_8_PLAYERS, |
|
280 |
INVALID_STRING_ID |
|
281 |
}; |
|
282 |
||
283 |
static void NetworkStartServerWindowWndProc(Window *w, WindowEvent *e) |
|
284 |
{ |
|
285 |
switch(e->event) { |
|
286 |
case WE_PAINT: { |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
287 |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
288 |
SET_DPARAM16(7, STR_NETWORK_2_PLAYERS + _players_max); |
0 | 289 |
DrawWindowWidgets(w); |
290 |
||
291 |
GfxFillRect(11, 63, 237, 168, 0xD7); |
|
292 |
||
293 |
DrawEditBox(w, 3); |
|
294 |
DrawEditBox(w, 4); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
295 |
|
0 | 296 |
DrawString(10, 22, STR_NETWORK_NEW_GAME_NAME, 2); |
297 |
DrawString(210, 22, STR_NETWORK_PASSWORD, 2); |
|
298 |
||
299 |
DrawString(10, 43, STR_NETWORK_SELECT_MAP, 2); |
|
300 |
DrawString(260, 63, STR_NETWORK_NUMBER_OF_PLAYERS, 2); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
301 |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
302 |
} break; |
0 | 303 |
|
304 |
case WE_CLICK: |
|
305 |
_selected_field = e->click.widget; |
|
306 |
switch(e->click.widget) { |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
307 |
case 0: case 12: /* Close 'X' | Cancel button */ |
0 | 308 |
ShowNetworkGameWindow(); |
309 |
break; |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
310 |
case 7: case 8: /* Number of Players */ |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
311 |
ShowDropDownMenu(w, _players_dropdown, _players_max, 8, 0); // do it for widget 8 |
0 | 312 |
return; |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
313 |
case 9: /* Start game */ |
105 | 314 |
NetworkCoreStartGame(); |
211 | 315 |
strcpy(_network_game.server_name, WP(w,querystr_d).buf); |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
316 |
//ShowNetworkLobbyWindow(); |
105 | 317 |
DoCommandP(0, 0, 0, NULL, CMD_START_NEW_GAME); |
0 | 318 |
break; |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
319 |
case 10: /* Load game */ |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
320 |
NetworkCoreStartGame(); |
211 | 321 |
strcpy(_network_game.server_name, WP(w,querystr_d).buf); |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
322 |
//ShowNetworkLobbyWindow(); |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
323 |
ShowSaveLoadDialog(SLD_LOAD_GAME); |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
324 |
break; |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
325 |
case 11: /* Load scenario */ |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
326 |
NetworkCoreStartGame(); |
211 | 327 |
strcpy(_network_game.server_name, WP(w,querystr_d).buf); |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
328 |
//ShowNetworkLobbyWindow(); |
211 | 329 |
ShowSaveLoadDialog(SLD_LOAD_SCENARIO); |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
330 |
break; |
0 | 331 |
} |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
332 |
break; |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
333 |
|
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
334 |
case WE_DROPDOWN_SELECT: /* we have selected a dropdown item in the list */ |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
335 |
_players_max = e->dropdown.index; |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
336 |
|
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
337 |
SetWindowDirty(w); |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
338 |
break; |
0 | 339 |
|
340 |
case WE_MOUSELOOP: |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
341 |
if(_selected_field == 3 || _selected_field == 4) |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
342 |
HandleEditBox(w, _selected_field); |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
343 |
|
0 | 344 |
break; |
345 |
||
346 |
case WE_KEYPRESS: |
|
347 |
if(_selected_field != 3 && _selected_field != 4) |
|
348 |
break; |
|
349 |
switch (HandleEditBoxKey(w, _selected_field, e)) { |
|
350 |
case 1: |
|
351 |
HandleButtonClick(w, 9); |
|
352 |
break; |
|
353 |
} |
|
354 |
break; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
355 |
|
0 | 356 |
} |
357 |
} |
|
358 |
||
359 |
static const Widget _network_start_server_window_widgets[] = { |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
360 |
{ WWT_CLOSEBOX, BGC, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
361 |
{ WWT_CAPTION, BGC, 10, 399, 0, 13, STR_NETWORK_START_GAME_WINDOW, STR_NULL}, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
362 |
{ WWT_IMGBTN, BGC, 0, 399, 14, 199, 0x0, STR_NULL}, |
0 | 363 |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
364 |
{ WWT_IMGBTN, BGC, 80, 190, 22, 33, 0x0, STR_NETWORK_NEW_GAME_NAME_TIP}, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
365 |
{ WWT_IMGBTN, BGC, 280, 390, 22, 33, 0x0, STR_NETWORK_PASSWORD_TIP}, |
0 | 366 |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
367 |
{ WWT_IMGBTN, BGC, 10, 240, 62, 170, 0x0, STR_NETWORK_SELECT_MAP_TIP}, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
368 |
{ WWT_SCROLLBAR, BGC, 241, 251, 62, 170, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
0 | 369 |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
370 |
{ WWT_6, BGC, 260, 390, 81, 92, STR_NETWORK_COMBO2, STR_NETWORK_NUMBER_OF_PLAYERS_TIP}, |
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
371 |
{ WWT_CLOSEBOX, BGC, 379, 389, 82, 91, STR_0225, STR_NETWORK_NUMBER_OF_PLAYERS_TIP}, |
0 | 372 |
|
211 | 373 |
{ WWT_PUSHTXTBTN, BTC, 10, 100, 180, 191, STR_NETWORK_START_GAME, STR_NETWORK_START_GAME_TIP}, |
374 |
{ WWT_PUSHTXTBTN, BTC, 110, 200, 180, 191, STR_NETWORK_LOAD_GAME, STR_NETWORK_LOAD_GAME_TIP}, |
|
375 |
{ WWT_PUSHTXTBTN, BTC, 210, 300, 180, 191, STR_NETWORK_LOAD_SCENARIO, STR_NETWORK_LOAD_SCENARIO_TIP}, |
|
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
105
diff
changeset
|
376 |
{ WWT_PUSHTXTBTN, BTC, 310, 390, 180, 191, STR_012E_CANCEL, STR_NULL}, |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
175
diff
changeset
|
377 |
{ WIDGETS_END}, |
0 | 378 |
}; |
379 |
||
380 |
static const WindowDesc _network_start_server_window_desc = { |
|
381 |
WDP_CENTER, WDP_CENTER, 400, 200, |
|
382 |
WC_NETWORK_WINDOW,0, |
|
383 |
WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS, |
|
384 |
_network_start_server_window_widgets, |
|
385 |
NetworkStartServerWindowWndProc, |
|
386 |
}; |
|
387 |
||
388 |
static void ShowNetworkStartServerWindow() |
|
389 |
{ |
|
390 |
Window *w; |
|
391 |
DeleteWindowById(WC_NETWORK_WINDOW, 0); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
392 |
|
0 | 393 |
w = AllocateWindowDesc(&_network_start_server_window_desc); |
394 |
strcpy(_edit_str_buf, ""); |
|
211 | 395 |
w->disabled_state = (1<<4) | (1<<5) | (1<<6) | (1<<7) | (1<<8); // disable buttons not yet working |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
396 |
|
0 | 397 |
WP(w,querystr_d).caret = 1; |
398 |
WP(w,querystr_d).maxlen = MAX_QUERYSTR_LEN; |
|
399 |
WP(w,querystr_d).maxwidth = 240; |
|
400 |
WP(w,querystr_d).buf = _edit_str_buf; |
|
401 |
} |
|
402 |
||
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
403 |
#if 0 |
0 | 404 |
static void NetworkLobbyWindowWndProc(Window *w, WindowEvent *e) |
405 |
{ |
|
406 |
switch(e->event) { |
|
407 |
case WE_PAINT: { |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
408 |
|
0 | 409 |
SET_DPARAM16(7, STR_NETWORK_2_PLAYERS + _opt_mod_ptr->road_side); |
410 |
DrawWindowWidgets(w); |
|
411 |
||
412 |
GfxFillRect( 11, 31, 239, 239, 0xD7); |
|
413 |
GfxFillRect(261, 31, 378, 220, 0xD7); |
|
414 |
||
415 |
DrawEditBox(w, 5); |
|
416 |
DrawEditBox(w, 7); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
417 |
|
0 | 418 |
DrawString(10, 255, STR_NETWORK_COMPANY_NAME, 2); |
419 |
||
420 |
break; |
|
421 |
} |
|
422 |
||
423 |
case WE_CLICK: |
|
424 |
_selected_field = e->click.widget; |
|
425 |
switch(e->click.widget) { |
|
426 |
||
427 |
case 0: // close X |
|
428 |
case 13: // cancel button |
|
429 |
ShowNetworkGameWindow(); |
|
430 |
break; |
|
431 |
||
432 |
} |
|
433 |
||
434 |
case WE_MOUSELOOP: |
|
435 |
if(_selected_field == 5) |
|
436 |
{ |
|
437 |
HandleEditBox(w, 5); |
|
438 |
break; |
|
439 |
} |
|
440 |
if(_selected_field == 7) |
|
441 |
{ |
|
442 |
HandleEditBox(w, 7); |
|
443 |
break; |
|
444 |
} |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
445 |
|
0 | 446 |
break; |
447 |
||
448 |
case WE_KEYPRESS: |
|
449 |
if(_selected_field != 5 && _selected_field != 7) |
|
450 |
break; |
|
451 |
switch (HandleEditBoxKey(w, _selected_field, e)) { |
|
452 |
case 1: |
|
453 |
HandleButtonClick(w, 12); |
|
454 |
break; |
|
455 |
} |
|
456 |
break; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
457 |
|
0 | 458 |
} |
459 |
} |
|
460 |
||
461 |
static const Widget _network_lobby_window_widgets[] = { |
|
211 | 462 |
{ WWT_CLOSEBOX, BGC, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, |
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
463 |
{ WWT_CAPTION, BGC, 10, 399, 0, 13, STR_NETWORK_GAME_LOBBY, STR_NULL}, |
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
464 |
{ WWT_IMGBTN, BGC, 0, 399, 14, 299, 0x0, STR_NULL}, |
0 | 465 |
|
466 |
// chat widget |
|
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
467 |
{ WWT_IMGBTN, BGC, 10, 240, 30, 240, 0x0, STR_NULL}, |
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
468 |
{ WWT_SCROLLBAR, BGC, 241, 251, 30, 240, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
0 | 469 |
|
470 |
// send message prompt |
|
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
471 |
{ WWT_IMGBTN, BGC, 10, 200, 241, 252, 0x0, STR_NETWORK_ENTER_NAME_TIP}, |
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
472 |
{ WWT_PUSHTXTBTN, BTC, 201, 251, 241, 252, STR_NETWORK_SEND, STR_NETWORK_SEND_TIP}, |
0 | 473 |
|
474 |
// company name |
|
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
475 |
{ WWT_IMGBTN, BGC, 100, 251, 254, 265, 0x0, STR_NETWORK_COMPANY_NAME_TIP}, |
0 | 476 |
|
477 |
// player information |
|
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
478 |
{ WWT_IMGBTN, BGC, 260, 379, 30, 221, 0x0, STR_NULL}, |
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
479 |
{ WWT_SCROLLBAR, BGC, 380, 390, 30, 221, 0x1, STR_0190_SCROLL_BAR_SCROLLS_LIST}, |
0 | 480 |
|
481 |
// buttons |
|
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
482 |
{ WWT_PUSHTXTBTN, BTC, 260, 390, 233, 244, STR_NETWORK_NEW_COMPANY, STR_NETWORK_NEW_COMPANY_TIP}, |
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
483 |
{ WWT_PUSHTXTBTN, BTC, 260, 390, 254, 265, STR_NETWORK_SPECTATE_GAME, STR_NETWORK_SPECTATE_GAME_TIP}, |
0 | 484 |
|
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
485 |
{ WWT_PUSHTXTBTN, BTC, 80, 180, 280, 291, STR_NETWORK_READY, STR_NULL}, |
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
486 |
{ WWT_PUSHTXTBTN, BTC, 220, 320, 280, 291, STR_012E_CANCEL, STR_NULL}, |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
175
diff
changeset
|
487 |
{ WIDGETS_END}, |
0 | 488 |
}; |
489 |
||
490 |
static const WindowDesc _network_lobby_window_desc = { |
|
491 |
WDP_CENTER, WDP_CENTER, 400, 300, |
|
492 |
WC_NETWORK_WINDOW,0, |
|
493 |
WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS, |
|
494 |
_network_lobby_window_widgets, |
|
495 |
NetworkLobbyWindowWndProc, |
|
496 |
}; |
|
497 |
||
498 |
||
499 |
static void ShowNetworkLobbyWindow() |
|
500 |
{ |
|
501 |
Window *w; |
|
502 |
DeleteWindowById(WC_NETWORK_WINDOW, 0); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
503 |
|
0 | 504 |
w = AllocateWindowDesc(&_network_lobby_window_desc); |
505 |
strcpy(_edit_str_buf, ""); |
|
506 |
||
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
176
diff
changeset
|
507 |
|
0 | 508 |
WP(w,querystr_d).caret = 1; |
509 |
WP(w,querystr_d).maxlen = MAX_QUERYSTR_LEN; |
|
510 |
WP(w,querystr_d).maxwidth = 240; |
|
511 |
WP(w,querystr_d).buf = _edit_str_buf; |
|
512 |
} |
|
175
d6cccece959a
(svn r176) -Fix: network_gui const and warnings fixes (Tron)
darkvater
parents:
172
diff
changeset
|
513 |
#endif |