ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/kgsueme/doc/protocol.html
Revision: 1.6
Committed: Thu Jun 5 16:40:52 2003 UTC (23 years, 4 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.5: +113 -109 lines
Log Message:
*** empty log message ***

File Contents

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