ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.5
Committed: Thu Jun 5 10:35:20 2003 UTC (20 years, 11 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.4: +4 -4 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 pcg 1.1 <html>
2     <head>
3     <title>KGS Protocol Description</title>
4     <!--
5     Copyright (C) 2003 Marc Lehmannn &lt;pcg@goof.com&gt;
6    
7     You can redistribute and/or modify this document under the terms of
8     the GNU General Public License as published by the Free Software
9     Foundation; either version 2 of the License, or (at your option) any
10     later version.
11    
12     This document is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15     General Public License for more details.
16    
17     You should have received a copy of the GNU General Public License
18     along with this program; if not, write to the Free Software
19     Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20     -->
21     </head>
22     <body>
23    
24     <h1>KGS Protocol Description</h1>
25    
26     <p>This XML document describes the KGS protocol. It is also used
27     to automatically generate the perl parser for all the messages and
28     structures in the protocol. Adapting it to other languages should be
29     trivial.</p>
30    
31 pcg 1.4 <p>If you feel you need to update the visual appearance of this
32     document, feel free to look at <tt>doc/doc2html.xsl</tt> and improve
33     it.</p>
34    
35 pcg 1.1 <h2>Structure and conventions of this document and the protocol</h2>
36    
37     <p>"Send" means messages send from the client to the server, while
38     "received" means messages send by the server to the client.</p>
39    
40 pcg 1.4 <p>Everything on the wire is in little-endian format (what a shame).</p>
41 pcg 1.1
42 pcg 1.4 <p>Primitive types are mostly integers (signed
43     "<code>I</code>&lt;bits&gt;", unsigned "<code>U</code>&lt;bits&gt;"),
44     ascii strings ("<code>username</code>"), or zero-terminated
45     UCS2-Strings ("<code>STRING</code>"). Yes, I know java is supposed to
46     do UTF-16, but no implementation seems to care...</p>
47 pcg 1.1
48     <p>For the rest, go figure or bug me, Marc Lehmann &lt;pcg@goof.com&gt;</p>
49    
50     <h2>Stream and message structure.</h2>
51    
52 pcg 1.4 <p>After connecting to the server, a handshake byte is sent. It's
53     the major version number of the protocol the client expects to
54     receive. Version 3 and 4 are mostly the same, except that Version 4
55     clients expect server messages to be compressed, version 3 clients
56     not.</p>
57    
58     <p>The server sends back his protocol number, which is always 3 in
59     the current protocol. Most of the protocol variation is determined by
60     the server using the client version that is used in the initial login
61     message, not the initial handshake byte.</p>
62 pcg 1.1
63     <p>After the initial handshake, the client sends uncompressed
64     messages, while the server sends back a zlib-compressed
65     stream (<a href="http://rfc1950.x42.com/">rfc1950</a> and <a href="http://rfc1950.x42.com/">rfc1951</a>).</p>
66    
67     <p>All messages have the same header:</p>
68    
69 pcg 1.3 <h4>STRUCTURE message_header</h4>
70 pcg 1.1 <table border="1">
71     <tr>
72     <th>NAME</th>
73     <th>TYPE</th>
74     <th>DEFAULT</th>
75 pcg 1.3 <th>DEC-GUARD</th>
76 pcg 1.1 </tr>
77     <tr>
78     <td colspan="4">
79     </td>
80     </tr>
81     <tr>
82     <td>_unknown</td>
83 pcg 1.3 <td>U16</td>
84 pcg 1.1 <td></td>
85 pcg 1.3 <td>
86 pcg 1.4 <b></b> </td>
87 pcg 1.1 </tr>
88     <tr>
89     <td colspan="4">
90     </td>
91     </tr>
92     <tr>
93     <td>length</td>
94 pcg 1.3 <td>U16</td>
95 pcg 1.1 <td></td>
96 pcg 1.3 <td>
97 pcg 1.4 <b></b> </td>
98 pcg 1.1 </tr>
99     <tr>
100     <td colspan="4">
101     The length is the length of the full message including the header.
102     </td>
103     </tr>
104     <tr>
105     <td>type</td>
106 pcg 1.3 <td>U16</td>
107 pcg 1.1 <td></td>
108 pcg 1.3 <td>
109 pcg 1.4 <b></b> </td>
110 pcg 1.1 </tr>
111     <tr>
112     <td colspan="4">
113     If the type is &gt;= 0x4000 this is a message for a specific channel. The channel
114 pcg 1.3 number is always the next U16.
115 pcg 1.1 </td>
116     </tr>
117     </table>
118    
119 pcg 1.3 <h2>Primitive types used in the protocol.</h2>
120    
121     <p>Baaah... not much yet.</p>
122    
123 pcg 1.4 <h4>TYPE username</h4>
124     BASE TYPE: A<br />
125     LENGTH: 12<br />
126     MULTIPLIER: <br />
127     <h4>TYPE roomname</h4>
128     BASE TYPE: S<br />
129     LENGTH: 25<br />
130     MULTIPLIER: <br />
131 pcg 1.3 <!-- argh, how horribly broken -->
132 pcg 1.4 <h4>TYPE locale</h4>
133     BASE TYPE: A<br />
134     LENGTH: 5<br />
135     MULTIPLIER: <br />
136     <h4>TYPE flag</h4>
137     BASE TYPE: U8<br />
138     LENGTH: <br />
139     MULTIPLIER: 1<br />
140     <h4>TYPE komi</h4>
141     BASE TYPE: I32<br />
142     LENGTH: <br />
143     MULTIPLIER: 2<br />
144     <h4>TYPE result</h4>
145     BASE TYPE: I32<br />
146     LENGTH: <br />
147     MULTIPLIER: 2<br />
148     <h4>TYPE score</h4>
149     BASE TYPE: I32<br />
150     LENGTH: <br />
151     MULTIPLIER: 4<br />
152     <h4>TYPE time</h4>
153     BASE TYPE: U32<br />
154     LENGTH: <br />
155     MULTIPLIER: 100<br />
156 pcg 1.3
157     <h2>Constants, enumeration and set types used in the protocol.</h2>
158 pcg 1.1
159     <p>Baaah... not yet.</p>
160    
161 pcg 1.3 <h2>Structs used in send &amp; receive messages</h2>
162 pcg 1.1
163 pcg 1.3 <h4>STRUCTURE user</h4>
164     CLASS: KGS::User<br />
165 pcg 1.1 <table border="1">
166     <tr>
167     <th>NAME</th>
168     <th>TYPE</th>
169     <th>DEFAULT</th>
170 pcg 1.3 <th>DEC-GUARD</th>
171 pcg 1.1 </tr>
172     <tr>
173     <td colspan="4">
174     </td>
175     </tr>
176     <tr>
177     <td>name</td>
178 pcg 1.3 <td>username</td>
179 pcg 1.1 <td></td>
180 pcg 1.3 <td>
181 pcg 1.4 <b></b> </td>
182 pcg 1.1 </tr>
183     <tr>
184     <td colspan="4">
185     </td>
186     </tr>
187     <tr>
188     <td>flags</td>
189 pcg 1.3 <td>U32</td>
190 pcg 1.1 <td>1</td>
191 pcg 1.3 <td>
192 pcg 1.4 <b></b> </td>
193 pcg 1.1 </tr>
194     <tr>
195     <td colspan="4">
196     </td>
197     </tr>
198     </table>
199    
200 pcg 1.3 <h2>Structs used in send messages</h2>
201 pcg 1.1
202     <h4>MESSAGE login</h4>
203     NUMERIC TYPE (hex): 0000 SEND<table border="1">
204     <tr>
205     <th>NAME</th>
206     <th>TYPE</th>
207     <th>DEFAULT</th>
208 pcg 1.3 <th>DEC-GUARD</th>
209 pcg 1.1 </tr>
210     <tr>
211     <td colspan="4">
212     </td>
213     </tr>
214     <tr>
215     <td>ver_major</td>
216 pcg 1.3 <td>U32</td>
217 pcg 1.1 <td>2</td>
218 pcg 1.3 <td>
219 pcg 1.4 <b></b> </td>
220 pcg 1.1 </tr>
221     <tr>
222     <td colspan="4">
223     </td>
224     </tr>
225     <tr>
226     <td>ver_minor</td>
227 pcg 1.3 <td>U32</td>
228 pcg 1.1 <td>4</td>
229 pcg 1.3 <td>
230 pcg 1.4 <b></b> </td>
231 pcg 1.1 </tr>
232     <tr>
233     <td colspan="4">
234     </td>
235     </tr>
236     <tr>
237     <td>ver_micro</td>
238 pcg 1.3 <td>U32</td>
239 pcg 1.1 <td>67</td>
240 pcg 1.3 <td>
241 pcg 1.4 <b></b> </td>
242 pcg 1.1 </tr>
243     <tr>
244     <td colspan="4">
245     </td>
246     </tr>
247     <tr>
248 pcg 1.3 <td>name</td>
249     <td>username</td>
250 pcg 1.1 <td></td>
251 pcg 1.3 <td>
252 pcg 1.4 <b></b> </td>
253 pcg 1.1 </tr>
254     <tr>
255     <td colspan="4">
256     </td>
257     </tr>
258     <tr>
259     <td>password </td>
260 pcg 1.3 <td>U64</td>
261 pcg 1.1 <td>0</td>
262 pcg 1.3 <td>
263 pcg 1.4 <b></b> </td>
264 pcg 1.1 </tr>
265     <tr>
266     <td colspan="4">
267 pcg 1.3 Password is a number calculated as follows (VERY insecure, basically plaintext!):
268 pcg 1.4 password = 0; for char in characters do password ← password * 1055 + ascii_code (char);
269 pcg 1.1 </td>
270     </tr>
271     <tr>
272 pcg 1.2 <td>guest</td>
273 pcg 1.3 <td>flag</td>
274 pcg 1.1 <td>1</td>
275 pcg 1.3 <td>
276 pcg 1.4 <b></b> </td>
277 pcg 1.1 </tr>
278     <tr>
279     <td colspan="4">
280     </td>
281     </tr>
282     <tr>
283     <td>_unknown3</td>
284 pcg 1.3 <td>U16</td>
285 pcg 1.1 <td>0</td>
286 pcg 1.3 <td>
287 pcg 1.4 <b></b> </td>
288 pcg 1.1 </tr>
289     <tr>
290     <td colspan="4">
291     </td>
292     </tr>
293     <tr>
294 pcg 1.2 <td>locale</td>
295 pcg 1.3 <td>locale</td>
296     <td>"en_US"</td>
297     <td>
298 pcg 1.4 <b></b> </td>
299 pcg 1.1 </tr>
300     <tr>
301     <td colspan="4">
302     </td>
303     </tr>
304     <tr>
305     <td>clientver</td>
306     <td>DATA</td>
307 pcg 1.3 <td>"1.4.1_01:Swing app:Sun Microsystems Inc."</td>
308     <td>
309 pcg 1.4 <b></b> </td>
310 pcg 1.1 </tr>
311     <tr>
312     <td colspan="4">
313 pcg 1.4 The "default" is the java vm version, not exactly he client version. However,
314     you should always send a tetx like "Jonathan's C client bersion 0.6" or somesuch,
315     so the server can, if necessary, block broken clients or client versions.
316 pcg 1.1 </td>
317     </tr>
318     </table>
319    
320     <h4>MESSAGE server_stats</h4>
321 pcg 1.2 NUMERIC TYPE (hex): 0014 SEND<table border="1">
322 pcg 1.1 <tr>
323     <th>NAME</th>
324     <th>TYPE</th>
325     <th>DEFAULT</th>
326 pcg 1.3 <th>DEC-GUARD</th>
327 pcg 1.1 </tr>
328     <tr>
329     <td colspan="4">
330     Request server statistics.
331     </td>
332     </tr>
333     </table>
334    
335     <h4>MESSAGE pic_req</h4>
336 pcg 1.2 NUMERIC TYPE (hex): 0021 SEND<table border="1">
337 pcg 1.1 <tr>
338     <th>NAME</th>
339     <th>TYPE</th>
340     <th>DEFAULT</th>
341 pcg 1.3 <th>DEC-GUARD</th>
342 pcg 1.1 </tr>
343     <tr>
344     <td colspan="4">
345     Request a user picture from the server.
346     </td>
347     </tr>
348     <tr>
349     <td>name</td>
350 pcg 1.3 <td>username</td>
351 pcg 1.1 <td></td>
352 pcg 1.3 <td>
353 pcg 1.4 <b></b> </td>
354 pcg 1.1 </tr>
355     <tr>
356     <td colspan="4">
357     </td>
358     </tr>
359     </table>
360    
361     <h4>MESSAGE pic_upload</h4>
362 pcg 1.2 NUMERIC TYPE (hex): 0021 SEND<table border="1">
363 pcg 1.1 <tr>
364     <th>NAME</th>
365     <th>TYPE</th>
366     <th>DEFAULT</th>
367 pcg 1.3 <th>DEC-GUARD</th>
368 pcg 1.1 </tr>
369     <tr>
370     <td colspan="4">
371     Same code as pic_req, but with an additional data section that
372 pcg 1.4 must contain a JPEG image that is &lt;=7KB. It must have 141×200 pixels.
373 pcg 1.1 </td>
374     </tr>
375     <tr>
376     <td>name</td>
377 pcg 1.3 <td>username</td>
378 pcg 1.1 <td></td>
379 pcg 1.3 <td>
380 pcg 1.4 <b></b> </td>
381 pcg 1.1 </tr>
382     <tr>
383     <td colspan="4">
384     </td>
385     </tr>
386     <tr>
387     <td>data</td>
388     <td>DATA</td>
389     <td></td>
390 pcg 1.3 <td>
391 pcg 1.4 <b></b> </td>
392 pcg 1.1 </tr>
393     <tr>
394     <td colspan="4">
395     </td>
396     </tr>
397     </table>
398    
399     <h4>MESSAGE gnotice</h4>
400 pcg 1.2 NUMERIC TYPE (hex): 0100 SEND<table border="1">
401 pcg 1.1 <tr>
402     <th>NAME</th>
403     <th>TYPE</th>
404     <th>DEFAULT</th>
405 pcg 1.3 <th>DEC-GUARD</th>
406 pcg 1.1 </tr>
407     <tr>
408     <td colspan="4">
409     Send a global message. Maybe. Never tried, for obvious reasons :/
410     </td>
411     </tr>
412     <tr>
413     <td>notice</td>
414     <td>STRING</td>
415     <td></td>
416 pcg 1.3 <td>
417 pcg 1.4 <b></b> </td>
418 pcg 1.1 </tr>
419     <tr>
420     <td colspan="4">
421     </td>
422     </tr>
423     </table>
424    
425     <h4>MESSAGE list_rooms</h4>
426 pcg 1.2 NUMERIC TYPE (hex): 0318 SEND<table border="1">
427 pcg 1.1 <tr>
428     <th>NAME</th>
429     <th>TYPE</th>
430     <th>DEFAULT</th>
431 pcg 1.3 <th>DEC-GUARD</th>
432 pcg 1.1 </tr>
433     <tr>
434     <td colspan="4">
435     List the rooms in a specific group/category.
436     </td>
437     </tr>
438     <tr>
439     <td>group</td>
440 pcg 1.3 <td>U8</td>
441 pcg 1.1 <td></td>
442 pcg 1.3 <td>
443 pcg 1.4 <b></b> </td>
444 pcg 1.1 </tr>
445     <tr>
446     <td colspan="4">
447     </td>
448     </tr>
449     </table>
450    
451     <h4>MESSAGE new_room</h4>
452 pcg 1.2 NUMERIC TYPE (hex): 031a SEND<table border="1">
453 pcg 1.1 <tr>
454     <th>NAME</th>
455     <th>TYPE</th>
456     <th>DEFAULT</th>
457 pcg 1.3 <th>DEC-GUARD</th>
458 pcg 1.1 </tr>
459     <tr>
460     <td colspan="4">
461     Create a new room. Not verified.
462     </td>
463     </tr>
464     <tr>
465     <td>name</td>
466 pcg 1.3 <td>username</td>
467 pcg 1.1 <td></td>
468 pcg 1.3 <td>
469 pcg 1.4 <b></b> </td>
470 pcg 1.1 </tr>
471     <tr>
472     <td colspan="4">
473     </td>
474     </tr>
475     <tr>
476     <td>i1</td>
477 pcg 1.3 <td>U32</td>
478 pcg 1.1 <td>0</td>
479 pcg 1.3 <td>
480 pcg 1.4 <b></b> </td>
481 pcg 1.1 </tr>
482     <tr>
483     <td colspan="4">
484     </td>
485     </tr>
486     <tr>
487     <td>b1</td>
488 pcg 1.3 <td>U8</td>
489 pcg 1.1 <td>0</td>
490 pcg 1.3 <td>
491 pcg 1.4 <b></b> </td>
492 pcg 1.1 </tr>
493     <tr>
494     <td colspan="4">
495     </td>
496     </tr>
497     <tr>
498     <td>b2</td>
499 pcg 1.3 <td>U8</td>
500 pcg 1.1 <td>255</td>
501 pcg 1.3 <td>
502 pcg 1.4 <b></b> </td>
503 pcg 1.1 </tr>
504     <tr>
505     <td colspan="4">
506     </td>
507     </tr>
508     <tr>
509     <td>b3</td>
510 pcg 1.3 <td>U8</td>
511 pcg 1.1 <td>255</td>
512 pcg 1.3 <td>
513 pcg 1.4 <b></b> </td>
514 pcg 1.1 </tr>
515     <tr>
516     <td colspan="4">
517     </td>
518     </tr>
519     <tr>
520     <td>group</td>
521 pcg 1.3 <td>U8</td>
522 pcg 1.1 <td>1</td>
523 pcg 1.3 <td>
524 pcg 1.4 <b></b> </td>
525 pcg 1.1 </tr>
526     <tr>
527     <td colspan="4">
528     </td>
529     </tr>
530     <tr>
531     <td>name</td>
532     <td>STRING</td>
533     <td></td>
534 pcg 1.3 <td>
535 pcg 1.4 <b></b> </td>
536 pcg 1.1 </tr>
537     <tr>
538     <td colspan="4">
539     </td>
540     </tr>
541     <tr>
542     <td>description</td>
543     <td>STRING</td>
544     <td></td>
545 pcg 1.3 <td>
546 pcg 1.4 <b></b> </td>
547 pcg 1.1 </tr>
548     <tr>
549     <td colspan="4">
550     </td>
551     </tr>
552     <tr>
553     <td>flags</td>
554 pcg 1.3 <td>U8</td>
555 pcg 1.1 <td></td>
556 pcg 1.3 <td>
557 pcg 1.4 <b></b> </td>
558 pcg 1.1 </tr>
559     <tr>
560     <td colspan="4">
561     0x10 .. private room etc.. see code
562     </td>
563     </tr>
564     </table>
565    
566     <h4>MESSAGE join_room</h4>
567     NUMERIC TYPE (hex): 4300 SEND<table border="1">
568     <tr>
569     <th>NAME</th>
570     <th>TYPE</th>
571     <th>DEFAULT</th>
572 pcg 1.3 <th>DEC-GUARD</th>
573 pcg 1.1 </tr>
574     <tr>
575     <td colspan="4">
576     </td>
577     </tr>
578     <tr>
579     <td>channel</td>
580 pcg 1.3 <td>U16</td>
581 pcg 1.1 <td></td>
582 pcg 1.3 <td>
583 pcg 1.4 <b></b> </td>
584 pcg 1.1 </tr>
585     <tr>
586     <td colspan="4">
587     </td>
588     </tr>
589     <tr>
590     <td>user</td>
591     <td>user</td>
592     <td></td>
593 pcg 1.3 <td>
594 pcg 1.4 <b></b> </td>
595 pcg 1.1 </tr>
596     <tr>
597     <td colspan="4">
598     </td>
599     </tr>
600     </table>
601    
602     <h4>MESSAGE msg_room</h4>
603     NUMERIC TYPE (hex): 4301 SEND<table border="1">
604     <tr>
605     <th>NAME</th>
606     <th>TYPE</th>
607     <th>DEFAULT</th>
608 pcg 1.3 <th>DEC-GUARD</th>
609 pcg 1.1 </tr>
610     <tr>
611     <td colspan="4">
612     </td>
613     </tr>
614     <tr>
615     <td>channel</td>
616 pcg 1.3 <td>U16</td>
617 pcg 1.1 <td></td>
618 pcg 1.3 <td>
619 pcg 1.4 <b></b> </td>
620 pcg 1.1 </tr>
621     <tr>
622     <td colspan="4">
623     </td>
624     </tr>
625     <tr>
626     <td>name</td>
627 pcg 1.3 <td>username</td>
628 pcg 1.1 <td></td>
629 pcg 1.3 <td>
630 pcg 1.4 <b></b> </td>
631 pcg 1.1 </tr>
632     <tr>
633     <td colspan="4">
634     </td>
635     </tr>
636     <tr>
637     <td>message</td>
638     <td>STRING</td>
639     <td></td>
640 pcg 1.3 <td>
641 pcg 1.4 <b></b> </td>
642 pcg 1.1 </tr>
643     <tr>
644     <td colspan="4">
645     </td>
646     </tr>
647     </table>
648    
649     <h4>MESSAGE part_room</h4>
650     NUMERIC TYPE (hex): 4302 SEND<table border="1">
651     <tr>
652     <th>NAME</th>
653     <th>TYPE</th>
654     <th>DEFAULT</th>
655 pcg 1.3 <th>DEC-GUARD</th>
656 pcg 1.1 </tr>
657     <tr>
658     <td colspan="4">
659     </td>
660     </tr>
661     <tr>
662     <td>channel</td>
663 pcg 1.3 <td>U16</td>
664 pcg 1.1 <td></td>
665 pcg 1.3 <td>
666 pcg 1.4 <b></b> </td>
667 pcg 1.1 </tr>
668     <tr>
669     <td colspan="4">
670     </td>
671     </tr>
672     <tr>
673     <td>name</td>
674 pcg 1.3 <td>username</td>
675 pcg 1.1 <td></td>
676 pcg 1.3 <td>
677 pcg 1.4 <b></b> </td>
678 pcg 1.1 </tr>
679     <tr>
680     <td colspan="4">
681     </td>
682     </tr>
683     </table>
684    
685     <h4>MESSAGE new_game</h4>
686     NUMERIC TYPE (hex): 4305 SEND<table border="1">
687     <tr>
688     <th>NAME</th>
689     <th>TYPE</th>
690     <th>DEFAULT</th>
691 pcg 1.3 <th>DEC-GUARD</th>
692 pcg 1.1 </tr>
693     <tr>
694     <td colspan="4">
695     </td>
696     </tr>
697     <tr>
698     <td>channel</td>
699 pcg 1.3 <td>U16</td>
700 pcg 1.1 <td></td>
701 pcg 1.3 <td>
702 pcg 1.4 <b></b> </td>
703 pcg 1.1 </tr>
704     <tr>
705     <td colspan="4">
706     </td>
707     </tr>
708     <tr>
709     <td>id</td>
710 pcg 1.3 <td>U16</td>
711 pcg 1.1 <td></td>
712 pcg 1.3 <td>
713 pcg 1.4 <b></b> </td>
714 pcg 1.1 </tr>
715     <tr>
716     <td colspan="4">
717     </td>
718     </tr>
719     <tr>
720     <td>gametype</td>
721 pcg 1.3 <td>U32</td>
722 pcg 1.1 <td></td>
723 pcg 1.3 <td>
724 pcg 1.4 <b></b> </td>
725 pcg 1.1 </tr>
726     <tr>
727     <td colspan="4">
728     </td>
729     </tr>
730     <tr>
731     <td>rules</td>
732     <td>rules</td>
733     <td></td>
734 pcg 1.3 <td>
735 pcg 1.4 <b></b> </td>
736 pcg 1.1 </tr>
737     <tr>
738     <td colspan="4">
739     </td>
740     </tr>
741     <tr>
742     <td>notes</td>
743     <td>STRING</td>
744     <td></td>
745 pcg 1.3 <td>
746 pcg 1.4 <b></b> </td>
747 pcg 1.1 </tr>
748     <tr>
749     <td colspan="4">
750     </td>
751     </tr>
752     </table>
753    
754     <h4>MESSAGE req_games</h4>
755     NUMERIC TYPE (hex): 430b SEND<table border="1">
756     <tr>
757     <th>NAME</th>
758     <th>TYPE</th>
759     <th>DEFAULT</th>
760 pcg 1.3 <th>DEC-GUARD</th>
761 pcg 1.1 </tr>
762     <tr>
763     <td colspan="4">
764     request to update room game list (send once per minute)
765     </td>
766     </tr>
767     <tr>
768     <td>channel</td>
769 pcg 1.3 <td>U16</td>
770 pcg 1.1 <td></td>
771 pcg 1.3 <td>
772 pcg 1.4 <b></b> </td>
773 pcg 1.1 </tr>
774     <tr>
775     <td colspan="4">
776     </td>
777     </tr>
778     </table>
779    
780     <h4>MESSAGE req_desc</h4>
781     NUMERIC TYPE (hex): 4319 SEND<table border="1">
782     <tr>
783     <th>NAME</th>
784     <th>TYPE</th>
785     <th>DEFAULT</th>
786 pcg 1.3 <th>DEC-GUARD</th>
787 pcg 1.1 </tr>
788     <tr>
789     <td colspan="4">
790     Request room description.
791     </td>
792     </tr>
793     <tr>
794     <td>channel</td>
795 pcg 1.3 <td>U16</td>
796 pcg 1.1 <td></td>
797 pcg 1.3 <td>
798 pcg 1.4 <b></b> </td>
799 pcg 1.1 </tr>
800     <tr>
801     <td colspan="4">
802     </td>
803     </tr>
804     </table>
805    
806     <h4>MESSAGE send_chal</h4>
807     NUMERIC TYPE (hex): 4400 SEND<table border="1">
808     <tr>
809     <th>NAME</th>
810     <th>TYPE</th>
811     <th>DEFAULT</th>
812 pcg 1.3 <th>DEC-GUARD</th>
813 pcg 1.1 </tr>
814     <tr>
815     <td colspan="4">
816     No idea.
817     </td>
818     </tr>
819     <tr>
820     <td>channel</td>
821 pcg 1.3 <td>U16</td>
822 pcg 1.1 <td></td>
823 pcg 1.3 <td>
824 pcg 1.4 <b></b> </td>
825 pcg 1.1 </tr>
826     <tr>
827     <td colspan="4">
828     </td>
829     </tr>
830     <tr>
831     <td>black</td>
832 pcg 1.3 <td>username</td>
833 pcg 1.1 <td></td>
834 pcg 1.3 <td>
835 pcg 1.4 <b></b> </td>
836 pcg 1.1 </tr>
837     <tr>
838     <td colspan="4">
839     </td>
840     </tr>
841     <tr>
842     <td>white</td>
843 pcg 1.3 <td>username</td>
844 pcg 1.1 <td></td>
845 pcg 1.3 <td>
846 pcg 1.4 <b></b> </td>
847 pcg 1.1 </tr>
848     <tr>
849     <td colspan="4">
850     More following... TREE or challenge.
851     </td>
852     </tr>
853     </table>
854    
855     <h4>MESSAGE join_game</h4>
856     NUMERIC TYPE (hex): 4403 SEND<table border="1">
857     <tr>
858     <th>NAME</th>
859     <th>TYPE</th>
860     <th>DEFAULT</th>
861 pcg 1.3 <th>DEC-GUARD</th>
862 pcg 1.1 </tr>
863     <tr>
864     <td colspan="4">
865     </td>
866     </tr>
867     <tr>
868 pcg 1.5 <td>channel</td>
869     <td>U16</td>
870 pcg 1.1 <td></td>
871 pcg 1.3 <td>
872 pcg 1.4 <b></b> </td>
873 pcg 1.1 </tr>
874     <tr>
875     <td colspan="4">
876     </td>
877     </tr>
878     <tr>
879 pcg 1.5 <td>user</td>
880     <td>user</td>
881 pcg 1.1 <td></td>
882 pcg 1.3 <td>
883 pcg 1.4 <b></b> </td>
884 pcg 1.1 </tr>
885     <tr>
886     <td colspan="4">
887     </td>
888     </tr>
889     </table>
890    
891     <h4>MESSAGE part_game</h4>
892     NUMERIC TYPE (hex): 4404 SEND<table border="1">
893     <tr>
894     <th>NAME</th>
895     <th>TYPE</th>
896     <th>DEFAULT</th>
897 pcg 1.3 <th>DEC-GUARD</th>
898 pcg 1.1 </tr>
899     <tr>
900     <td colspan="4">
901     </td>
902     </tr>
903     <tr>
904     <td>channel</td>
905 pcg 1.3 <td>U16</td>
906 pcg 1.1 <td></td>
907 pcg 1.3 <td>
908 pcg 1.4 <b></b> </td>
909 pcg 1.1 </tr>
910     <tr>
911     <td colspan="4">
912     </td>
913     </tr>
914     <tr>
915     <td>name</td>
916 pcg 1.3 <td>username</td>
917 pcg 1.1 <td></td>
918 pcg 1.3 <td>
919 pcg 1.4 <b></b> </td>
920 pcg 1.1 </tr>
921     <tr>
922     <td colspan="4">
923     </td>
924     </tr>
925     </table>
926    
927     <h4>MESSAGE set_tree</h4>
928     NUMERIC TYPE (hex): 4405 SEND<table border="1">
929     <tr>
930     <th>NAME</th>
931     <th>TYPE</th>
932     <th>DEFAULT</th>
933 pcg 1.3 <th>DEC-GUARD</th>
934 pcg 1.1 </tr>
935     <tr>
936     <td colspan="4">
937     </td>
938     </tr>
939     <tr>
940     <td>channel</td>
941 pcg 1.3 <td>U16</td>
942 pcg 1.1 <td></td>
943 pcg 1.3 <td>
944 pcg 1.4 <b></b> </td>
945 pcg 1.1 </tr>
946     <tr>
947     <td colspan="4">
948     </td>
949     </tr>
950     <tr>
951     <td>tree</td>
952     <td>TREE</td>
953     <td></td>
954 pcg 1.3 <td>
955 pcg 1.4 <b></b> </td>
956 pcg 1.1 </tr>
957     <tr>
958     <td colspan="4">
959     </td>
960     </tr>
961     </table>
962    
963     <h4>MESSAGE get_tree</h4>
964     NUMERIC TYPE (hex): 4408 SEND<table border="1">
965     <tr>
966     <th>NAME</th>
967     <th>TYPE</th>
968     <th>DEFAULT</th>
969 pcg 1.3 <th>DEC-GUARD</th>
970 pcg 1.1 </tr>
971     <tr>
972     <td colspan="4">
973     </td>
974     </tr>
975     <tr>
976     <td>channel</td>
977 pcg 1.3 <td>U16</td>
978 pcg 1.1 <td></td>
979 pcg 1.3 <td>
980 pcg 1.4 <b></b> </td>
981 pcg 1.1 </tr>
982     <tr>
983     <td colspan="4">
984     </td>
985     </tr>
986     <tr>
987     <td>node</td>
988 pcg 1.3 <td>U32</td>
989 pcg 1.1 <td></td>
990 pcg 1.3 <td>
991 pcg 1.4 <b></b> </td>
992 pcg 1.1 </tr>
993     <tr>
994     <td colspan="4">
995     </td>
996     </tr>
997     </table>
998    
999     <h4>MESSAGE claim_win</h4>
1000     NUMERIC TYPE (hex): 440c SEND<table border="1">
1001     <tr>
1002     <th>NAME</th>
1003     <th>TYPE</th>
1004     <th>DEFAULT</th>
1005 pcg 1.3 <th>DEC-GUARD</th>
1006 pcg 1.1 </tr>
1007     <tr>
1008     <td colspan="4">
1009     </td>
1010     </tr>
1011     <tr>
1012     <td>channel</td>
1013 pcg 1.3 <td>U16</td>
1014 pcg 1.1 <td></td>
1015 pcg 1.3 <td>
1016 pcg 1.4 <b></b> </td>
1017 pcg 1.1 </tr>
1018     <tr>
1019     <td colspan="4">
1020     </td>
1021     </tr>
1022     <tr>
1023     <td>_byte</td>
1024 pcg 1.3 <td>U8 </td>
1025 pcg 1.1 <td></td>
1026 pcg 1.3 <td>
1027 pcg 1.4 <b></b> </td>
1028 pcg 1.1 </tr>
1029     <tr>
1030     <td colspan="4">
1031     Player colour maybe? Unclear.
1032     </td>
1033     </tr>
1034     </table>
1035    
1036     <h4>MESSAGE add_time</h4>
1037     NUMERIC TYPE (hex): 440d SEND<table border="1">
1038     <tr>
1039     <th>NAME</th>
1040     <th>TYPE</th>
1041     <th>DEFAULT</th>
1042 pcg 1.3 <th>DEC-GUARD</th>
1043 pcg 1.1 </tr>
1044     <tr>
1045     <td colspan="4">
1046     </td>
1047     </tr>
1048     <tr>
1049     <td>channel</td>
1050 pcg 1.3 <td>U16</td>
1051 pcg 1.1 <td></td>
1052 pcg 1.3 <td>
1053 pcg 1.4 <b></b> </td>
1054 pcg 1.1 </tr>
1055     <tr>
1056     <td colspan="4">
1057     </td>
1058     </tr>
1059     <tr>
1060     <td>time</td>
1061 pcg 1.3 <td>U32</td>
1062 pcg 1.1 <td></td>
1063 pcg 1.3 <td>
1064 pcg 1.4 <b></b> </td>
1065 pcg 1.1 </tr>
1066     <tr>
1067     <td colspan="4">
1068     </td>
1069     </tr>
1070     <tr>
1071     <td>player</td>
1072 pcg 1.3 <td>U8</td>
1073 pcg 1.1 <td></td>
1074 pcg 1.3 <td>
1075 pcg 1.4 <b></b> </td>
1076 pcg 1.1 </tr>
1077     <tr>
1078     <td colspan="4">
1079     </td>
1080     </tr>
1081     </table>
1082    
1083     <h4>MESSAGE grant_undo</h4>
1084     NUMERIC TYPE (hex): 440f SEND<table border="1">
1085     <tr>
1086     <th>NAME</th>
1087     <th>TYPE</th>
1088     <th>DEFAULT</th>
1089 pcg 1.3 <th>DEC-GUARD</th>
1090 pcg 1.1 </tr>
1091     <tr>
1092     <td colspan="4">
1093     </td>
1094     </tr>
1095     <tr>
1096     <td>channel</td>
1097 pcg 1.3 <td>U16</td>
1098 pcg 1.1 <td></td>
1099 pcg 1.3 <td>
1100 pcg 1.4 <b></b> </td>
1101 pcg 1.1 </tr>
1102     <tr>
1103     <td colspan="4">
1104     </td>
1105     </tr>
1106     </table>
1107    
1108     <h4>MESSAGE resign_game</h4>
1109     NUMERIC TYPE (hex): 4410 SEND<table border="1">
1110     <tr>
1111     <th>NAME</th>
1112     <th>TYPE</th>
1113     <th>DEFAULT</th>
1114 pcg 1.3 <th>DEC-GUARD</th>
1115 pcg 1.1 </tr>
1116     <tr>
1117     <td colspan="4">
1118     </td>
1119     </tr>
1120     <tr>
1121     <td>channel</td>
1122 pcg 1.3 <td>U16</td>
1123 pcg 1.1 <td></td>
1124 pcg 1.3 <td>
1125 pcg 1.4 <b></b> </td>
1126 pcg 1.1 </tr>
1127     <tr>
1128     <td colspan="4">
1129     </td>
1130     </tr>
1131     <tr>
1132     <td>player</td>
1133 pcg 1.3 <td>U8</td>
1134 pcg 1.1 <td></td>
1135 pcg 1.3 <td>
1136 pcg 1.4 <b></b> </td>
1137 pcg 1.1 </tr>
1138     <tr>
1139     <td colspan="4">
1140     </td>
1141     </tr>
1142     </table>
1143    
1144     <h4>MESSAGE set_teacher</h4>
1145     NUMERIC TYPE (hex): 441a SEND<table border="1">
1146     <tr>
1147     <th>NAME</th>
1148     <th>TYPE</th>
1149     <th>DEFAULT</th>
1150 pcg 1.3 <th>DEC-GUARD</th>
1151 pcg 1.1 </tr>
1152     <tr>
1153     <td colspan="4">
1154     </td>
1155     </tr>
1156     <tr>
1157     <td>channel</td>
1158 pcg 1.3 <td>U16</td>
1159 pcg 1.1 <td></td>
1160 pcg 1.3 <td>
1161 pcg 1.4 <b></b> </td>
1162 pcg 1.1 </tr>
1163     <tr>
1164     <td colspan="4">
1165     </td>
1166     </tr>
1167     <tr>
1168     <td>name</td>
1169 pcg 1.3 <td>username</td>
1170 pcg 1.1 <td></td>
1171 pcg 1.3 <td>
1172 pcg 1.4 <b></b> </td>
1173 pcg 1.1 </tr>
1174     <tr>
1175     <td colspan="4">
1176     </td>
1177     </tr>
1178     </table>
1179    
1180     <h4>MESSAGE add_user</h4>
1181     NUMERIC TYPE (hex): 4422 SEND<table border="1">
1182     <tr>
1183     <th>NAME</th>
1184     <th>TYPE</th>
1185     <th>DEFAULT</th>
1186 pcg 1.3 <th>DEC-GUARD</th>
1187 pcg 1.1 </tr>
1188     <tr>
1189     <td colspan="4">
1190     </td>
1191     </tr>
1192     <tr>
1193     <td>channel</td>
1194 pcg 1.3 <td>U16</td>
1195 pcg 1.1 <td></td>
1196 pcg 1.3 <td>
1197 pcg 1.4 <b></b> </td>
1198 pcg 1.1 </tr>
1199     <tr>
1200     <td colspan="4">
1201     </td>
1202     </tr>
1203     <tr>
1204     <td>othername</td>
1205 pcg 1.3 <td>username</td>
1206 pcg 1.1 <td></td>
1207 pcg 1.3 <td>
1208 pcg 1.4 <b></b> </td>
1209 pcg 1.1 </tr>
1210     <tr>
1211     <td colspan="4">
1212     </td>
1213     </tr>
1214     <tr>
1215     <td>name</td>
1216 pcg 1.3 <td>username</td>
1217 pcg 1.1 <td></td>
1218 pcg 1.3 <td>
1219 pcg 1.4 <b></b> </td>
1220 pcg 1.1 </tr>
1221     <tr>
1222     <td colspan="4">; # gives user access to the game (to what? ;)
1223     </td>
1224     </tr>
1225     </table>
1226    
1227     <h4>MESSAGE set_privacy</h4>
1228     NUMERIC TYPE (hex): 4423 SEND<table border="1">
1229     <tr>
1230     <th>NAME</th>
1231     <th>TYPE</th>
1232     <th>DEFAULT</th>
1233 pcg 1.3 <th>DEC-GUARD</th>
1234 pcg 1.1 </tr>
1235     <tr>
1236     <td colspan="4">
1237     </td>
1238     </tr>
1239     <tr>
1240     <td>channel</td>
1241 pcg 1.3 <td>U16</td>
1242 pcg 1.1 <td></td>
1243 pcg 1.3 <td>
1244 pcg 1.4 <b></b> </td>
1245 pcg 1.1 </tr>
1246     <tr>
1247     <td colspan="4">
1248     </td>
1249     </tr>
1250     <tr>
1251     <td>private</td>
1252 pcg 1.3 <td>U8</td>
1253 pcg 1.1 <td></td>
1254 pcg 1.3 <td>
1255 pcg 1.4 <b></b> </td>
1256 pcg 1.1 </tr>
1257     <tr>
1258     <td colspan="4">
1259     </td>
1260     </tr>
1261     </table>
1262    
1263     <h4>MESSAGE reject_chal</h4>
1264     NUMERIC TYPE (hex): 4429 SEND<table border="1">
1265     <tr>
1266     <th>NAME</th>
1267     <th>TYPE</th>
1268     <th>DEFAULT</th>
1269 pcg 1.3 <th>DEC-GUARD</th>
1270 pcg 1.1 </tr>
1271     <tr>
1272     <td colspan="4">
1273     </td>
1274     </tr>
1275     <tr>
1276     <td>channel</td>
1277 pcg 1.3 <td>U16</td>
1278 pcg 1.1 <td></td>
1279 pcg 1.3 <td>
1280 pcg 1.4 <b></b> </td>
1281 pcg 1.1 </tr>
1282     <tr>
1283     <td colspan="4">
1284     </td>
1285     </tr>
1286     <tr>
1287     <td>name</td>
1288 pcg 1.3 <td>username</td>
1289 pcg 1.1 <td></td>
1290 pcg 1.3 <td>
1291 pcg 1.4 <b></b> </td>
1292 pcg 1.1 </tr>
1293     <tr>
1294     <td colspan="4">
1295     </td>
1296     </tr>
1297     </table>
1298    
1299     <h4>MESSAGE req_result</h4>
1300     NUMERIC TYPE (hex): 4433 SEND<table border="1">
1301     <tr>
1302     <th>NAME</th>
1303     <th>TYPE</th>
1304     <th>DEFAULT</th>
1305 pcg 1.3 <th>DEC-GUARD</th>
1306 pcg 1.1 </tr>
1307     <tr>
1308     <td colspan="4">
1309     </td>
1310     </tr>
1311     <tr>
1312     <td>channel</td>
1313 pcg 1.3 <td>U16</td>
1314 pcg 1.1 <td></td>
1315 pcg 1.3 <td>
1316 pcg 1.4 <b></b> </td>
1317 pcg 1.1 </tr>
1318     <tr>
1319     <td colspan="4">
1320     </td>
1321     </tr>
1322     </table>
1323    
1324 pcg 1.3 <h2>Structs mainly used in receive messages</h2>
1325 pcg 1.1
1326 pcg 1.3 <h4>STRUCTURE challenge_defaults</h4>
1327 pcg 1.1 <table border="1">
1328     <tr>
1329     <th>NAME</th>
1330     <th>TYPE</th>
1331     <th>DEFAULT</th>
1332 pcg 1.3 <th>DEC-GUARD</th>
1333 pcg 1.1 </tr>
1334     <tr>
1335     <td colspan="4">
1336     </td>
1337     </tr>
1338     <tr>
1339     <td>gametype</td>
1340 pcg 1.3 <td>U32</td>
1341 pcg 1.1 <td></td>
1342 pcg 1.3 <td>
1343 pcg 1.4 <b></b> </td>
1344 pcg 1.1 </tr>
1345     <tr>
1346     <td colspan="4">
1347     </td>
1348     </tr>
1349     <tr>
1350     <td>size</td>
1351 pcg 1.3 <td>U32</td>
1352 pcg 1.1 <td></td>
1353 pcg 1.3 <td>
1354 pcg 1.4 <b></b> </td>
1355 pcg 1.1 </tr>
1356     <tr>
1357     <td colspan="4">
1358     </td>
1359     </tr>
1360     <tr>
1361     <td>timesys</td>
1362 pcg 1.3 <td>U32</td>
1363 pcg 1.1 <td></td>
1364 pcg 1.3 <td>
1365 pcg 1.4 <b></b> </td>
1366 pcg 1.1 </tr>
1367     <tr>
1368     <td colspan="4">
1369     </td>
1370     </tr>
1371     <tr>
1372     <td>time</td>
1373 pcg 1.3 <td>U32</td>
1374 pcg 1.1 <td></td>
1375 pcg 1.3 <td>
1376 pcg 1.4 <b></b> </td>
1377 pcg 1.1 </tr>
1378     <tr>
1379     <td colspan="4">
1380     </td>
1381     </tr>
1382     <tr>
1383     <td>byo_time</td>
1384 pcg 1.3 <td>U32</td>
1385 pcg 1.1 <td></td>
1386 pcg 1.3 <td>
1387 pcg 1.4 <b></b> </td>
1388 pcg 1.1 </tr>
1389     <tr>
1390     <td colspan="4">
1391     </td>
1392     </tr>
1393     <tr>
1394     <td>byo_periods</td>
1395 pcg 1.3 <td>U32</td>
1396 pcg 1.1 <td></td>
1397 pcg 1.3 <td>
1398 pcg 1.4 <b></b> </td>
1399 pcg 1.1 </tr>
1400     <tr>
1401     <td colspan="4">
1402     </td>
1403     </tr>
1404     <tr>
1405     <td>can_time</td>
1406 pcg 1.3 <td>U32</td>
1407 pcg 1.1 <td></td>
1408 pcg 1.3 <td>
1409 pcg 1.4 <b></b> </td>
1410 pcg 1.1 </tr>
1411     <tr>
1412     <td colspan="4">
1413     </td>
1414     </tr>
1415     <tr>
1416     <td>can_stones</td>
1417 pcg 1.3 <td>U32</td>
1418 pcg 1.1 <td></td>
1419 pcg 1.3 <td>
1420 pcg 1.4 <b></b> </td>
1421 pcg 1.1 </tr>
1422     <tr>
1423 pcg 1.3 <td colspan="4">
1424 pcg 1.1 </td>
1425     </tr>
1426     </table>
1427    
1428 pcg 1.3 <h4>STRUCTURE rules</h4>
1429     CLASS: KGS::Rules<br />
1430 pcg 1.1 <table border="1">
1431     <tr>
1432     <th>NAME</th>
1433     <th>TYPE</th>
1434     <th>DEFAULT</th>
1435 pcg 1.3 <th>DEC-GUARD</th>
1436 pcg 1.1 </tr>
1437     <tr>
1438     <td colspan="4">
1439     </td>
1440     </tr>
1441     <tr>
1442     <td>ruleset</td>
1443 pcg 1.3 <td>U8</td>
1444 pcg 1.1 <td></td>
1445 pcg 1.3 <td>
1446 pcg 1.4 <b></b> </td>
1447 pcg 1.1 </tr>
1448     <tr>
1449     <td colspan="4">
1450     </td>
1451     </tr>
1452     <tr>
1453     <td>size</td>
1454 pcg 1.3 <td>U8</td>
1455 pcg 1.1 <td></td>
1456 pcg 1.3 <td>
1457 pcg 1.4 <b></b> </td>
1458 pcg 1.1 </tr>
1459     <tr>
1460     <td colspan="4">
1461     </td>
1462     </tr>
1463     <tr>
1464     <td>handicap</td>
1465 pcg 1.3 <td>U8</td>
1466 pcg 1.1 <td></td>
1467 pcg 1.3 <td>
1468 pcg 1.4 <b></b> </td>
1469 pcg 1.1 </tr>
1470     <tr>
1471     <td colspan="4">
1472     </td>
1473     </tr>
1474     <tr>
1475     <td>komi</td>
1476 pcg 1.3 <td>komi</td>
1477 pcg 1.1 <td></td>
1478 pcg 1.3 <td>
1479 pcg 1.4 <b></b> </td>
1480 pcg 1.1 </tr>
1481     <tr>
1482     <td colspan="4">
1483     </td>
1484     </tr>
1485     <tr>
1486     <td>timesys</td>
1487 pcg 1.3 <td>U8</td>
1488 pcg 1.1 <td></td>
1489 pcg 1.3 <td>
1490 pcg 1.4 <b></b> </td>
1491 pcg 1.1 </tr>
1492     <tr>
1493     <td colspan="4">
1494     </td>
1495     </tr>
1496     <tr>
1497     <td>time</td>
1498 pcg 1.3 <td>U32</td>
1499 pcg 1.1 <td></td>
1500 pcg 1.3 <td>
1501 pcg 1.4 <b></b> </td>
1502 pcg 1.1 </tr>
1503     <tr>
1504     <td colspan="4">
1505     </td>
1506     </tr>
1507     <tr>
1508     <td>interval</td>
1509 pcg 1.3 <td>U32</td>
1510 pcg 1.1 <td></td>
1511 pcg 1.3 <td>
1512 pcg 1.4 <b></b> </td>
1513 pcg 1.1 </tr>
1514     <tr>
1515     <td colspan="4">
1516     byo-yomi time / canadian time
1517     </td>
1518     </tr>
1519     <tr>
1520     <td>count</td>
1521 pcg 1.3 <td>U16</td>
1522 pcg 1.1 <td></td>
1523 pcg 1.3 <td>
1524 pcg 1.4 <b></b> </td>
1525 pcg 1.1 </tr>
1526     <tr>
1527     <td colspan="4">
1528     periods / moves
1529     </td>
1530     </tr>
1531     </table>
1532    
1533 pcg 1.3 <h4>STRUCTURE challenge</h4>
1534     CLASS: KGS::Challenge<br />
1535 pcg 1.1 <table border="1">
1536     <tr>
1537     <th>NAME</th>
1538     <th>TYPE</th>
1539     <th>DEFAULT</th>
1540 pcg 1.3 <th>DEC-GUARD</th>
1541 pcg 1.1 </tr>
1542     <tr>
1543     <td colspan="4">
1544     </td>
1545     </tr>
1546     <tr>
1547     <td>user1</td>
1548     <td>user</td>
1549     <td></td>
1550 pcg 1.3 <td>
1551 pcg 1.4 <b></b> </td>
1552 pcg 1.1 </tr>
1553     <tr>
1554     <td colspan="4">
1555     </td>
1556     </tr>
1557     <tr>
1558     <td>user2</td>
1559     <td>user</td>
1560     <td></td>
1561 pcg 1.3 <td>
1562 pcg 1.4 <b></b> </td>
1563 pcg 1.1 </tr>
1564     <tr>
1565     <td colspan="4">
1566     </td>
1567     </tr>
1568     <tr>
1569     <td>gametype</td>
1570 pcg 1.3 <td>U32</td>
1571 pcg 1.1 <td></td>
1572 pcg 1.3 <td>
1573 pcg 1.4 <b></b> </td>
1574 pcg 1.1 </tr>
1575     <tr>
1576     <td colspan="4">
1577     </td>
1578     </tr>
1579     <tr>
1580     <td>rules</td>
1581     <td>rules</td>
1582     <td></td>
1583 pcg 1.3 <td>
1584 pcg 1.4 <b></b> </td>
1585 pcg 1.1 </tr>
1586     <tr>
1587     <td colspan="4">
1588     Maybe the rules" are in TREE format. I forgot.
1589     </td>
1590     </tr>
1591     </table>
1592    
1593 pcg 1.3 <h4>STRUCTURE game</h4>
1594     CLASS: KGS::Game<br />
1595 pcg 1.1 <table border="1">
1596     <tr>
1597     <th>NAME</th>
1598     <th>TYPE</th>
1599     <th>DEFAULT</th>
1600 pcg 1.3 <th>DEC-GUARD</th>
1601 pcg 1.1 </tr>
1602     <tr>
1603     <td colspan="4">
1604     </td>
1605     </tr>
1606     <tr>
1607     <td>channel</td>
1608 pcg 1.3 <td>U16</td>
1609 pcg 1.1 <td></td>
1610 pcg 1.3 <td>
1611 pcg 1.4 <b></b> </td>
1612 pcg 1.1 </tr>
1613     <tr>
1614     <td colspan="4">
1615     </td>
1616     </tr>
1617     <tr>
1618 pcg 1.3 <td>type</td>
1619     <td>U32</td>
1620 pcg 1.1 <td></td>
1621 pcg 1.3 <td>
1622 pcg 1.4 <b></b> </td>
1623 pcg 1.1 </tr>
1624     <tr>
1625     <td colspan="4">
1626     </td>
1627     </tr>
1628     <tr>
1629     <td>user1</td>
1630     <td>user</td>
1631     <td></td>
1632 pcg 1.3 <td>
1633 pcg 1.4 <b></b> </td>
1634 pcg 1.1 </tr>
1635     <tr>
1636     <td colspan="4">
1637     White
1638     </td>
1639     </tr>
1640     <tr>
1641     <td>user2</td>
1642     <td>user</td>
1643     <td></td>
1644 pcg 1.3 <td>
1645 pcg 1.4 <b></b> </td>
1646 pcg 1.1 </tr>
1647     <tr>
1648     <td colspan="4">
1649     Black
1650     </td>
1651     </tr>
1652     <tr>
1653     <td>user3</td>
1654     <td>user</td>
1655     <td></td>
1656 pcg 1.3 <td>
1657 pcg 1.4 <b></b> </td>
1658 pcg 1.1 </tr>
1659     <tr>
1660     <td colspan="4">
1661     Owner
1662     </td>
1663     </tr>
1664     <tr>
1665     <td>size</td>
1666 pcg 1.3 <td>U32</td>
1667 pcg 1.1 <td></td>
1668 pcg 1.3 <td>
1669 pcg 1.4 <b></b> </td>
1670 pcg 1.1 </tr>
1671     <tr>
1672     <td colspan="4">
1673     </td>
1674     </tr>
1675     <tr>
1676     <td>handicap</td>
1677     <td>I32</td>
1678     <td></td>
1679 pcg 1.3 <td>
1680 pcg 1.4 <b></b> </td>
1681 pcg 1.1 </tr>
1682     <tr>
1683     <td colspan="4">
1684     &lt; 0 not fully setup
1685     </td>
1686     </tr>
1687     <tr>
1688     <td>komi</td>
1689 pcg 1.3 <td>komi</td>
1690 pcg 1.1 <td></td>
1691 pcg 1.3 <td>
1692 pcg 1.4 <b></b> </td>
1693 pcg 1.1 </tr>
1694     <tr>
1695     <td colspan="4">
1696     </td>
1697     </tr>
1698     <tr>
1699     <td>moves</td>
1700 pcg 1.3 <td>U16</td>
1701 pcg 1.1 <td></td>
1702 pcg 1.3 <td>
1703 pcg 1.4 <b></b> </td>
1704 pcg 1.1 </tr>
1705     <tr>
1706     <td colspan="4">
1707     </td>
1708     </tr>
1709     <tr>
1710     <td>flags</td>
1711 pcg 1.3 <td>U16</td>
1712 pcg 1.1 <td></td>
1713 pcg 1.3 <td>
1714 pcg 1.4 <b></b> </td>
1715 pcg 1.1 </tr>
1716     <tr>
1717     <td colspan="4">
1718     </td>
1719     </tr>
1720     <tr>
1721     <td>observers</td>
1722 pcg 1.3 <td>U32</td>
1723 pcg 1.1 <td></td>
1724 pcg 1.3 <td>
1725 pcg 1.4 <b></b> </td>
1726 pcg 1.1 </tr>
1727     <tr>
1728     <td colspan="4">
1729     </td>
1730     </tr>
1731     <tr>
1732     <td>saved</td>
1733 pcg 1.3 <td>flag</td>
1734 pcg 1.1 <td></td>
1735 pcg 1.3 <td>
1736 pcg 1.4 <b></b> </td>
1737 pcg 1.1 </tr>
1738     <tr>
1739     <td colspan="4">
1740     </td>
1741     </tr>
1742     <tr>
1743     <td>notes</td>
1744     <td>STRING</td>
1745     <td></td>
1746 pcg 1.3 <td>
1747 pcg 1.4 <b>handicap</b> &lt; 0</td>
1748 pcg 1.1 </tr>
1749     <tr>
1750     <td colspan="4">
1751     </td>
1752     </tr>
1753     </table>
1754    
1755 pcg 1.3 <h4>STRUCTURE room_obs</h4>
1756 pcg 1.1 <table border="1">
1757     <tr>
1758     <th>NAME</th>
1759     <th>TYPE</th>
1760     <th>DEFAULT</th>
1761 pcg 1.3 <th>DEC-GUARD</th>
1762 pcg 1.1 </tr>
1763     <tr>
1764     <td colspan="4">
1765     </td>
1766     </tr>
1767     <tr>
1768     <td>name</td>
1769 pcg 1.3 <td>roomname</td>
1770 pcg 1.1 <td></td>
1771 pcg 1.3 <td>
1772 pcg 1.4 <b></b> </td>
1773 pcg 1.1 </tr>
1774     <tr>
1775     <td colspan="4">
1776     </td>
1777     </tr>
1778     <tr>
1779     <td>channel</td>
1780 pcg 1.3 <td>U16</td>
1781 pcg 1.1 <td></td>
1782 pcg 1.3 <td>
1783 pcg 1.4 <b></b> </td>
1784 pcg 1.1 </tr>
1785     <tr>
1786     <td colspan="4">
1787     </td>
1788     </tr>
1789     <tr>
1790     <td>flags</td>
1791 pcg 1.3 <td>U32</td>
1792 pcg 1.1 <td></td>
1793 pcg 1.3 <td>
1794 pcg 1.4 <b></b> </td>
1795 pcg 1.1 </tr>
1796     <tr>
1797     <td colspan="4">
1798     </td>
1799     </tr>
1800     <tr>
1801     <td>users</td>
1802 pcg 1.3 <td>U32</td>
1803 pcg 1.1 <td></td>
1804 pcg 1.3 <td>
1805 pcg 1.4 <b></b> </td>
1806 pcg 1.1 </tr>
1807     <tr>
1808 pcg 1.4 <td colspan="4">
1809 pcg 1.1 </td>
1810     </tr>
1811     </table>
1812    
1813 pcg 1.3 <h4>STRUCTURE room</h4>
1814     CLASS: KGS::Room<br />
1815 pcg 1.1 <table border="1">
1816     <tr>
1817     <th>NAME</th>
1818     <th>TYPE</th>
1819     <th>DEFAULT</th>
1820 pcg 1.3 <th>DEC-GUARD</th>
1821 pcg 1.1 </tr>
1822     <tr>
1823     <td colspan="4">
1824     </td>
1825     </tr>
1826     <tr>
1827     <td>channel</td>
1828 pcg 1.3 <td>U16</td>
1829 pcg 1.1 <td></td>
1830 pcg 1.3 <td>
1831 pcg 1.4 <b></b> </td>
1832 pcg 1.1 </tr>
1833     <tr>
1834     <td colspan="4">
1835     </td>
1836     </tr>
1837     <tr>
1838     <td>flags</td>
1839 pcg 1.3 <td>U8</td>
1840 pcg 1.1 <td></td>
1841 pcg 1.3 <td>
1842 pcg 1.4 <b></b> </td>
1843 pcg 1.1 </tr>
1844     <tr>
1845     <td colspan="4">
1846     </td>
1847     </tr>
1848     <tr>
1849     <td>group</td>
1850 pcg 1.3 <td>U8</td>
1851 pcg 1.1 <td></td>
1852 pcg 1.3 <td>
1853 pcg 1.4 <b></b> </td>
1854 pcg 1.1 </tr>
1855     <tr>
1856     <td colspan="4">
1857     </td>
1858     </tr>
1859     <tr>
1860     <td>users</td>
1861 pcg 1.3 <td>U16</td>
1862 pcg 1.1 <td></td>
1863 pcg 1.3 <td>
1864 pcg 1.4 <b></b> </td>
1865 pcg 1.1 </tr>
1866     <tr>
1867     <td colspan="4">
1868     </td>
1869     </tr>
1870     <tr>
1871     <td>games</td>
1872 pcg 1.3 <td>U16</td>
1873 pcg 1.1 <td></td>
1874 pcg 1.3 <td>
1875 pcg 1.4 <b></b> </td>
1876 pcg 1.1 </tr>
1877     <tr>
1878     <td colspan="4">
1879     </td>
1880     </tr>
1881     <tr>
1882     <td>name</td>
1883     <td>STRING</td>
1884     <td></td>
1885 pcg 1.3 <td>
1886 pcg 1.4 <b></b> </td>
1887 pcg 1.1 </tr>
1888     <tr>
1889 pcg 1.4 <td colspan="4">
1890 pcg 1.1 </td>
1891     </tr>
1892     </table>
1893    
1894 pcg 1.3 <h4>STRUCTURE score</h4>
1895     CLASS: KGS::Score<br />
1896 pcg 1.1 <table border="1">
1897     <tr>
1898     <th>NAME</th>
1899     <th>TYPE</th>
1900     <th>DEFAULT</th>
1901 pcg 1.3 <th>DEC-GUARD</th>
1902 pcg 1.1 </tr>
1903     <tr>
1904     <td colspan="4">
1905     </td>
1906     </tr>
1907     <tr>
1908     <td>score</td>
1909 pcg 1.3 <td>score</td>
1910 pcg 1.1 <td></td>
1911 pcg 1.3 <td>
1912 pcg 1.4 <b></b> </td>
1913 pcg 1.1 </tr>
1914     <tr>
1915     <td colspan="4">
1916     </td>
1917     </tr>
1918     <tr>
1919     <td>territory</td>
1920 pcg 1.3 <td>U32</td>
1921 pcg 1.1 <td></td>
1922 pcg 1.3 <td>
1923 pcg 1.4 <b></b> </td>
1924 pcg 1.1 </tr>
1925     <tr>
1926     <td colspan="4">
1927     </td>
1928     </tr>
1929     <tr>
1930     <td>captures</td>
1931 pcg 1.3 <td>U32</td>
1932 pcg 1.1 <td></td>
1933 pcg 1.3 <td>
1934 pcg 1.4 <b></b> </td>
1935 pcg 1.1 </tr>
1936     <tr>
1937     <td colspan="4">
1938     </td>
1939     </tr>
1940     <tr>
1941     <td>i3</td>
1942 pcg 1.3 <td>U32</td>
1943 pcg 1.1 <td></td>
1944 pcg 1.3 <td>
1945 pcg 1.4 <b></b> </td>
1946 pcg 1.1 </tr>
1947     <tr>
1948     <td colspan="4">
1949     </td>
1950     </tr>
1951     <tr>
1952     <td>f2</td>
1953 pcg 1.3 <td>U32</td>
1954 pcg 1.1 <td></td>
1955 pcg 1.3 <td>
1956 pcg 1.4 <b></b> </td>
1957 pcg 1.1 </tr>
1958     <tr>
1959     <td colspan="4">
1960     </td>
1961     </tr>
1962     <tr>
1963     <td>komi</td>
1964 pcg 1.3 <td>komi</td>
1965 pcg 1.1 <td></td>
1966 pcg 1.3 <td>
1967 pcg 1.4 <b></b> </td>
1968 pcg 1.1 </tr>
1969     <tr>
1970     <td colspan="4">
1971     </td>
1972     </tr>
1973     <tr>
1974     <td>i4</td>
1975 pcg 1.3 <td>U32</td>
1976 pcg 1.1 <td></td>
1977 pcg 1.3 <td>
1978 pcg 1.4 <b></b> </td>
1979 pcg 1.1 </tr>
1980     <tr>
1981 pcg 1.4 <td colspan="4">
1982 pcg 1.3 Apparently the i3, f2, i4 are zero.
1983 pcg 1.1 </td>
1984     </tr>
1985     </table>
1986    
1987     <h2>Receive messages</h2>
1988    
1989     <h4>MESSAGE login</h4>
1990     NUMERIC TYPE (hex): 0001 RECV<table border="1">
1991     <tr>
1992     <th>NAME</th>
1993     <th>TYPE</th>
1994     <th>DEFAULT</th>
1995 pcg 1.3 <th>DEC-GUARD</th>
1996 pcg 1.1 </tr>
1997     <tr>
1998     <td colspan="4">
1999     </td>
2000     </tr>
2001     <tr>
2002     <td>result</td>
2003     <td>CONSTANT</td>
2004 pcg 1.3 <td>"login ok"</td>
2005     <td>
2006 pcg 1.4 <b></b> </td>
2007 pcg 1.1 </tr>
2008     <tr>
2009     <td colspan="4">
2010     </td>
2011     </tr>
2012     <tr>
2013     <td>success</td>
2014     <td>CONSTANT</td>
2015     <td>1</td>
2016 pcg 1.3 <td>
2017 pcg 1.4 <b></b> </td>
2018 pcg 1.1 </tr>
2019     <tr>
2020     <td colspan="4">
2021     </td>
2022     </tr>
2023     </table>
2024    
2025     <h4>MESSAGE login</h4>
2026     NUMERIC TYPE (hex): 0002 RECV<table border="1">
2027     <tr>
2028     <th>NAME</th>
2029     <th>TYPE</th>
2030     <th>DEFAULT</th>
2031 pcg 1.3 <th>DEC-GUARD</th>
2032 pcg 1.1 </tr>
2033     <tr>
2034     <td colspan="4">
2035     </td>
2036     </tr>
2037     <tr>
2038     <td>result</td>
2039     <td>CONSTANT</td>
2040 pcg 1.3 <td>"guest login ok"</td>
2041     <td>
2042 pcg 1.4 <b></b> </td>
2043 pcg 1.1 </tr>
2044     <tr>
2045     <td colspan="4">
2046     </td>
2047     </tr>
2048     <tr>
2049     <td>success</td>
2050     <td>CONSTANT</td>
2051     <td>1</td>
2052 pcg 1.3 <td>
2053 pcg 1.4 <b></b> </td>
2054 pcg 1.1 </tr>
2055     <tr>
2056     <td colspan="4">
2057     </td>
2058     </tr>
2059     </table>
2060    
2061     <h4>MESSAGE login</h4>
2062     NUMERIC TYPE (hex): 0003 RECV<table border="1">
2063     <tr>
2064     <th>NAME</th>
2065     <th>TYPE</th>
2066     <th>DEFAULT</th>
2067 pcg 1.3 <th>DEC-GUARD</th>
2068 pcg 1.1 </tr>
2069     <tr>
2070     <td colspan="4">
2071     </td>
2072     </tr>
2073     <tr>
2074     <td>result</td>
2075     <td>CONSTANT</td>
2076 pcg 1.3 <td>"login error 3"</td>
2077     <td>
2078 pcg 1.4 <b></b> </td>
2079 pcg 1.1 </tr>
2080     <tr>
2081     <td colspan="4">
2082     ** maybe more following? **
2083     </td>
2084     </tr>
2085     </table>
2086    
2087     <h4>MESSAGE login</h4>
2088     NUMERIC TYPE (hex): 0004 RECV<table border="1">
2089     <tr>
2090     <th>NAME</th>
2091     <th>TYPE</th>
2092     <th>DEFAULT</th>
2093 pcg 1.3 <th>DEC-GUARD</th>
2094 pcg 1.1 </tr>
2095     <tr>
2096     <td colspan="4">
2097     </td>
2098     </tr>
2099     <tr>
2100     <td>result</td>
2101     <td>CONSTANT</td>
2102 pcg 1.3 <td>"wrong password"</td>
2103     <td>
2104 pcg 1.4 <b></b> </td>
2105 pcg 1.1 </tr>
2106     <tr>
2107     <td colspan="4">
2108     ** maybe more following? **
2109     </td>
2110     </tr>
2111     </table>
2112    
2113     <h4>MESSAGE login</h4>
2114     NUMERIC TYPE (hex): 0005 RECV<table border="1">
2115     <tr>
2116     <th>NAME</th>
2117     <th>TYPE</th>
2118     <th>DEFAULT</th>
2119 pcg 1.3 <th>DEC-GUARD</th>
2120 pcg 1.1 </tr>
2121     <tr>
2122     <td colspan="4">
2123     </td>
2124     </tr>
2125     <tr>
2126     <td>result</td>
2127     <td>CONSTANT</td>
2128 pcg 1.3 <td>"user unknown"</td>
2129     <td>
2130 pcg 1.4 <b></b> </td>
2131 pcg 1.1 </tr>
2132     <tr>
2133     <td colspan="4">
2134     ** maybe more following? **
2135     </td>
2136     </tr>
2137     </table>
2138    
2139     <h4>MESSAGE login</h4>
2140     NUMERIC TYPE (hex): 0006 RECV<table border="1">
2141     <tr>
2142     <th>NAME</th>
2143     <th>TYPE</th>
2144     <th>DEFAULT</th>
2145 pcg 1.3 <th>DEC-GUARD</th>
2146 pcg 1.1 </tr>
2147     <tr>
2148     <td colspan="4">
2149     </td>
2150     </tr>
2151     <tr>
2152     <td>result</td>
2153     <td>CONSTANT</td>
2154 pcg 1.3 <td>"user exists"</td>
2155     <td>
2156 pcg 1.4 <b></b> </td>
2157 pcg 1.1 </tr>
2158     <tr>
2159     <td colspan="4">
2160     ** maybe more following? **
2161     </td>
2162     </tr>
2163     </table>
2164    
2165     <h4>MESSAGE login</h4>
2166     NUMERIC TYPE (hex): 0018 RECV<table border="1">
2167     <tr>
2168     <th>NAME</th>
2169     <th>TYPE</th>
2170     <th>DEFAULT</th>
2171 pcg 1.3 <th>DEC-GUARD</th>
2172 pcg 1.1 </tr>
2173     <tr>
2174     <td colspan="4">
2175     </td>
2176     </tr>
2177     <tr>
2178     <td>result</td>
2179     <td>CONSTANT</td>
2180 pcg 1.3 <td>"login error 18"</td>
2181     <td>
2182 pcg 1.4 <b></b> </td>
2183 pcg 1.1 </tr>
2184     <tr>
2185     <td colspan="4">
2186     ** maybe more following? **
2187     </td>
2188     </tr>
2189     </table>
2190    
2191     <h4>MESSAGE login</h4>
2192     NUMERIC TYPE (hex): 0022 RECV<table border="1">
2193     <tr>
2194     <th>NAME</th>
2195     <th>TYPE</th>
2196     <th>DEFAULT</th>
2197 pcg 1.3 <th>DEC-GUARD</th>
2198 pcg 1.1 </tr>
2199     <tr>
2200     <td colspan="4">
2201     </td>
2202     </tr>
2203     <tr>
2204     <td colspan="4">
2205     </td>
2206     </tr>
2207     <tr>
2208     <td>result</td>
2209     <td>CONSTANT</td>
2210 pcg 1.3 <td>"user or ip blocked"</td>
2211     <td>
2212 pcg 1.4 <b></b> </td>
2213 pcg 1.1 </tr>
2214     <tr>
2215     <td colspan="4">
2216     </td>
2217     </tr>
2218     <tr>
2219     <td>reason</td>
2220     <td>STRING</td>
2221     <td></td>
2222 pcg 1.3 <td>
2223 pcg 1.4 <b></b> </td>
2224 pcg 1.1 </tr>
2225     <tr>
2226     <td colspan="4">
2227     </td>
2228     </tr>
2229     </table>
2230    
2231     <h4>MESSAGE msg_chat</h4>
2232     NUMERIC TYPE (hex): 0013 RECV<table border="1">
2233     <tr>
2234     <th>NAME</th>
2235     <th>TYPE</th>
2236     <th>DEFAULT</th>
2237 pcg 1.3 <th>DEC-GUARD</th>
2238 pcg 1.1 </tr>
2239     <tr>
2240     <td colspan="4">
2241     </td>
2242     </tr>
2243     <tr>
2244     <td>user1</td>
2245 pcg 1.3 <td>username</td>
2246 pcg 1.1 <td></td>
2247 pcg 1.3 <td>
2248 pcg 1.4 <b></b> </td>
2249 pcg 1.1 </tr>
2250     <tr>
2251     <td colspan="4">
2252     </td>
2253     </tr>
2254     <tr>
2255     <td>user2</td>
2256 pcg 1.3 <td>username</td>
2257 pcg 1.1 <td></td>
2258 pcg 1.3 <td>
2259 pcg 1.4 <b></b> </td>
2260 pcg 1.1 </tr>
2261     <tr>
2262     <td colspan="4">
2263     </td>
2264     </tr>
2265     <tr>
2266     <td>message</td>
2267     <td>STRING</td>
2268     <td></td>
2269 pcg 1.3 <td>
2270 pcg 1.4 <b></b> </td>
2271 pcg 1.1 </tr>
2272     <tr>
2273     <td colspan="4">
2274     </td>
2275     </tr>
2276     </table>
2277    
2278     <h4>MESSAGE stats</h4>
2279     NUMERIC TYPE (hex): 0015 RECV<table border="1">
2280     <tr>
2281     <th>NAME</th>
2282     <th>TYPE</th>
2283     <th>DEFAULT</th>
2284 pcg 1.3 <th>DEC-GUARD</th>
2285 pcg 1.1 </tr>
2286     <tr>
2287     <td colspan="4">
2288     </td>
2289     </tr>
2290     <tr>
2291     <td>ver_major</td>
2292 pcg 1.3 <td>U16</td>
2293 pcg 1.1 <td></td>
2294 pcg 1.3 <td>
2295 pcg 1.4 <b></b> </td>
2296 pcg 1.1 </tr>
2297     <tr>
2298     <td colspan="4">
2299     </td>
2300     </tr>
2301     <tr>
2302     <td>ver_minor</td>
2303 pcg 1.3 <td>U16</td>
2304 pcg 1.1 <td></td>
2305 pcg 1.3 <td>
2306 pcg 1.4 <b></b> </td>
2307 pcg 1.1 </tr>
2308     <tr>
2309     <td colspan="4">
2310     </td>
2311     </tr>
2312     <tr>
2313     <td>ver_micro</td>
2314 pcg 1.3 <td>U16</td>
2315 pcg 1.1 <td></td>
2316 pcg 1.3 <td>
2317 pcg 1.4 <b></b> </td>
2318 pcg 1.1 </tr>
2319     <tr>
2320     <td colspan="4">
2321     </td>
2322     </tr>
2323     <tr>
2324     <td>boot_time</td>
2325 pcg 1.3 <td>U64</td>
2326 pcg 1.1 <td></td>
2327 pcg 1.3 <td>
2328 pcg 1.4 <b></b> </td>
2329 pcg 1.1 </tr>
2330     <tr>
2331     <td colspan="4">
2332     </td>
2333     </tr>
2334     <tr>
2335     <td>users_cur</td>
2336 pcg 1.3 <td>U32</td>
2337 pcg 1.1 <td></td>
2338 pcg 1.3 <td>
2339 pcg 1.4 <b></b> </td>
2340 pcg 1.1 </tr>
2341     <tr>
2342     <td colspan="4">
2343     </td>
2344     </tr>
2345     <tr>
2346     <td>users_max</td>
2347 pcg 1.3 <td>U32</td>
2348 pcg 1.1 <td></td>
2349 pcg 1.3 <td>
2350 pcg 1.4 <b></b> </td>
2351 pcg 1.1 </tr>
2352     <tr>
2353     <td colspan="4">
2354     </td>
2355     </tr>
2356     <tr>
2357     <td>users_lim</td>
2358 pcg 1.3 <td>U32</td>
2359 pcg 1.1 <td></td>
2360 pcg 1.3 <td>
2361 pcg 1.4 <b></b> </td>
2362 pcg 1.1 </tr>
2363     <tr>
2364     <td colspan="4">
2365     </td>
2366     </tr>
2367     <tr>
2368     <td>accts_cur</td>
2369 pcg 1.3 <td>U32</td>
2370 pcg 1.1 <td></td>
2371 pcg 1.3 <td>
2372 pcg 1.4 <b></b> </td>
2373 pcg 1.1 </tr>
2374     <tr>
2375     <td colspan="4">
2376     </td>
2377     </tr>
2378     <tr>
2379     <td>accts_max</td>
2380 pcg 1.3 <td>U32</td>
2381 pcg 1.1 <td></td>
2382 pcg 1.3 <td>
2383 pcg 1.4 <b></b> </td>
2384 pcg 1.1 </tr>
2385     <tr>
2386     <td colspan="4">
2387     </td>
2388     </tr>
2389     <tr>
2390     <td>unknown1</td>
2391 pcg 1.3 <td>U32</td>
2392 pcg 1.1 <td></td>
2393 pcg 1.3 <td>
2394 pcg 1.4 <b></b> </td>
2395 pcg 1.1 </tr>
2396     <tr>
2397     <td colspan="4">
2398     </td>
2399     </tr>
2400     <tr>
2401     <td>work_max</td>
2402 pcg 1.3 <td>U32</td>
2403 pcg 1.1 <td></td>
2404 pcg 1.3 <td>
2405 pcg 1.4 <b></b> </td>
2406 pcg 1.1 </tr>
2407     <tr>
2408     <td colspan="4">
2409     </td>
2410     </tr>
2411     <tr>
2412     <td>rooms_cur</td>
2413 pcg 1.3 <td>U32</td>
2414 pcg 1.1 <td></td>
2415 pcg 1.3 <td>
2416 pcg 1.4 <b></b> </td>
2417 pcg 1.1 </tr>
2418     <tr>
2419     <td colspan="4">
2420     </td>
2421     </tr>
2422     <tr>
2423     <td>rooms_max</td>
2424 pcg 1.3 <td>U32</td>
2425 pcg 1.1 <td></td>
2426 pcg 1.3 <td>
2427 pcg 1.4 <b></b> </td>
2428 pcg 1.1 </tr>
2429     <tr>
2430     <td colspan="4">
2431     </td>
2432     </tr>
2433     <tr>
2434     <td>rooms_lim</td>
2435 pcg 1.3 <td>U32</td>
2436 pcg 1.1 <td></td>
2437 pcg 1.3 <td>
2438 pcg 1.4 <b></b> </td>
2439 pcg 1.1 </tr>
2440     <tr>
2441     <td colspan="4">
2442     </td>
2443     </tr>
2444     <tr>
2445     <td>games_cur</td>
2446 pcg 1.3 <td>U32</td>
2447 pcg 1.1 <td></td>
2448 pcg 1.3 <td>
2449 pcg 1.4 <b></b> </td>
2450 pcg 1.1 </tr>
2451     <tr>
2452     <td colspan="4">
2453     </td>
2454     </tr>
2455     <tr>
2456     <td>games_max</td>
2457 pcg 1.3 <td>U32</td>
2458 pcg 1.1 <td></td>
2459 pcg 1.3 <td>
2460 pcg 1.4 <b></b> </td>
2461 pcg 1.1 </tr>
2462     <tr>
2463     <td colspan="4">
2464     </td>
2465     </tr>
2466     <tr>
2467     <td>games_lim</td>
2468 pcg 1.3 <td>U32</td>
2469 pcg 1.1 <td></td>
2470 pcg 1.3 <td>
2471 pcg 1.4 <b></b> </td>
2472 pcg 1.1 </tr>
2473     <tr>
2474     <td colspan="4">
2475     </td>
2476     </tr>
2477     <tr>
2478     <td>results_cur</td>
2479 pcg 1.3 <td>U32</td>
2480 pcg 1.1 <td></td>
2481 pcg 1.3 <td>
2482 pcg 1.4 <b></b> </td>
2483 pcg 1.1 </tr>
2484     <tr>
2485     <td colspan="4">
2486     </td>
2487     </tr>
2488     <tr>
2489     <td>results_max</td>
2490 pcg 1.3 <td>U32</td>
2491 pcg 1.1 <td></td>
2492 pcg 1.3 <td>
2493 pcg 1.4 <b></b> </td>
2494 pcg 1.1 </tr>
2495     <tr>
2496     <td colspan="4">
2497     </td>
2498     </tr>
2499     <tr>
2500     <td>unknown2</td>
2501 pcg 1.3 <td>U32</td>
2502 pcg 1.1 <td></td>
2503 pcg 1.3 <td>
2504 pcg 1.4 <b></b> </td>
2505 pcg 1.1 </tr>
2506     <tr>
2507     <td colspan="4">
2508     </td>
2509     </tr>
2510     <tr>
2511     <td>params_cur</td>
2512 pcg 1.3 <td>U32</td>
2513 pcg 1.1 <td></td>
2514 pcg 1.3 <td>
2515 pcg 1.4 <b></b> </td>
2516 pcg 1.1 </tr>
2517     <tr>
2518     <td colspan="4">
2519     </td>
2520     </tr>
2521     <tr>
2522     <td>params_max</td>
2523 pcg 1.3 <td>U32</td>
2524 pcg 1.1 <td></td>
2525 pcg 1.3 <td>
2526 pcg 1.4 <b></b> </td>
2527 pcg 1.1 </tr>
2528     <tr>
2529     <td colspan="4">
2530     </td>
2531     </tr>
2532     <tr>
2533     <td>bytes_in</td>
2534 pcg 1.3 <td>U64</td>
2535 pcg 1.1 <td></td>
2536 pcg 1.3 <td>
2537 pcg 1.4 <b></b> </td>
2538 pcg 1.1 </tr>
2539     <tr>
2540     <td colspan="4">
2541     </td>
2542     </tr>
2543     <tr>
2544     <td>packets_in</td>
2545 pcg 1.3 <td>U64</td>
2546 pcg 1.1 <td></td>
2547 pcg 1.3 <td>
2548 pcg 1.4 <b></b> </td>
2549 pcg 1.1 </tr>
2550     <tr>
2551     <td colspan="4">
2552     </td>
2553     </tr>
2554     <tr>
2555     <td>bytes_out</td>
2556 pcg 1.3 <td>U64</td>
2557 pcg 1.1 <td></td>
2558 pcg 1.3 <td>
2559 pcg 1.4 <b></b> </td>
2560 pcg 1.1 </tr>
2561     <tr>
2562     <td colspan="4">
2563     </td>
2564     </tr>
2565     <tr>
2566     <td>packets_out</td>
2567 pcg 1.3 <td>U64</td>
2568 pcg 1.1 <td></td>
2569 pcg 1.3 <td>
2570 pcg 1.4 <b></b> </td>
2571 pcg 1.1 </tr>
2572     <tr>
2573 pcg 1.4 <td colspan="4">
2574 pcg 1.1 </td>
2575     </tr>
2576     </table>
2577    
2578     <h4>MESSAGE idle_warn</h4>
2579     NUMERIC TYPE (hex): 0016 RECV<table border="1">
2580     <tr>
2581     <th>NAME</th>
2582     <th>TYPE</th>
2583     <th>DEFAULT</th>
2584 pcg 1.3 <th>DEC-GUARD</th>
2585 pcg 1.1 </tr>
2586     <tr>
2587     <td colspan="4">
2588     idle warning, autologout soon (10 minutes...)
2589     </td>
2590     </tr>
2591     </table>
2592    
2593     <h4>MESSAGE timewarning_default</h4>
2594     NUMERIC TYPE (hex): 001b RECV<table border="1">
2595     <tr>
2596     <th>NAME</th>
2597     <th>TYPE</th>
2598     <th>DEFAULT</th>
2599 pcg 1.3 <th>DEC-GUARD</th>
2600 pcg 1.1 </tr>
2601     <tr>
2602     <td colspan="4">
2603     WILD guess
2604     </td>
2605     </tr>
2606     <tr>
2607     <td>channel</td>
2608 pcg 1.3 <td>U16</td>
2609 pcg 1.1 <td></td>
2610 pcg 1.3 <td>
2611 pcg 1.4 <b></b> </td>
2612 pcg 1.1 </tr>
2613     <tr>
2614     <td colspan="4">
2615     </td>
2616     </tr>
2617     <tr>
2618     <td>time</td>
2619 pcg 1.3 <td>U16</td>
2620 pcg 1.1 <td></td>
2621 pcg 1.3 <td>
2622 pcg 1.4 <b></b> </td>
2623 pcg 1.1 </tr>
2624     <tr>
2625     <td colspan="4">
2626     </td>
2627     </tr>
2628     </table>
2629    
2630     <h4>MESSAGE idle_err</h4>
2631     NUMERIC TYPE (hex): 001c RECV<table border="1">
2632     <tr>
2633     <th>NAME</th>
2634     <th>TYPE</th>
2635     <th>DEFAULT</th>
2636 pcg 1.3 <th>DEC-GUARD</th>
2637 pcg 1.1 </tr>
2638     <tr>
2639     <td colspan="4">
2640     autologout
2641     </td>
2642     </tr>
2643     </table>
2644    
2645     <h4>MESSAGE ping</h4>
2646     NUMERIC TYPE (hex): 001d RECV<table border="1">
2647     <tr>
2648     <th>NAME</th>
2649     <th>TYPE</th>
2650     <th>DEFAULT</th>
2651 pcg 1.3 <th>DEC-GUARD</th>
2652 pcg 1.1 </tr>
2653     <tr>
2654     <td colspan="4">
2655     </td>
2656     </tr>
2657     </table>
2658    
2659     <h4>MESSAGE userpic</h4>
2660     NUMERIC TYPE (hex): 0021 RECV<table border="1">
2661     <tr>
2662     <th>NAME</th>
2663     <th>TYPE</th>
2664     <th>DEFAULT</th>
2665 pcg 1.3 <th>DEC-GUARD</th>
2666 pcg 1.1 </tr>
2667     <tr>
2668     <td colspan="4">
2669     </td>
2670     </tr>
2671     <tr>
2672     <td>name</td>
2673 pcg 1.3 <td>username</td>
2674 pcg 1.1 <td></td>
2675 pcg 1.3 <td>
2676 pcg 1.4 <b></b> </td>
2677 pcg 1.1 </tr>
2678     <tr>
2679     <td colspan="4">
2680     Reply to pic_req, contains an image in jpeg format.
2681     </td>
2682     </tr>
2683     <tr>
2684     <td>data</td>
2685     <td>DATA</td>
2686     <td></td>
2687 pcg 1.3 <td>
2688 pcg 1.4 <b></b> </td>
2689 pcg 1.1 </tr>
2690     <tr>
2691     <td colspan="4">
2692     </td>
2693     </tr>
2694     </table>
2695    
2696     <h4>MESSAGE gnotice</h4>
2697     NUMERIC TYPE (hex): 0100 RECV<table border="1">
2698     <tr>
2699     <th>NAME</th>
2700     <th>TYPE</th>
2701     <th>DEFAULT</th>
2702 pcg 1.3 <th>DEC-GUARD</th>
2703 pcg 1.1 </tr>
2704     <tr>
2705     <td colspan="4">
2706     global notice, sent to everybody
2707     </td>
2708     </tr>
2709     <tr>
2710     <td>notice</td>
2711     <td>STRING</td>
2712     <td></td>
2713 pcg 1.3 <td>
2714 pcg 1.4 <b></b> </td>
2715 pcg 1.1 </tr>
2716     <tr>
2717     <td colspan="4">
2718     </td>
2719     </tr>
2720     </table>
2721    
2722    
2723     <h4>MESSAGE priv_room</h4>
2724     NUMERIC TYPE (hex): 0310 RECV<table border="1">
2725     <tr>
2726     <th>NAME</th>
2727     <th>TYPE</th>
2728     <th>DEFAULT</th>
2729 pcg 1.3 <th>DEC-GUARD</th>
2730 pcg 1.1 </tr>
2731     <tr>
2732     <td colspan="4">
2733     "permission denied" when joining a room
2734     </td>
2735     </tr>
2736     <tr>
2737     <td>name</td>
2738     <td>STRING</td>
2739     <td></td>
2740 pcg 1.3 <td>
2741 pcg 1.4 <b></b> </td>
2742 pcg 1.1 </tr>
2743     <tr>
2744     <td colspan="4">
2745     </td>
2746     </tr>
2747     </table>
2748    
2749     <h4>MESSAGE upd_rooms</h4>
2750     NUMERIC TYPE (hex): 0318 RECV<table border="1">
2751     <tr>
2752     <th>NAME</th>
2753     <th>TYPE</th>
2754     <th>DEFAULT</th>
2755 pcg 1.3 <th>DEC-GUARD</th>
2756 pcg 1.1 </tr>
2757     <tr>
2758     <td colspan="4">
2759     </td>
2760     </tr>
2761     <tr>
2762     <td>rooms</td>
2763     <td>room</td>
2764     <td></td>
2765 pcg 1.3 <td>
2766 pcg 1.4 <b></b> </td>
2767 pcg 1.1 </tr>
2768     <tr>
2769     <td colspan="4">
2770     </td>
2771     </tr>
2772     </table>
2773    
2774     <h4>MESSAGE upd_game2</h4>
2775     NUMERIC TYPE (hex): 041c RECV<table border="1">
2776     <tr>
2777     <th>NAME</th>
2778     <th>TYPE</th>
2779     <th>DEFAULT</th>
2780 pcg 1.3 <th>DEC-GUARD</th>
2781 pcg 1.1 </tr>
2782     <tr>
2783     <td colspan="4">
2784     </td>
2785     </tr>
2786     <tr>
2787     <td>channel_junk</td>
2788 pcg 1.3 <td>U16</td>
2789 pcg 1.1 <td></td>
2790 pcg 1.3 <td>
2791 pcg 1.4 <b></b> </td>
2792 pcg 1.1 </tr>
2793     <tr>
2794     <td colspan="4">
2795     </td>
2796     </tr>
2797     <tr>
2798     <td>game</td>
2799     <td>game</td>
2800     <td></td>
2801 pcg 1.3 <td>
2802 pcg 1.4 <b></b> </td>
2803 pcg 1.1 </tr>
2804     <tr>
2805     <td colspan="4">
2806     </td>
2807     </tr>
2808     </table>
2809    
2810     <h4>MESSAGE upd_user</h4>
2811     NUMERIC TYPE (hex): 0202 RECV<table border="1">
2812     <tr>
2813     <th>NAME</th>
2814     <th>TYPE</th>
2815     <th>DEFAULT</th>
2816 pcg 1.3 <th>DEC-GUARD</th>
2817 pcg 1.1 </tr>
2818     <tr>
2819     <td colspan="4">
2820     # loc 0" type="chat(?) loc 1 =&gt; gameinfo?, loc 2 =&gt; game result (more data)
2821     </td>
2822     </tr>
2823     <tr>
2824     <td>location</td>
2825 pcg 1.3 <td>U32</td>
2826 pcg 1.1 <td></td>
2827 pcg 1.3 <td>
2828 pcg 1.4 <b></b> </td>
2829 pcg 1.1 </tr>
2830     <tr>
2831     <td colspan="4">
2832     </td>
2833     </tr>
2834     <tr>
2835     <td>user</td>
2836     <td>user</td>
2837     <td></td>
2838 pcg 1.3 <td>
2839 pcg 1.4 <b></b> </td>
2840 pcg 1.1 </tr>
2841     <tr>
2842     <td colspan="4">
2843     </td>
2844     </tr>
2845     <tr>
2846     <td>lotsofinfo</td>
2847     <td>DATA</td>
2848     <td></td>
2849 pcg 1.3 <td>
2850 pcg 1.4 <b>location</b> == 2</td>
2851 pcg 1.1 </tr>
2852     <tr>
2853     <td colspan="4">
2854     </td>
2855     </tr>
2856     </table>
2857    
2858     <h3>Room messages</h3>
2859    
2860     <p>Not all room messages are for rooms only, and rooms need to parse
2861     not only these messages. Orthogonality, what for?</p>
2862    
2863     <h4>MESSAGE join_room</h4>
2864     NUMERIC TYPE (hex): 4300 RECV<table border="1">
2865     <tr>
2866     <th>NAME</th>
2867     <th>TYPE</th>
2868     <th>DEFAULT</th>
2869 pcg 1.3 <th>DEC-GUARD</th>
2870 pcg 1.1 </tr>
2871     <tr>
2872     <td colspan="4">
2873     </td>
2874     </tr>
2875     <tr>
2876     <td>channel</td>
2877 pcg 1.3 <td>U16</td>
2878 pcg 1.1 <td></td>
2879 pcg 1.3 <td>
2880 pcg 1.4 <b></b> </td>
2881 pcg 1.1 </tr>
2882     <tr>
2883     <td colspan="4">
2884     </td>
2885     </tr>
2886     <tr>
2887     <td>users</td>
2888     <td>user</td>
2889     <td></td>
2890 pcg 1.3 <td>
2891 pcg 1.4 <b></b> </td>
2892 pcg 1.1 </tr>
2893     <tr>
2894     <td colspan="4">
2895     </td>
2896     </tr>
2897     </table>
2898    
2899     <h4>MESSAGE msg_room</h4>
2900     NUMERIC TYPE (hex): 4301 RECV<table border="1">
2901     <tr>
2902     <th>NAME</th>
2903     <th>TYPE</th>
2904     <th>DEFAULT</th>
2905 pcg 1.3 <th>DEC-GUARD</th>
2906 pcg 1.1 </tr>
2907     <tr>
2908     <td colspan="4">
2909     </td>
2910     </tr>
2911     <tr>
2912     <td>channel</td>
2913 pcg 1.3 <td>U16</td>
2914 pcg 1.1 <td></td>
2915 pcg 1.3 <td>
2916 pcg 1.4 <b></b> </td>
2917 pcg 1.1 </tr>
2918     <tr>
2919     <td colspan="4">
2920     </td>
2921     </tr>
2922     <tr>
2923     <td>name</td>
2924 pcg 1.3 <td>username</td>
2925 pcg 1.1 <td></td>
2926 pcg 1.3 <td>
2927 pcg 1.4 <b></b> </td>
2928 pcg 1.1 </tr>
2929     <tr>
2930     <td colspan="4">
2931     </td>
2932     </tr>
2933     <tr>
2934     <td>message</td>
2935     <td>STRING</td>
2936     <td></td>
2937 pcg 1.3 <td>
2938 pcg 1.4 <b></b> </td>
2939 pcg 1.1 </tr>
2940     <tr>
2941     <td colspan="4">
2942     </td>
2943     </tr>
2944     </table>
2945    
2946     <h4>MESSAGE part_room</h4>
2947     NUMERIC TYPE (hex): 4302 RECV<table border="1">
2948     <tr>
2949     <th>NAME</th>
2950     <th>TYPE</th>
2951     <th>DEFAULT</th>
2952 pcg 1.3 <th>DEC-GUARD</th>
2953 pcg 1.1 </tr>
2954     <tr>
2955     <td colspan="4">
2956     </td>
2957     </tr>
2958     <tr>
2959     <td>channel</td>
2960 pcg 1.3 <td>U16</td>
2961 pcg 1.1 <td></td>
2962 pcg 1.3 <td>
2963 pcg 1.4 <b></b> </td>
2964 pcg 1.1 </tr>
2965     <tr>
2966     <td colspan="4">
2967     </td>
2968     </tr>
2969     <tr>
2970     <td>user</td>
2971     <td>user</td>
2972     <td></td>
2973 pcg 1.3 <td>
2974 pcg 1.4 <b></b> </td>
2975 pcg 1.1 </tr>
2976     <tr>
2977     <td colspan="4">
2978     </td>
2979     </tr>
2980     </table>
2981    
2982     <h4>MESSAGE del_room</h4>
2983     NUMERIC TYPE (hex): 4303 RECV<table border="1">
2984     <tr>
2985     <th>NAME</th>
2986     <th>TYPE</th>
2987     <th>DEFAULT</th>
2988 pcg 1.3 <th>DEC-GUARD</th>
2989 pcg 1.1 </tr>
2990     <tr>
2991     <td colspan="4">
2992     </td>
2993     </tr>
2994     <tr>
2995     <td>channel</td>
2996 pcg 1.3 <td>U16</td>
2997 pcg 1.1 <td></td>
2998 pcg 1.3 <td>
2999 pcg 1.4 <b></b> </td>
3000 pcg 1.1 </tr>
3001     <tr>
3002     <td colspan="4">
3003    
3004     </td>
3005     </tr>
3006     </table>
3007    
3008     <h4>MESSAGE upd_games</h4>
3009     NUMERIC TYPE (hex): 4304 RECV<table border="1">
3010     <tr>
3011     <th>NAME</th>
3012     <th>TYPE</th>
3013     <th>DEFAULT</th>
3014 pcg 1.3 <th>DEC-GUARD</th>
3015 pcg 1.1 </tr>
3016     <tr>
3017     <td colspan="4">
3018     </td>
3019     </tr>
3020     <tr>
3021     <td>channel</td>
3022 pcg 1.3 <td>U16</td>
3023 pcg 1.1 <td></td>
3024 pcg 1.3 <td>
3025 pcg 1.4 <b></b> </td>
3026 pcg 1.1 </tr>
3027     <tr>
3028     <td colspan="4">
3029     </td>
3030     </tr>
3031     <tr>
3032     <td>games</td>
3033     <td>game</td>
3034     <td></td>
3035 pcg 1.3 <td>
3036 pcg 1.4 <b></b> </td>
3037 pcg 1.1 </tr>
3038     <tr>
3039     <td colspan="4">
3040     </td>
3041     </tr>
3042     </table>
3043    
3044     <h4>MESSAGE desc_room</h4>
3045     NUMERIC TYPE (hex): 4319 RECV<table border="1">
3046     <tr>
3047     <th>NAME</th>
3048     <th>TYPE</th>
3049     <th>DEFAULT</th>
3050 pcg 1.3 <th>DEC-GUARD</th>
3051 pcg 1.1 </tr>
3052     <tr>
3053     <td colspan="4">
3054     </td>
3055     </tr>
3056     <tr>
3057     <td>channel</td>
3058 pcg 1.3 <td>U16</td>
3059 pcg 1.1 <td></td>
3060 pcg 1.3 <td>
3061 pcg 1.4 <b></b> </td>
3062 pcg 1.1 </tr>
3063     <tr>
3064     <td colspan="4">
3065     </td>
3066     </tr>
3067     <tr>
3068     <td>owner</td>
3069 pcg 1.3 <td>username</td>
3070 pcg 1.1 <td></td>
3071 pcg 1.3 <td>
3072 pcg 1.4 <b></b> </td>
3073 pcg 1.1 </tr>
3074     <tr>
3075     <td colspan="4">
3076     </td>
3077     </tr>
3078     <tr>
3079     <td>description</td>
3080     <td>STRING</td>
3081     <td></td>
3082 pcg 1.3 <td>
3083 pcg 1.4 <b></b> </td>
3084 pcg 1.1 </tr>
3085     <tr>
3086     <td colspan="4">
3087     </td>
3088     </tr>
3089     </table>
3090    
3091    
3092     <h4>MESSAGE chal_defaults</h4>
3093     NUMERIC TYPE (hex): 0411 RECV<table border="1">
3094     <tr>
3095     <th>NAME</th>
3096     <th>TYPE</th>
3097     <th>DEFAULT</th>
3098 pcg 1.3 <th>DEC-GUARD</th>
3099 pcg 1.1 </tr>
3100     <tr>
3101     <td colspan="4">
3102     </td>
3103     </tr>
3104     <tr>
3105     <td>channel</td>
3106 pcg 1.3 <td>U16</td>
3107 pcg 1.1 <td></td>
3108 pcg 1.3 <td>
3109 pcg 1.4 <b></b> </td>
3110 pcg 1.1 </tr>
3111     <tr>
3112     <td colspan="4">
3113     </td>
3114     </tr>
3115     <tr>
3116     <td>defaults</td>
3117     <td>challenge_defaults</td>
3118     <td></td>
3119 pcg 1.3 <td>
3120 pcg 1.4 <b></b> </td>
3121 pcg 1.1 </tr>
3122     <tr>
3123     <td colspan="4">
3124     </td>
3125     </tr>
3126     </table>
3127    
3128     <h3>Game messages</h3>
3129    
3130     <h4>MESSAGE upd_chal</h4>
3131     NUMERIC TYPE (hex): 4400 RECV<table border="1">
3132     <tr>
3133     <th>NAME</th>
3134     <th>TYPE</th>
3135     <th>DEFAULT</th>
3136 pcg 1.3 <th>DEC-GUARD</th>
3137 pcg 1.1 </tr>
3138     <tr>
3139     <td colspan="4">
3140     Unclear.
3141     </td>
3142     </tr>
3143     <tr>
3144     <td>channel</td>
3145 pcg 1.3 <td>U16</td>
3146 pcg 1.1 <td></td>
3147 pcg 1.3 <td>
3148 pcg 1.4 <b></b> </td>
3149 pcg 1.1 </tr>
3150     <tr>
3151     <td colspan="4">
3152     </td>
3153     </tr>
3154     <tr>
3155     <td>challenge</td>
3156     <td>challenge</td>
3157     <td></td>
3158 pcg 1.3 <td>
3159 pcg 1.4 <b></b> </td>
3160 pcg 1.1 </tr>
3161     <tr>
3162     <td colspan="4">
3163     </td>
3164     </tr>
3165     </table>
3166    
3167     <h4>MESSAGE upd_game</h4>
3168     NUMERIC TYPE (hex): 4401 RECV<table border="1">
3169     <tr>
3170     <th>NAME</th>
3171     <th>TYPE</th>
3172     <th>DEFAULT</th>
3173 pcg 1.3 <th>DEC-GUARD</th>
3174 pcg 1.1 </tr>
3175     <tr>
3176     <td colspan="4">
3177     </td>
3178     </tr>
3179     <tr>
3180     <td>channel</td>
3181 pcg 1.3 <td>U16</td>
3182 pcg 1.1 <td></td>
3183 pcg 1.3 <td>
3184 pcg 1.4 <b></b> </td>
3185 pcg 1.1 </tr>
3186     <tr>
3187     <td colspan="4">
3188     </td>
3189     </tr>
3190     <tr>
3191     <td>game</td>
3192     <td>game</td>
3193     <td></td>
3194 pcg 1.3 <td>
3195 pcg 1.4 <b></b> </td>
3196 pcg 1.1 </tr>
3197     <tr>
3198     <td colspan="4">
3199     </td>
3200     </tr>
3201     </table>
3202    
3203     <h4>MESSAGE del_game</h4>
3204     NUMERIC TYPE (hex): 4402 RECV<table border="1">
3205     <tr>
3206     <th>NAME</th>
3207     <th>TYPE</th>
3208     <th>DEFAULT</th>
3209 pcg 1.3 <th>DEC-GUARD</th>
3210 pcg 1.1 </tr>
3211     <tr>
3212     <td colspan="4">
3213     </td>
3214     </tr>
3215     <tr>
3216     <td>channel</td>
3217 pcg 1.3 <td>U16</td>
3218 pcg 1.1 <td></td>
3219 pcg 1.3 <td>
3220 pcg 1.4 <b></b> </td>
3221 pcg 1.1 </tr>
3222     <tr>
3223     <td colspan="4">
3224     </td>
3225     </tr>
3226     </table>
3227    
3228     <h4>MESSAGE upd_observers</h4>
3229     NUMERIC TYPE (hex): 4403 RECV<table border="1">
3230     <tr>
3231     <th>NAME</th>
3232     <th>TYPE</th>
3233     <th>DEFAULT</th>
3234 pcg 1.3 <th>DEC-GUARD</th>
3235 pcg 1.1 </tr>
3236     <tr>
3237     <td colspan="4">
3238     </td>
3239     </tr>
3240     <tr>
3241     <td>channel</td>
3242 pcg 1.3 <td>U16</td>
3243 pcg 1.1 <td></td>
3244 pcg 1.3 <td>
3245 pcg 1.4 <b></b> </td>
3246 pcg 1.1 </tr>
3247     <tr>
3248     <td colspan="4">
3249     </td>
3250     </tr>
3251     <tr>
3252     <td>users</td>
3253     <td>user</td>
3254     <td></td>
3255 pcg 1.3 <td>
3256 pcg 1.4 <b></b> </td>
3257 pcg 1.1 </tr>
3258     <tr>
3259     <td colspan="4">
3260     </td>
3261     </tr>
3262     </table>
3263    
3264     <h4>MESSAGE del_observer</h4>
3265     NUMERIC TYPE (hex): 4404 RECV<table border="1">
3266     <tr>
3267     <th>NAME</th>
3268     <th>TYPE</th>
3269     <th>DEFAULT</th>
3270 pcg 1.3 <th>DEC-GUARD</th>
3271 pcg 1.1 </tr>
3272     <tr>
3273     <td colspan="4">
3274     </td>
3275     </tr>
3276     <tr>
3277     <td>channel</td>
3278 pcg 1.3 <td>U16</td>
3279 pcg 1.1 <td></td>
3280 pcg 1.3 <td>
3281 pcg 1.4 <b></b> </td>
3282 pcg 1.1 </tr>
3283     <tr>
3284     <td colspan="4">
3285     </td>
3286     </tr>
3287     <tr>
3288     <td>name</td>
3289 pcg 1.3 <td>username</td>
3290 pcg 1.1 <td></td>
3291 pcg 1.3 <td>
3292 pcg 1.4 <b></b> </td>
3293 pcg 1.1 </tr>
3294     <tr>
3295     <td colspan="4">
3296     </td>
3297     </tr>
3298     </table>
3299    
3300     <h4>MESSAGE set_tree</h4>
3301     NUMERIC TYPE (hex): 4405 RECV<table border="1">
3302     <tr>
3303     <th>NAME</th>
3304     <th>TYPE</th>
3305     <th>DEFAULT</th>
3306 pcg 1.3 <th>DEC-GUARD</th>
3307 pcg 1.1 </tr>
3308     <tr>
3309     <td colspan="4">
3310     </td>
3311     </tr>
3312     <tr>
3313     <td>channel</td>
3314 pcg 1.3 <td>U16</td>
3315 pcg 1.1 <td></td>
3316 pcg 1.3 <td>
3317 pcg 1.4 <b></b> </td>
3318 pcg 1.1 </tr>
3319     <tr>
3320     <td colspan="4">
3321     </td>
3322     </tr>
3323     <tr>
3324     <td>tree</td>
3325     <td>TREE</td>
3326     <td></td>
3327 pcg 1.3 <td>
3328 pcg 1.4 <b></b> </td>
3329 pcg 1.1 </tr>
3330     <tr>
3331     <td colspan="4">
3332     </td>
3333     </tr>
3334     </table>
3335    
3336     <h4>MESSAGE upd_tree</h4>
3337     NUMERIC TYPE (hex): 4406 RECV<table border="1">
3338     <tr>
3339     <th>NAME</th>
3340     <th>TYPE</th>
3341     <th>DEFAULT</th>
3342 pcg 1.3 <th>DEC-GUARD</th>
3343 pcg 1.1 </tr>
3344     <tr>
3345     <td colspan="4">
3346     </td>
3347     </tr>
3348     <tr>
3349     <td>channel</td>
3350 pcg 1.3 <td>U16</td>
3351 pcg 1.1 <td></td>
3352 pcg 1.3 <td>
3353 pcg 1.4 <b></b> </td>
3354 pcg 1.1 </tr>
3355     <tr>
3356     <td colspan="4">
3357     </td>
3358     </tr>
3359     <tr>
3360     <td>tree</td>
3361     <td>TREE</td>
3362     <td></td>
3363 pcg 1.3 <td>
3364 pcg 1.4 <b></b> </td>
3365 pcg 1.1 </tr>
3366     <tr>
3367     <td colspan="4">
3368     </td>
3369     </tr>
3370     </table>
3371    
3372     <h4>MESSAGE set_node</h4>
3373     NUMERIC TYPE (hex): 4407 RECV<table border="1">
3374     <tr>
3375     <th>NAME</th>
3376     <th>TYPE</th>
3377     <th>DEFAULT</th>
3378 pcg 1.3 <th>DEC-GUARD</th>
3379 pcg 1.1 </tr>
3380     <tr>
3381     <td colspan="4">
3382     </td>
3383     </tr>
3384     <tr>
3385     <td>channel</td>
3386 pcg 1.3 <td>U16</td>
3387 pcg 1.1 <td></td>
3388 pcg 1.3 <td>
3389 pcg 1.4 <b></b> </td>
3390 pcg 1.1 </tr>
3391     <tr>
3392     <td colspan="4">
3393     </td>
3394     </tr>
3395     <tr>
3396     <td>node</td>
3397 pcg 1.3 <td>U32</td>
3398 pcg 1.1 <td></td>
3399 pcg 1.3 <td>
3400 pcg 1.4 <b></b> </td>
3401 pcg 1.1 </tr>
3402     <tr>
3403     <td colspan="4">
3404     </td>
3405     </tr>
3406     </table>
3407    
3408     <h4>MESSAGE superko</h4>
3409     NUMERIC TYPE (hex): 4409 RECV<table border="1">
3410     <tr>
3411     <th>NAME</th>
3412     <th>TYPE</th>
3413     <th>DEFAULT</th>
3414 pcg 1.3 <th>DEC-GUARD</th>
3415 pcg 1.1 </tr>
3416     <tr>
3417     <td colspan="4">
3418     Superko-warning.
3419     </td>
3420     </tr>
3421     <tr>
3422     <td>channel</td>
3423 pcg 1.3 <td>U16</td>
3424 pcg 1.1 <td></td>
3425 pcg 1.3 <td>
3426 pcg 1.4 <b></b> </td>
3427 pcg 1.1 </tr>
3428     <tr>
3429     <td colspan="4">
3430     </td>
3431     </tr>
3432     </table>
3433    
3434     <h4>MESSAGE final_result</h4>
3435     NUMERIC TYPE (hex): 440b RECV<table border="1">
3436     <tr>
3437     <th>NAME</th>
3438     <th>TYPE</th>
3439     <th>DEFAULT</th>
3440 pcg 1.3 <th>DEC-GUARD</th>
3441 pcg 1.1 </tr>
3442     <tr>
3443     <td colspan="4">
3444     </td>
3445     </tr>
3446     <tr>
3447     <td>channel</td>
3448 pcg 1.3 <td>U16</td>
3449 pcg 1.1 <td></td>
3450 pcg 1.3 <td>
3451 pcg 1.4 <b></b> </td>
3452 pcg 1.1 </tr>
3453     <tr>
3454     <td colspan="4">
3455     </td>
3456     </tr>
3457     <tr>
3458     <td>blackscore</td>
3459     <td>score</td>
3460     <td></td>
3461 pcg 1.3 <td>
3462 pcg 1.4 <b></b> </td>
3463 pcg 1.1 </tr>
3464     <tr>
3465     <td colspan="4">
3466     </td>
3467     </tr>
3468     <tr>
3469     <td>whitescore</td>
3470     <td>score</td>
3471     <td></td>
3472 pcg 1.3 <td>
3473 pcg 1.4 <b></b> </td>
3474 pcg 1.1 </tr>
3475     <tr>
3476     <td colspan="4">
3477     </td>
3478     </tr>
3479     </table>
3480    
3481     <h4>MESSAGE req_undo</h4>
3482     NUMERIC TYPE (hex): 440e RECV<table border="1">
3483     <tr>
3484     <th>NAME</th>
3485     <th>TYPE</th>
3486     <th>DEFAULT</th>
3487 pcg 1.3 <th>DEC-GUARD</th>
3488 pcg 1.1 </tr>
3489     <tr>
3490     <td colspan="4">
3491     </td>
3492     </tr>
3493     <tr>
3494     <td>channel</td>
3495 pcg 1.3 <td>U16</td>
3496 pcg 1.1 <td></td>
3497 pcg 1.3 <td>
3498 pcg 1.4 <b></b> </td>
3499 pcg 1.1 </tr>
3500     <tr>
3501     <td colspan="4">
3502    
3503     </td>
3504     </tr>
3505     </table>
3506    
3507     <h4>MESSAGE resign_game</h4>
3508     NUMERIC TYPE (hex): 4410 RECV<table border="1">
3509     <tr>
3510     <th>NAME</th>
3511     <th>TYPE</th>
3512     <th>DEFAULT</th>
3513 pcg 1.3 <th>DEC-GUARD</th>
3514 pcg 1.1 </tr>
3515     <tr>
3516     <td colspan="4">
3517     </td>
3518     </tr>
3519     <tr>
3520     <td>channel</td>
3521 pcg 1.3 <td>U16</td>
3522 pcg 1.1 <td></td>
3523 pcg 1.3 <td>
3524 pcg 1.4 <b></b> </td>
3525 pcg 1.1 </tr>
3526     <tr>
3527     <td colspan="4">
3528     </td>
3529     </tr>
3530     <tr>
3531     <td>player</td>
3532 pcg 1.3 <td>U8</td>
3533 pcg 1.1 <td></td>
3534 pcg 1.3 <td>
3535 pcg 1.4 <b></b> </td>
3536 pcg 1.1 </tr>
3537     <tr>
3538     <td colspan="4">
3539     </td>
3540     </tr>
3541     </table>
3542    
3543     <h4>MESSAGE set_teacher</h4>
3544     NUMERIC TYPE (hex): 441a RECV<table border="1">
3545     <tr>
3546     <th>NAME</th>
3547     <th>TYPE</th>
3548     <th>DEFAULT</th>
3549 pcg 1.3 <th>DEC-GUARD</th>
3550 pcg 1.1 </tr>
3551     <tr>
3552     <td colspan="4">
3553     </td>
3554     </tr>
3555     <tr>
3556     <td>channel</td>
3557 pcg 1.3 <td>U16</td>
3558 pcg 1.1 <td></td>
3559 pcg 1.3 <td>
3560 pcg 1.4 <b></b> </td>
3561 pcg 1.1 </tr>
3562     <tr>
3563     <td colspan="4">
3564     </td>
3565     </tr>
3566     <tr>
3567     <td>name</td>
3568 pcg 1.3 <td>username</td>
3569 pcg 1.1 <td></td>
3570 pcg 1.3 <td>
3571 pcg 1.4 <b></b> </td>
3572 pcg 1.1 </tr>
3573     <tr>
3574     <td colspan="4">
3575     </td>
3576     </tr>
3577     </table>
3578    
3579     <h4>MESSAGE owner_left</h4>
3580     NUMERIC TYPE (hex): 441d RECV<table border="1">
3581     <tr>
3582     <th>NAME</th>
3583     <th>TYPE</th>
3584     <th>DEFAULT</th>
3585 pcg 1.3 <th>DEC-GUARD</th>
3586 pcg 1.1 </tr>
3587     <tr>
3588     <td colspan="4">
3589     Unclear.
3590     </td>
3591     </tr>
3592     <tr>
3593     <td>channel</td>
3594 pcg 1.3 <td>U16</td>
3595 pcg 1.1 <td></td>
3596 pcg 1.3 <td>
3597 pcg 1.4 <b></b> </td>
3598 pcg 1.1 </tr>
3599     <tr>
3600     <td colspan="4">
3601     </td>
3602     </tr>
3603     </table>
3604    
3605     <h4>MESSAGE teacher_left</h4>
3606     NUMERIC TYPE (hex): 441e RECV<table border="1">
3607     <tr>
3608     <th>NAME</th>
3609     <th>TYPE</th>
3610     <th>DEFAULT</th>
3611 pcg 1.3 <th>DEC-GUARD</th>
3612 pcg 1.1 </tr>
3613     <tr>
3614     <td colspan="4">
3615     Unclear.
3616     </td>
3617     </tr>
3618     <tr>
3619     <td>channel</td>
3620 pcg 1.3 <td>U16</td>
3621 pcg 1.1 <td></td>
3622 pcg 1.3 <td>
3623 pcg 1.4 <b></b> </td>
3624 pcg 1.1 </tr>
3625     <tr>
3626     <td colspan="4">
3627     </td>
3628     </tr>
3629     </table>
3630    
3631     <h4>MESSAGE unknown4422</h4>
3632     NUMERIC TYPE (hex): 4422 RECV<table border="1">
3633     <tr>
3634     <th>NAME</th>
3635     <th>TYPE</th>
3636     <th>DEFAULT</th>
3637 pcg 1.3 <th>DEC-GUARD</th>
3638 pcg 1.1 </tr>
3639     <tr>
3640     <td colspan="4">
3641     change teacher? something to do with editing?
3642     </td>
3643     </tr>
3644     <tr>
3645     <td>channel</td>
3646 pcg 1.3 <td>U16</td>
3647 pcg 1.1 <td></td>
3648 pcg 1.3 <td>
3649 pcg 1.4 <b></b> </td>
3650 pcg 1.1 </tr>
3651     <tr>
3652     <td colspan="4">
3653     </td>
3654     </tr>
3655     <tr>
3656     <td>name1</td>
3657 pcg 1.3 <td>username</td>
3658 pcg 1.1 <td></td>
3659 pcg 1.3 <td>
3660 pcg 1.4 <b></b> </td>
3661 pcg 1.1 </tr>
3662     <tr>
3663     <td colspan="4">
3664     </td>
3665     </tr>
3666     <tr>
3667     <td>name2</td>
3668 pcg 1.3 <td>username</td>
3669 pcg 1.1 <td></td>
3670 pcg 1.3 <td>
3671 pcg 1.4 <b></b> </td>
3672 pcg 1.1 </tr>
3673     <tr>
3674     <td colspan="4">
3675     </td>
3676     </tr>
3677     </table>
3678    
3679     <h4>MESSAGE req_result</h4>
3680     NUMERIC TYPE (hex): 4433 RECV<table border="1">
3681     <tr>
3682     <th>NAME</th>
3683     <th>TYPE</th>
3684     <th>DEFAULT</th>
3685 pcg 1.3 <th>DEC-GUARD</th>
3686 pcg 1.1 </tr>
3687     <tr>
3688     <td colspan="4">
3689     Unclear.
3690     </td>
3691     </tr>
3692     <tr>
3693     <td>channel</td>
3694 pcg 1.3 <td>U16</td>
3695 pcg 1.1 <td></td>
3696 pcg 1.3 <td>
3697 pcg 1.4 <b></b> </td>
3698 pcg 1.1 </tr>
3699     <tr>
3700     <td colspan="4">
3701     # # recv_result(?)
3702     </td>
3703     </tr>
3704     </table>
3705    
3706     <h4>MESSAGE unknown4434</h4>
3707     NUMERIC TYPE (hex): 4434 RECV<table border="1">
3708     <tr>
3709     <th>NAME</th>
3710     <th>TYPE</th>
3711     <th>DEFAULT</th>
3712 pcg 1.3 <th>DEC-GUARD</th>
3713 pcg 1.1 </tr>
3714     <tr>
3715     <td colspan="4">
3716     </td>
3717     </tr>
3718     <tr>
3719     <td>channel</td>
3720 pcg 1.3 <td>U16</td>
3721 pcg 1.1 <td></td>
3722 pcg 1.3 <td>
3723 pcg 1.4 <b></b> </td>
3724 pcg 1.1 </tr>
3725     <tr>
3726     <td colspan="4">
3727     </td>
3728     </tr>
3729     <tr>
3730     <td>b1</td>
3731 pcg 1.3 <td>U8</td>
3732 pcg 1.1 <td></td>
3733 pcg 1.3 <td>
3734 pcg 1.4 <b></b> </td>
3735 pcg 1.1 </tr>
3736     <tr>
3737     <td colspan="4">
3738     ?? !demonstration game??
3739     </td>
3740     </tr>
3741     </table>
3742    
3743     </body>
3744     </html>