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