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