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