/[LeafOK_CVS]/pvpgn-1.7.4/src/common/anongame_protocol.h
ViewVC logotype

Contents of /pvpgn-1.7.4/src/common/anongame_protocol.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (vendor branch)
Tue Jun 6 03:41:38 2006 UTC (19 years, 9 months ago) by sysadm
Branch: GNU, MAIN
CVS Tags: arelease, HEAD
Changes since 1.1: +0 -0 lines
Content type: text/x-chdr
no message

1 /*
2 * Copyright (C) 1998 Mark Baysinger (mbaysing@ucsd.edu)
3 * Copyright (C) 1998,1999,2000 Ross Combs (rocombs@cs.nmsu.edu)
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 */
19 #ifndef INCLUDED_ANONGAME_PROTOCOL_TYPES
20 #define INCLUDED_ANONGAME_PROTOCOL_TYPES
21
22 #ifdef JUST_NEED_TYPES
23 # include "common/bn_type.h"
24 #else
25 # define JUST_NEED_TYPES
26 # include "common/bn_type.h"
27 # undef JUST_NEED_TYPES
28 #endif
29
30 /***********************************************************************************/
31 /* first packet recieved from client - option decides which struct to use next */
32 #define CLIENT_FINDANONGAME 0x44ff
33 #define SERVER_FINDANONGAME 0x44ff
34 typedef struct
35 {
36 t_bnet_header h;
37 bn_byte option;
38 /* rest of packet data */
39 } PACKED_ATTR() t_client_anongame;
40
41 /***********************************************************************************/
42 #define CLIENT_FINDANONGAME_SEARCH 0x00
43 #define CLIENT_FINDANONGAME_INFOS 0x02
44 #define CLIENT_FINDANONGAME_CANCEL 0x03
45 #define CLIENT_FINDANONGAME_PROFILE 0x04
46 #define CLIENT_FINDANONGAME_AT_SEARCH 0x05
47 #define CLIENT_FINDANONGAME_AT_INVITER_SEARCH 0x06
48 #define CLIENT_ANONGAME_TOURNAMENT 0X07
49 #define CLIENT_FINDANONGAME_PROFILE_CLAN 0x08
50 #define CLIENT_FINDANONGAME_GET_ICON 0x09
51 #define CLIENT_FINDANONGAME_SET_ICON 0x0A
52
53 #define SERVER_FINDANONGAME_SEARCH 0x00
54 #define SERVER_FINDANONGAME_FOUND 0x01
55 #define SERVER_FINDANONGAME_CANCEL 0x03
56 /***********************************************************************************/
57 /* option 00 - anongame search */
58 /*
59 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
60 Tournament PG 1v1 - battle.net
61 # 440 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=28 class=bnet
62 0000: FF 44 1C 00 00 01 00 00 00 00 00 00 00[02 13]01 .D..............
63 0010: 00 00 00 08 13 C7 30 04 04 00 00 00 ......0.....
64 PG 1v1
65 # 438 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=28 class=bnet
66 0000: FF 44 1C 00 00 01 00 00 00 00 00 00 00[00 00]FF .D..............
67 0010: 00 00 00 08 C2 13 A6 02 20 00 00 00 ........ ...
68 PG 2v2
69 # 456 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=28 class=bnet
70 0000: FF 44 1C 00 00 02 00 00 00 00 00 00 00[00 01]FF .D..............
71 0010: 07 00 00 08 A0 45 A6 02 20 00 00 00 .....E.. ...
72 PG 3v3
73 # 482 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=28 class=bnet
74 0000: FF 44 1C 00 00 03 00 00 00 00 00 00 00[00 02]FF .D..............
75 0010: 03 00 00 08 E8 7D A6 02 20 00 00 00 .....}.. ...
76 PG 4v4
77 # 516 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=28 class=bnet
78 0000: FF 44 1C 00 00 04 00 00 00 00 00 00 00[00 03]FF .D..............
79 0010: 01 00 00 08 48 B0 A6 02 20 00 00 00 ....H... ...
80 PG sffa
81 # 550 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=28 class=bnet
82 0000: FF 44 1C 00 00 05 00 00 00 00 00 00 00[00 04]FF .D..............
83 0010: 01 00 00 08 E6 F4 A6 02 20 00 00 00 ........ ...
84 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
85 inviter 2v2 - battle.net
86 # 74059 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=57 class=bnet
87 0000: FF 44 39 00 06 09 00 00 00 A0 03 00 0C 72 40 27 .D9..........r@'
88 0010: 3F 02 B9 DA 6B 9A A4 22 5D 60 49 EF 15 6F 44 25 ?...k.."]`I..oD%
89 0020: 02 4E F9 13 BC 4D 00 00 00 00[01 00]FF 07 00 00 .N...M..........
90 0030: 08 7E 98 E6 04 04 00 00 00 .~.......
91 inviter 2v2 - battle.net
92 # 83545 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=57 class=bnet
93 0000: FF 44 39 00 06 0A 00 00 00 E4 03 00 0C 9E 45 27 .D9...........E'
94 0010: 3F 02 1E 4E E7 53 80 F9 01 00 4F 68 A1 58 C5 1B ?..N.S....Oh.X..
95 0020: 44 31 BD EE 47 7F 00 00 00 00[01 00]FF 07 00 00 D1..G...........
96 0030: 08 48 07 FB 04 04 00 00 00 .H.......
97 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
98 AT 3v3 - pvpgn - with uid of team members
99 # 378 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=57 class=bnet
100 0000: FF 44 39 00 06 01 00 00 00[B7 36 C4 19]1B 02 2F .D9.......6..../
101 0010: 3F 03[19 00 00 00|02 00 00 00|01 00 00 00|FF FF ?...............
102 0020: FF FF|FF FF FF FF]00 00 00 00 01 02 FF 03 00 00 ................
103 0030: 08 AA A4 E2 0C 20 00 00 00 ..... ...
104
105 # 379 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=51 class=bnet
106 0000: FF 44 33 00 05 01 00 00 00[B7 36 C4 19]1B 02 2F .D3.......6..../
107 0010: 3F 03[19 00 00 00|02 00 00 00|01 00 00 00|FF FF ?...............
108 0020: FF FF|FF FF FF FF]00 00 00 00 08 59 C6 0E 00 20 ...........Y...
109 0030: 00 00 00 ...
110
111 # 382 packet from client: type=0x44ff(CLIENT_FINDANONGAME) length=51 class=bnet
112 0000: FF 44 33 00 05 01 00 00 00[B7 36 C4 19]1B 02 2F .D3.......6..../
113 0010: 3F 03[19 00 00 00|02 00 00 00|01 00 00 00|FF FF ?...............
114 0020: FF FF|FF FF FF FF]00 00 00 00 08 45 2C 13 00 20 ...........E,..
115 0030: 00 00 00 ...
116 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
117 */
118
119 typedef struct
120 {
121 t_bnet_header h;
122 bn_byte option;
123 bn_int count; /* Goes up each time client clicks search */
124 bn_int unknown2; /* 00 00 00 00 */
125 bn_byte type; /* 0 = PG , 1 = AT , 2 = TY - from TYPE */
126 bn_byte gametype; /* 0 = 1v1 , 1 = 2v2 , 2 = 3v3 , 3 = 4v4 , 4 = sffa - from TYPE */
127 bn_int map_prefs; /* map preferences bitmask */
128 bn_byte unknown3; /* 8 */
129 bn_int id; /* client id */
130 bn_int race; /* 1 = H , 2 = O , 4 = N , 8 = U , 0x20 = R */
131 } PACKED_ATTR() t_client_findanongame;
132
133 typedef struct
134 {
135 t_bnet_header h;
136 bn_byte option;
137 bn_int count;
138 bn_int tid; /* team id */
139 bn_int timestamp;
140 bn_byte teamsize;
141 bn_int info[5]; /* client get this info from SERVER_ARRANGEDTEAM_INVITE_FRIEND_ACK (0x61ff) */
142 bn_int unknown2; /* 00 00 00 00 */
143 bn_byte type; /* 0 = PG , 1 = AT , 2 = TY - from TYPE */
144 bn_byte gametype; /* 0 = 1v1 , 1 = 2v2 , 2 = 3v3 , 3 = 4v4 , 4 = sffa - from TYPE */
145 bn_int map_prefs; /* map preferences bitmask */
146 bn_byte unknown3; /* 08 */
147 bn_int id; /* client id */
148 bn_int race; /* 1 = H , 2 = O , 4 = N , 8 = U , 0x20 = R */
149 } PACKED_ATTR() t_client_findanongame_at_inv;
150
151 typedef struct
152 {
153 t_bnet_header h;
154 bn_byte option;
155 bn_int count; /* Goes up each time client clicks search */
156 bn_int tid; /* team id */
157 bn_int timestamp;
158 bn_byte teamsize;
159 bn_int info[5]; /* client get this info from inviter form SERVER_ARRANGEDTEAM_INVITE_FRIEND_ACK (0x61ff) */
160 bn_int unknown2; /* 00 00 00 00 */
161 bn_byte unknown3; /* 08 */
162 bn_int id; /* client id */
163 bn_int race; /* 1 = H , 2 = O , 4 = N , 8 = U , 0x20 = R */
164 } PACKED_ATTR() t_client_findanongame_at;
165
166 #define SERVER_ANONGAME_SEARCH_REPLY 0x44ff
167 typedef struct
168 {
169 t_bnet_header h;
170 bn_byte option;
171 bn_int count;
172 bn_int reply;
173 /* bn_short avgtime; - only in W3XP so far average time in seconds of search */
174 } PACKED_ATTR() t_server_anongame_search_reply;
175
176 /***********************************************************************************/
177 /* option 01 - anongame found */
178 /*
179 tournament 1v1
180 # 490 packet from server: type=0x44ff(unknown) length=84 class=bnet
181 0000: FF 44 54 00 01 01 00 00 00 00 00 00 00 3F F1 53 .DT..........?.S
182 0010: CD E0 17 F8 CC 00 00 3E 4F 8E 12 06[02 13]4D 61 .......>O.....Ma
183 0020: 70 73 5C 46 72 6F 7A 65 6E 54 68 72 6F 6E 65 5C ps\FrozenThrone\
184 0030: 28 34 29 46 6C 6F 6F 64 70 6C 61 69 6E 73 31 76 (4)Floodplains1v
185 0040: 31 2E 77 33 78 00 FF FF FF FF 31 44 4C 46 02 00 1.w3x.....1DLF..
186 0050: 00 00 02 02 ....
187 PG 2v2
188 # 28332 packet from server: type=0x44ff(unknown) length=83 class=bnet
189 0000: FF 44 53 00 01 02 00 00 00 00 00 00 00 D3 E9 00 .DS.............
190 0010: DC E0 17 2E 67 00 00 9A 7D 56 0F 06 00 01 4D 61 ....g...}V....Ma
191 0020: 70 73 5C 46 72 6F 7A 65 6E 54 68 72 6F 6E 65 5C ps\FrozenThrone\
192 0030: 28 36 29 53 63 6F 72 63 68 65 64 42 61 73 69 6E (6)ScorchedBasin
193 0040: 2E 77 33 78 00 FF FF FF FF 4D 41 45 54 04 02 00 .w3x.....MAET...
194 0050: 00 02 02 ...
195 PG 4v4
196 # 28827 packet from server: type=0x44ff(unknown) length=82 class=bnet
197 0000: FF 44 52 00 01 02 00 00 00 00 00 00 00 3F F1 53 .DR..........?.S
198 0010: DA E0 17 77 D6 00 00 92 D4 B8 56 06 00 03 4D 61 ...w......V...Ma
199 0020: 70 73 5C 46 72 6F 7A 65 6E 54 68 72 6F 6E 65 5C ps\FrozenThrone\
200 0030: 28 38 29 42 61 74 74 6C 65 67 72 6F 75 6E 64 2E (8)Battleground.
201 0040: 77 33 78 00 FF FF FF FF 4D 41 45 54 08 02 00 00 w3x.....MAET....
202 0050: 02 02 ..
203 PG 3v3
204 # 357 packet from server: type=0x44ff(unknown) length=84 class=bnet
205 0000: FF 44 54 00 01 01 00 00 00 00 00 00 00 3F F1 53 .DT..........?.S
206 0010: CE E0 17 10 22 01 00 29 0F 62 A0 06 00 02 4D 61 ...."..).b....Ma
207 0020: 70 73 5C 46 72 6F 7A 65 6E 54 68 72 6F 6E 65 5C ps\FrozenThrone\
208 0030: 28 36 29 42 6C 6F 6F 64 73 74 6F 6E 65 4D 65 73 (6)BloodstoneMes
209 0040: 61 2E 77 33 78 00 FF FF FF FF 4D 41 45 54 06 02 a.w3x.....MAET..
210 0050: 00 00 02 02 ....
211 PG 4v4
212 # 620 packet from server: type=0x44ff(unknown) length=79 class=bnet
213 0000: FF 44 4F 00 01 02 00 00 00 00 00 00 00 3F F1 53 .DO..........?.S
214 0010: DA E0 17 94 22 01 00 4C 29 5F 62 06 00 03 4D 61 ...."..L)_b...Ma
215 0020: 70 73 5C 46 72 6F 7A 65 6E 54 68 72 6F 6E 65 5C ps\FrozenThrone\
216 0030: 28 38 29 53 61 6E 63 74 75 61 72 79 2E 77 33 78 (8)Sanctuary.w3x
217 0040: 00 FF FF FF FF 4D 41 45 54 08 02 00 00 02 02 .....MAET......
218 PG sffa
219 # 810 packet from server: type=0x44ff(unknown) length=82 class=bnet
220 0000: FF 44 52 00 01 03 00 00 00 00 00 00 00 3F F1 53 .DR..........?.S
221 0010: C9 E0 17 3E 22 01 00 93 44 ED 22 06 00 04 4D 61 ...>"...D."...Ma
222 0020: 70 73 5C 46 72 6F 7A 65 6E 54 68 72 6F 6E 65 5C ps\FrozenThrone\
223 0030: 28 38 29 42 61 74 74 6C 65 67 72 6F 75 6E 64 2E (8)Battleground.
224 0040: 77 33 78 00 FF FF FF FF 20 41 46 46 05 00 00 00 w3x..... AFF....
225 0050: 02 02 ..
226 =-=-=-=-==-=-=-=-=
227 AT 2v2
228 # 74077 packet from server: type=0x44ff(unknown) length=87 class=bnet
229 0000: FF 44 57 00 01 09 00 00 00 00 00 00 00 3F F1 53 .DW..........?.S
230 0010: D3 E0 17 D8 D1 00 00 B4 2B 57 C6 06[01 00]4D 61 ........+W....Ma
231 0020: 70 73 5C 46 72 6F 7A 65 6E 54 68 72 6F 6E 65 5C ps\FrozenThrone\
232 0030: 28 36 29 53 74 72 61 6E 67 6C 65 74 68 6F 72 6E (6)Stranglethorn
233 0040: 56 61 6C 65 2E 77 33 78 00 FF FF FF FF 32 53 56 Vale.w3x.....2SV
234 0050: 32 04 02 00 00 02 02 2......
235
236 AT 2v2
237 # 83549 packet from server: type=0x44ff(unknown) length=79 class=bnet
238 0000: FF 44 4F 00 01 0A 00 00 00 00 00 00 00 3F F1 53 .DO..........?.S
239 0010: CF E0 17 BB D1 00 00 01 CB E4 BA 06[01 00]4D 61 ..............Ma
240 0020: 70 73 5C 46 72 6F 7A 65 6E 54 68 72 6F 6E 65 5C ps\FrozenThrone\
241 0030: 28 36 29 47 6E 6F 6C 6C 57 6F 6F 64 2E 77 33 78 (6)GnollWood.w3x
242 0040: 00 FF FF FF FF 32 53 56 32 04 02 00 00 02 02 .....2SV2......
243 */
244 #define SERVER_ANONGAME_FOUND 0x44ff
245 typedef struct
246 {
247 t_bnet_header h;
248 bn_byte option; /* 1: anongame found */
249 bn_int count;
250 bn_int unknown1; /* 00 00 00 00 */
251 bn_int ip;
252 bn_short port;
253 bn_byte unknown2;
254 bn_byte unknown3;
255 bn_short unknown4; /* usually 00 00 , seen 01 00 */
256 bn_int id; /* random val for identifying client */
257 bn_byte unknown5; /* 0x06 */
258 bn_byte type; /* 0 = PG , 1 = AT , 2 = TY - from TYPE */
259 bn_byte gametype; /* for PG - 0 = 1v1 , 1 = 2v2 , 2 = 3v3 , 3 = 4v4 , 4 = sffa
260 * for AT - 0 = 2v2 , 2 = 3v3 , 3 = 4v3
261 * for TY - set to 0
262 * from TYPE
263 */
264 /* char * mapname */
265 /* t_saf_pt2 * pt2 */
266 } PACKED_ATTR() t_server_anongame_found;
267
268 /* MISC PACKET APPEND DATA's */
269 typedef struct
270 {
271 bn_int unknown1; /* 0xFFFFFFFF */
272 bn_int anongame_string; /* ie. SOLO, TEAM, 2VS2, etc. */
273 bn_byte totalplayers;
274 bn_byte totalteams; /* 1v1 & sffa = 0, rest 2 */
275 bn_short unknown2; /* 0x0000 */
276 bn_byte visibility; /* 0x01 = dark - 0x02 = default */
277 bn_byte unknown3; /* 0x02 */
278 } PACKED_ATTR() t_saf_pt2;
279
280 /***********************************************************************************/
281 /* option 02 - info request */
282 #define CLIENT_FINDANONGAME_INFOREQ 0x44ff
283 typedef struct
284 {
285 t_bnet_header h;
286 bn_byte option; /* type of request:
287 * 0x02 for matchmaking infos */
288 bn_int count; /* 0x00000001 increments each request of same type */
289 bn_byte noitems;
290 } PACKED_ATTR() t_client_findanongame_inforeq;
291
292 #define SERVER_FINDANONGAME_INFOREPLY 0x44ff
293 typedef struct {
294 t_bnet_header h;
295 bn_byte option; /* as received from client */
296 bn_int count; /* as received from client */
297 bn_byte noitems; /* not very sure about it */
298 /* data */
299 /*
300 for type 0x02 :
301 <type of info><unknown int><info>
302 if <type of info> is :
303 URL\0 : <info> contains 3 NULL terminated urls/strings
304 MAP\0 : <info> contains 7 (seen so far) maps names
305 TYPE : <info> unknown 38 bytes probably meaning anongame types
306 DESC : <info>
307 */
308 } PACKED_ATTR() t_server_findanongame_inforeply;
309
310 /***********************************************************************************/
311 /* option 03 - playgame cancel */
312 #define SERVER_FINDANONGAME_PLAYGAME_CANCEL 0x44ff
313 typedef struct
314 {
315 t_bnet_header h; // header
316 bn_byte cancel; // Cancel byte always 03
317 bn_int count;
318 } PACKED_ATTR() t_server_findanongame_playgame_cancel;
319
320
321 /* option 04 - profile request */
322 typedef struct
323 {
324 t_bnet_header h;
325 bn_byte option;
326 bn_int count;
327 // USERNAME TO LOOKUP //
328 // CLIENT TAG //
329 } PACKED_ATTR() t_client_findanongame_profile;
330
331 #define SERVER_FINDANONGAME_PROFILE 0x44ff
332 /*
333 typedef struct
334 {
335 t_bnet_header h; //header
336 bn_byte option; // in this case it will be 0x04 (for profile)
337 bn_int count; // count that goes up each time user clicks on someones profile
338 // REST OF PROFILE STATS - THIS WILL BE SET IN HANDLE_BNET.C after
339 // SERVER LOOKS UP THE USER ACCOUNT
340 } PACKED_ATTR() t_server_findanongame_profile;
341 */
342 typedef struct
343 {
344 t_bnet_header h;
345 bn_byte option;
346 bn_int count;
347 bn_int icon;
348 bn_byte rescount;
349 // REST OF PROFILE STATS - THIS WILL BE SET IN HANDLE_BNET.C after
350 // SERVER LOOKS UP THE USER ACCOUNT
351 } PACKED_ATTR() t_server_findanongame_profile2;
352
353 /***********************************************************************************/
354 /* option 07 - tournament request */
355 #define CLIENT_FINDANONGAME_TOURNAMENT_REQUEST 0x44ff
356 typedef struct
357 {
358 t_bnet_header h;
359 bn_byte option; /* 07 */
360 bn_int count; /* 01 00 00 00 */
361 } PACKED_ATTR() t_client_anongame_tournament_request;
362
363 #define SERVER_FINDANONGAME_TOURNAMENT_REPLY 0x44ff
364 typedef struct
365 {
366 t_bnet_header h;
367 bn_byte option; /* 07 */
368 bn_int count; /* 00 00 00 01 reply with same number */
369 bn_byte type; /* type - 01 = notice - time = prelim round begins
370 * 02 = signups - time = signups end
371 * 03 = signups over - time = prelim round ends
372 * 04 = prelim over - time = finals round 1 begins
373 */
374 bn_byte unknown; /* 00 */
375 bn_short unknown4; /* random ? might be part of time/date ? */
376 bn_int timestamp;
377 bn_byte unknown5; /* 01 effects time/date */
378 bn_short countdown; /* countdown until next timestamp (seconds) */
379 bn_short unknown2; /* 00 00 */
380 bn_byte wins; /* during prelim */
381 bn_byte losses; /* during prelim */
382 bn_byte ties; /* during prelim */
383 bn_byte unknown3; /* 00 = notice. 08 = signups thru prelim over (02-04) */
384 bn_byte selection; /* matches anongame_TY_section of DESC */
385 bn_byte descnum; /* matches desc_count of DESC */
386 bn_byte nulltag; /* 00 */
387 } PACKED_ATTR() t_server_anongame_tournament_reply;
388
389 /***********************************************************************************/
390
391 /* option 08 - clan profile request */
392 typedef struct
393 {
394 t_bnet_header h;
395 bn_byte option;
396 bn_int count;
397 bn_int clantag;
398 bn_int clienttag;
399 } PACKED_ATTR() t_client_findanongame_profile_clan;
400
401 #define SERVER_FINDANONGAME_PROFILE_CLAN 0x44ff
402
403 typedef struct
404 {
405 t_bnet_header h;
406 bn_byte option;
407 bn_int count;
408 bn_byte rescount;
409 // REST OF PROFILE STATS - THIS WILL BE SET IN HANDLE_BNET.C after
410 // SERVER LOOKS UP THE USER ACCOUNT
411 } PACKED_ATTR() t_server_findanongame_profile_clan;
412
413
414 /***********************************************************************************/
415 /* option 9 - icon request */
416 #define SERVER_FINDANONGAME_ICONREPLY 0x44ff
417 typedef struct{
418 t_bnet_header h;
419 bn_byte option; /* as received from client */
420 bn_int count; /* as received from client */
421 bn_int curricon; /* current icon code */
422 bn_byte table_width; /* the icon table width */
423 bn_byte table_size; /* the icon table total size */
424 /* table data */
425 } PACKED_ATTR() t_server_findanongame_iconreply;
426
427 /***********************************************************************************/
428 #define SERVER_ANONGAME_SOLO_STR 0x534F4C4F /* "SOLO" */
429 #define SERVER_ANONGAME_TEAM_STR 0x5445414D /* "TEAM" */
430 #define SERVER_ANONGAME_SFFA_STR 0x46464120 /* "FFA " */
431 #define SERVER_ANONGAME_AT2v2_STR 0x32565332 /* "2VS2" */
432 #define SERVER_ANONGAME_AT3v3_STR 0x33565333 /* "3VS3" */
433 #define SERVER_ANONGAME_AT4v4_STR 0x34565334 /* "4VS4" */
434 #define SERVER_ANONGAME_TY_STR 0X54592020 /* "TY " FIXME-TY: WHAT TO PUT HERE */
435
436 #define CLIENT_FINDANONGAME_INFOTAG_URL 0x55524c // URL\0
437 #define CLIENT_FINDANONGAME_INFOTAG_MAP 0x4d4150 // MAP\0
438 #define CLIENT_FINDANONGAME_INFOTAG_TYPE 0x54595045 // TYPE
439 #define CLIENT_FINDANONGAME_INFOTAG_DESC 0x44455343 // DESC
440 #define CLIENT_FINDANONGAME_INFOTAG_LADR 0x4c414452 // LADR
441 #define CLIENT_FINDANONGAME_INFOTAG_SOLO 0x534f4c4f // SOLO
442 #define CLIENT_FINDANONGAME_INFOTAG_TEAM 0x5445414d // TEAM
443 #define CLIENT_FINDANONGAME_INFOTAG_FFA 0x46464120 // FFA\20
444
445 #define ANONGAME_TYPE_1V1 0
446 #define ANONGAME_TYPE_2V2 1
447 #define ANONGAME_TYPE_3V3 2
448 #define ANONGAME_TYPE_4V4 3
449 #define ANONGAME_TYPE_SMALL_FFA 4
450 #define ANONGAME_TYPE_AT_2V2 5
451 #define ANONGAME_TYPE_TEAM_FFA 6
452 #define ANONGAME_TYPE_AT_3V3 7
453 #define ANONGAME_TYPE_AT_4V4 8
454 /* Added by Omega */
455 #define ANONGAME_TYPE_TY 9
456 #define ANONGAME_TYPE_5V5 10
457 #define ANONGAME_TYPE_6V6 11
458 #define ANONGAME_TYPE_2V2V2 12
459 #define ANONGAME_TYPE_3V3V3 13
460 #define ANONGAME_TYPE_4V4V4 14
461 #define ANONGAME_TYPE_2V2V2V2 15
462 #define ANONGAME_TYPE_3V3V3V3 16
463 #define ANONGAME_TYPE_AT_2V2V2 17
464
465 #define ANONGAME_TYPES 18
466
467 #define SERVER_FINDANONGAME_PROFILE_UNKNOWN2 0x6E736865 //Sheep
468
469 /***********************************************************************************/
470 /***********************************************************************************/
471 /* This is a blank packet - includes just type and size */
472 #define CLIENT_ARRANGEDTEAM_FRIENDSCREEN 0x60ff
473 typedef struct
474 {
475 t_bnet_header h;
476 } PACKED_ATTR() t_client_arrangedteam_friendscreen;
477
478 /***********************************************************************************/
479 #define SERVER_ARRANGEDTEAM_FRIENDSCREEN 0x60ff
480 typedef struct
481 {
482 t_bnet_header h;
483 bn_byte f_count;
484 /* usernames get appended here */
485 } PACKED_ATTR() t_server_arrangedteam_friendscreen;
486
487 #define SERVER_ARRANGED_TEAM_ADDNAME 0x01
488
489 /***********************************************************************************/
490 /*
491 0000: FF 61 1C 00 01 00 00 00 C9 7B A0 02 01 00 00 00 .........{......
492 0010: 01 74 72 65 6E 64 65 63 69 64 65 00 .trendecide.
493 */
494 #define CLIENT_ARRANGEDTEAM_INVITE_FRIEND 0x61ff
495 typedef struct
496 {
497 t_bnet_header h;
498 bn_int count;
499 bn_int id;
500 bn_int unknown1; /* 01 00 00 00 */
501 bn_byte numfriends; //next is a byte, that is the number of friends to invite
502 /* usernames get appended here */
503 } PACKED_ATTR() t_client_arrangedteam_invite_friend;
504
505 /***********************************************************************************/
506 #define SERVER_ARRANGEDTEAM_INVITE_FRIEND_ACK 0x61ff
507 typedef struct
508 {
509 t_bnet_header h;
510 bn_int count;
511 bn_int id; /* client id */
512 bn_int timestamp;
513 bn_byte teamsize; /* numfriends + 1 */
514 bn_int info[5];
515 } PACKED_ATTR() t_server_arrangedteam_invite_friend_ack;
516
517 /***********************************************************************************/
518 #define SERVER_ARRANGEDTEAM_SEND_INVITE 0x63ff
519 typedef struct
520 {
521 t_bnet_header h;
522 bn_int count;
523 bn_int id; /* client id of inviter */
524 bn_int inviterip; /* IP address of the person who invited them into the game */
525 bn_short port; /* Port of the person who invited them into the game */
526 bn_byte numfriends; /* Number of friends that got invited to the game */
527 /* username of the inviter */
528 /* usernames of the others who got invited */
529 } PACKED_ATTR() t_server_arrangedteam_send_invite;
530
531 /***********************************************************************************/
532 #define CLIENT_ARRANGEDTEAM_ACCEPT_DECLINE_INVITE 0x63ff
533 typedef struct
534 {
535 t_bnet_header h;
536 bn_int count;
537 bn_int id;
538 bn_int option; /* accept or decline */
539 /* username of the inviter */
540 } PACKED_ATTR() t_client_arrangedteam_accept_decline_invite;
541
542 #define CLIENT_ARRANGEDTEAM_ACCEPT 0x00000003
543 #define CLIENT_ARRANGEDTEAM_DECLINE 0x00000002
544
545 /***********************************************************************************/
546 #define SERVER_ARRANGEDTEAM_MEMBER_DECLINE 0x62ff
547 typedef struct
548 {
549 t_bnet_header h;
550 bn_int count;
551 bn_int action; // number assigned to player? playernum?
552 //username of the person who declined invitation
553 } PACKED_ATTR() t_server_arrangedteam_member_decline;
554
555 #define SERVER_ARRANGEDTEAM_ACCEPT 0x00000003
556 #define SERVER_ARRANGEDTEAM_DECLINE 0x00000002
557
558 /***********************************************************************************/
559 /* not used ?? [Omega] */
560 /*
561 0000: FF 64 1C 00 02 00 00 00 00 00 00 00 01 00 00 00 .d..............
562 0010: 00 00 00 00 03 00 00 00 00 00 00 00 ............
563 */
564 /* THIS NEEDS FINISHED */
565 /*
566 #define SERVER_ARRANGEDTEAM_TEAM_STATS 0x64ff
567 typedef struct
568 {
569 t_bnet_header h;
570 }
571 */
572 /***********************************************************************************/
573 /***********************************************************************************/
574 /*
575 # 144 packet from client: type=0x65ff(unknown) length=4 class=bnet
576 0000: FF 65 04 00 .e..
577 */
578 #define CLIENT_FRIENDSLISTREQ 0x65ff
579 typedef struct
580 {
581 t_bnet_header h;
582 } PACKED_ATTR() t_client_friendslistreq;
583
584 /*
585 # 158 packet from server: type=0x65ff(unknown) length=16 class=bnet
586 0000: FF 65 10 00 01 66 6F 6F 00 00 00 00 00 00 00 00 .e.. .foo. .......
587
588
589 */
590 #define SERVER_FRIENDSLISTREPLY 0x65ff
591 typedef struct
592 {
593 t_bnet_header h;
594 bn_byte friendcount;
595 /* 1 byte status, 0-terminated name, 6 bytes unknown, ... */
596 } PACKED_ATTR() t_server_friendslistreply;
597
598 typedef struct
599 {
600 bn_byte status;
601 bn_byte location;
602 bn_int clienttag;
603 } PACKED_ATTR() t_server_friendslistreply_status;
604
605 /*
606 # 124 packet from client: type=0x66ff(unknown) length=5 class=bnet
607 0000: FF 66 05 00 00 .f...
608 */
609 /* FF 66-05 00 00 40 - AT */
610 #define CLIENT_FRIENDINFOREQ 0x66ff
611 typedef struct
612 {
613 t_bnet_header h;
614 bn_byte friendnum;
615 } PACKED_ATTR() t_client_friendinforeq;
616
617 /*
618 # 126 packet from server: type=0x66ff(unknown) length=12 class=bnet
619 0000: FF 66 0C 00 00 00 00 00 00 00 00 00 .f..........
620
621 Arranged Team sends this to each inviter
622 FF 66-1A 00 00 01 03 33 52 41 ..g....f.....3RA
623 0x0040 57 41 72 72 61 6E 67 65-64 20 54 65 61 6D 73 00 WArranged Teams.
624 and this to the inviter
625 FF 66-18 00 00 01 02 33 52 41 ..i....f.....3RA
626 0x0040 57 57 61 72 63 72 61 66-74 20 49 49 49 00 WWarcraft III.
627 */
628
629 #define SERVER_FRIENDINFOREPLY 0x66ff
630 typedef struct
631 {
632 t_bnet_header h;
633 bn_byte friendnum;
634 bn_byte type;
635 bn_byte status;
636 bn_int clienttag;
637 /* game name */
638 } PACKED_ATTR() t_server_friendinforeply;
639 #define FRIEND_TYPE_NON_MUTUAL 0x00
640 #define FRIEND_TYPE_MUTUAL 0x01
641 #define FRIEND_TYPE_DND 0x02
642 #define FRIEND_TYPE_AWAY 0x04
643
644 /******************************************************/
645 /*
646 # 126 packet from server: type=0x67ff(unknown) length=15 class=bnet
647 0000: FF 67 0F 00 66 6F 6F 00 00 00 00 00 00 00 00 .g..foo........
648 */
649 #define SERVER_FRIENDADD_ACK 0x67ff
650 typedef struct
651 {
652 t_bnet_header h;
653 /* friend name, status */
654 } PACKED_ATTR() t_server_friendadd_ack;
655 /******************************************************/
656 /*
657 # 114 packet from server: type=0x68ff(unknown) length=5 class=bnet
658 0000: FF 68 05 00 01 .h...
659 */
660 #define SERVER_FRIENDDEL_ACK 0x68ff
661 typedef struct
662 {
663 t_bnet_header h;
664 bn_byte friendnum;
665 } PACKED_ATTR() t_server_frienddel_ack;
666 /******************************************************/
667
668 #define SERVER_FRIENDMOVE_ACK 0x69ff
669 typedef struct
670 {
671 t_bnet_header h;
672 bn_byte pos1;
673 bn_byte pos2;
674 } PACKED_ATTR() t_server_friendmove_ack;
675
676 #define FRIENDSTATUS_OFFLINE 0x00
677 #define FRIENDSTATUS_ONLINE 0x01
678 #define FRIENDSTATUS_CHAT 0x02
679 #define FRIENDSTATUS_PUBLIC_GAME 0x03
680 #define FRIENDSTATUS_PRIVATE_GAME 0x05
681
682 #endif

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1