ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.16
Committed: Sat Jun 14 08:13:06 2003 UTC (20 years, 11 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.15: +1 -1 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 pcg 1.16 <h1>$Revision: 1.17 $</h1>
25 pcg 1.9
26 pcg 1.1 <h1>KGS Protocol Description</h1>
27    
28     <p>This XML document describes the KGS protocol. It is also used
29     to automatically generate the perl parser for all the messages and
30     structures in the protocol. Adapting it to other languages should be
31     trivial.</p>
32    
33 pcg 1.9 <p>
34     <b>Please note that the author of KGS has told me that he will
35     change the protocol in response to my efforts. This does not
36     necessarily mean that he will change the protocol just to make it
37     difficult to reverse-engineer the protocol, but if this happens,
38     I might not have the resources the track them, if they are too
39     extensive. Anyway, he made it clear that no help whatsoever is to be
40     expected.</b>
41     </p>
42    
43 pcg 1.4 <p>If you feel you need to update the visual appearance of this
44 pcg 1.10 document, feel free to look <tt>doc/doc2html.xsl</tt> and improve
45 pcg 1.4 it.</p>
46    
47 pcg 1.7 <p>The current version of this document can always be found at
48     <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
49     the HTML version of it can be found
50     <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>.
51     </p>
52    
53 pcg 1.1 <h2>Structure and conventions of this document and the protocol</h2>
54    
55     <p>"Send" means messages send from the client to the server, while
56     "received" means messages send by the server to the client.</p>
57    
58 pcg 1.4 <p>Everything on the wire is in little-endian format (what a shame).</p>
59 pcg 1.1
60 pcg 1.4 <p>Primitive types are mostly integers (signed
61     "<code>I</code>&lt;bits&gt;", unsigned "<code>U</code>&lt;bits&gt;"),
62     ascii strings ("<code>username</code>"), or zero-terminated
63     UCS2-Strings ("<code>STRING</code>"). Yes, I know java is supposed to
64     do UTF-16, but no implementation seems to care...</p>
65 pcg 1.1
66 pcg 1.15 <p>For the rest, go figure or bug me, <a href="mailto:pcg@goof.com">Marc Lehmann &lt;pcg@goof.com&gt;</a>
67     </p>
68 pcg 1.1
69     <h2>Stream and message structure.</h2>
70    
71 pcg 1.4 <p>After connecting to the server, a handshake byte is sent. It's
72     the major version number of the protocol the client expects to
73     receive. Version 3 and 4 are mostly the same, except that Version 4
74     clients expect server messages to be compressed, version 3 clients
75     not.</p>
76    
77     <p>The server sends back his protocol number, which is always 3 in
78     the current protocol. Most of the protocol variation is determined by
79     the server using the client version that is used in the initial login
80     message, not the initial handshake byte.</p>
81 pcg 1.1
82     <p>After the initial handshake, the client sends uncompressed
83     messages, while the server sends back a zlib-compressed
84     stream (<a href="http://rfc1950.x42.com/">rfc1950</a> and <a href="http://rfc1950.x42.com/">rfc1951</a>).</p>
85    
86     <p>All messages have the same header:</p>
87    
88 pcg 1.3 <h4>STRUCTURE message_header</h4>
89 pcg 1.1 <table border="1">
90     <tr>
91     <th>NAME</th>
92     <th>TYPE</th>
93     <th>DEFAULT</th>
94 pcg 1.3 <th>DEC-GUARD</th>
95 pcg 1.1 </tr>
96     <tr>
97     <td colspan="4">
98     </td>
99     </tr>
100     <tr>
101     <td>_unknown</td>
102 pcg 1.3 <td>U16</td>
103 pcg 1.1 <td></td>
104 pcg 1.3 <td>
105 pcg 1.4 <b></b> </td>
106 pcg 1.1 </tr>
107     <tr>
108     <td colspan="4">
109     </td>
110     </tr>
111     <tr>
112     <td>length</td>
113 pcg 1.3 <td>U16</td>
114 pcg 1.1 <td></td>
115 pcg 1.3 <td>
116 pcg 1.4 <b></b> </td>
117 pcg 1.1 </tr>
118     <tr>
119     <td colspan="4">
120     The length is the length of the full message including the header.
121     </td>
122     </tr>
123     <tr>
124     <td>type</td>
125 pcg 1.3 <td>U16</td>
126 pcg 1.1 <td></td>
127 pcg 1.3 <td>
128 pcg 1.4 <b></b> </td>
129 pcg 1.1 </tr>
130     <tr>
131     <td colspan="4">
132     If the type is &gt;= 0x4000 this is a message for a specific channel. The channel
133 pcg 1.3 number is always the next U16.
134 pcg 1.1 </td>
135     </tr>
136     </table>
137    
138 pcg 1.3 <h2>Primitive types used in the protocol.</h2>
139    
140 pcg 1.9 <p>Apart from the basic types, I need to define some extra types to
141     deal with fixed-point values (based on integer types) or fixed-length
142     strings (either 7-bit-ascii or more limited (<code>A</code>), or UCS-2
143     based (<code>S</code>)).</p>
144    
145 pcg 1.4 <h4>TYPE username</h4>
146     BASE TYPE: A<br />
147     LENGTH: 12<br />
148     MULTIPLIER: <br />
149 pcg 1.8
150     <p>The basic user or login name, used throughout the protocol
151     as a handle to the user.</p>
152    
153 pcg 1.4 <h4>TYPE roomname</h4>
154     BASE TYPE: S<br />
155     LENGTH: 25<br />
156     MULTIPLIER: <br />
157 pcg 1.3 <!-- argh, how horribly broken -->
158 pcg 1.8
159     <p>Many strings in the protocol are fixed-width for no good reason
160     (maybe this is one reason for using compression in enwer versions, as
161     the packets itself are wasting lots of space.</p>
162    
163 pcg 1.14 <h4>TYPE realname</h4>
164     BASE TYPE: S<br />
165     LENGTH: 50<br />
166     MULTIPLIER: <br />
167     <h4>TYPE email</h4>
168     BASE TYPE: S<br />
169     LENGTH: 70<br />
170     MULTIPLIER: <br />
171     <h4>TYPE userinfo</h4>
172     BASE TYPE: S<br />
173     LENGTH: 1000<br />
174     MULTIPLIER: <br />
175     <h4>TYPE url</h4>
176     BASE TYPE: A<br />
177     LENGTH: 100<br />
178     MULTIPLIER: <br />
179    
180     <p>Used in user_record.</p>
181    
182 pcg 1.4 <h4>TYPE locale</h4>
183     BASE TYPE: A<br />
184     LENGTH: 5<br />
185     MULTIPLIER: <br />
186 pcg 1.8
187     <p>A kind of locale specifier. It seems the general format seems to be
188     lowercase language, underscore, uppercase location, e.g. en_US. More
189     fancy specifications don't fit.</p>
190    
191 pcg 1.4 <h4>TYPE flag</h4>
192     BASE TYPE: U8<br />
193     LENGTH: <br />
194     MULTIPLIER: 1<br />
195 pcg 1.8
196     <p>Just a simple boolean value. 0 means false, and 1 generally true,
197     but I suggest ccepting != 0 as true.</p>
198    
199 pcg 1.6 <h4>TYPE komi16</h4>
200     BASE TYPE: I16<br />
201     LENGTH: <br />
202     MULTIPLIER: 2<br />
203     <h4>TYPE komi32</h4>
204 pcg 1.4 BASE TYPE: I32<br />
205     LENGTH: <br />
206     MULTIPLIER: 2<br />
207 pcg 1.8
208     <p>Komi values are multiplied by 2 to make them integer in the
209 pcg 1.11 protocol.</p>
210 pcg 1.8
211 pcg 1.4 <h4>TYPE result</h4>
212     BASE TYPE: I32<br />
213     LENGTH: <br />
214     MULTIPLIER: 2<br />
215 pcg 1.8
216 pcg 1.13 <p>The game result is also multiplied by two to give it higher
217     resolution. There are also special values for wins by time etc., either
218     in result or in the score* types, or both :)</p>
219 pcg 1.8
220 pcg 1.11 <h4>TYPE score16</h4>
221     BASE TYPE: I16<br />
222     LENGTH: <br />
223     MULTIPLIER: 4<br />
224     <h4>TYPE score32</h4>
225 pcg 1.4 BASE TYPE: I32<br />
226     LENGTH: <br />
227     MULTIPLIER: 4<br />
228 pcg 1.8
229     <p>A score value (used for displaying the score at the end of a game)
230 pcg 1.13 are multiplied by four for a change (the 0.25 resolution is not
231     used). In game structures it is encoded by dividing by two, though, so
232     watch out!</p>
233 pcg 1.8
234 pcg 1.4 <h4>TYPE time</h4>
235     BASE TYPE: U32<br />
236     LENGTH: <br />
237 pcg 1.6 MULTIPLIER: 1000<br />
238 pcg 1.8
239     <p>Time values are multiplied by 1000, giving them millisecond
240     accuracy.</p>
241 pcg 1.3
242 pcg 1.14 <h4>TYPE timestamp</h4>
243     BASE TYPE: U64<br />
244     LENGTH: <br />
245     MULTIPLIER: 1000<br />
246    
247     <p>64 bit timeval, milliseconds since posix epoch, e.g. <code>my
248     ($year, $month, $day) = (gmtime $date * 0.001)[5,4,3];</code>
249     </p>
250    
251 pcg 1.15 <h4>TYPE password</h4>
252     BASE TYPE: U64<br />
253     LENGTH: <br />
254     MULTIPLIER: <br />
255    
256     <p>Password is a number calculated as follows (VERY insecure, basically
257     plaintext!): <code>password = 0; for char in characters do password ←
258     password * 1055 + ascii_code (char)</code>
259     </p>
260    
261 pcg 1.3 <h2>Constants, enumeration and set types used in the protocol.</h2>
262 pcg 1.1
263     <p>Baaah... not yet.</p>
264    
265 pcg 1.3 <h2>Structs used in send &amp; receive messages</h2>
266 pcg 1.1
267 pcg 1.3 <h4>STRUCTURE user</h4>
268     CLASS: KGS::User<br />
269 pcg 1.1 <table border="1">
270     <tr>
271     <th>NAME</th>
272     <th>TYPE</th>
273     <th>DEFAULT</th>
274 pcg 1.3 <th>DEC-GUARD</th>
275 pcg 1.1 </tr>
276     <tr>
277     <td colspan="4">
278 pcg 1.9
279     Everywhere a user + flags is required, even used in some places
280     where only a username is required. I see no general rule on when a
281     complete user and when a partial user is required.
282    
283 pcg 1.1 </td>
284     </tr>
285     <tr>
286     <td>name</td>
287 pcg 1.3 <td>username</td>
288 pcg 1.1 <td></td>
289 pcg 1.3 <td>
290 pcg 1.4 <b></b> </td>
291 pcg 1.1 </tr>
292     <tr>
293     <td colspan="4">
294     </td>
295     </tr>
296     <tr>
297     <td>flags</td>
298 pcg 1.3 <td>U32</td>
299 pcg 1.1 <td>1</td>
300 pcg 1.3 <td>
301 pcg 1.4 <b></b> </td>
302 pcg 1.1 </tr>
303     <tr>
304     <td colspan="4">
305     </td>
306     </tr>
307     </table>
308    
309 pcg 1.6 <h4>STRUCTURE rules</h4>
310     CLASS: KGS::Rules<br />
311     <table border="1">
312     <tr>
313     <th>NAME</th>
314     <th>TYPE</th>
315     <th>DEFAULT</th>
316     <th>DEC-GUARD</th>
317     </tr>
318     <tr>
319     <td colspan="4">
320 pcg 1.9
321     This structure is used for challanges as well as in the special
322     TREE "subprotocol". It tightly encodes the game parameters.
323    
324 pcg 1.6 </td>
325     </tr>
326     <tr>
327     <td>ruleset</td>
328     <td>U8</td>
329     <td></td>
330     <td>
331     <b></b> </td>
332     </tr>
333     <tr>
334     <td colspan="4">
335     </td>
336     </tr>
337     <tr>
338     <td>size</td>
339     <td>U8</td>
340     <td></td>
341     <td>
342     <b></b> </td>
343     </tr>
344     <tr>
345     <td colspan="4">
346     </td>
347     </tr>
348     <tr>
349     <td>handicap</td>
350     <td>U8</td>
351     <td></td>
352     <td>
353     <b></b> </td>
354     </tr>
355     <tr>
356     <td colspan="4">
357     </td>
358     </tr>
359     <tr>
360     <td>komi</td>
361     <td>komi16</td>
362     <td></td>
363     <td>
364     <b></b> </td>
365     </tr>
366     <tr>
367     <td colspan="4">
368     </td>
369     </tr>
370     <tr>
371     <td>timesys</td>
372     <td>U8</td>
373     <td></td>
374     <td>
375     <b></b> </td>
376     </tr>
377     <tr>
378     <td colspan="4">
379     </td>
380     </tr>
381     <tr>
382     <td>time</td>
383     <td>U32</td>
384     <td></td>
385     <td>
386     <b></b> </td>
387     </tr>
388     <tr>
389     <td colspan="4">
390     </td>
391     </tr>
392     <tr>
393     <td>interval</td>
394     <td>U32</td>
395     <td></td>
396     <td>
397     <b></b> </td>
398     </tr>
399     <tr>
400     <td colspan="4">
401     byo-yomi time / canadian time
402     </td>
403     </tr>
404     <tr>
405     <td>count</td>
406     <td>U16</td>
407     <td></td>
408     <td>
409     <b></b> </td>
410     </tr>
411     <tr>
412     <td colspan="4">
413     periods / moves
414     </td>
415     </tr>
416     </table>
417    
418 pcg 1.3 <h2>Structs used in send messages</h2>
419 pcg 1.1
420     <h4>MESSAGE login</h4>
421     NUMERIC TYPE (hex): 0000 SEND<table border="1">
422     <tr>
423     <th>NAME</th>
424     <th>TYPE</th>
425     <th>DEFAULT</th>
426 pcg 1.3 <th>DEC-GUARD</th>
427 pcg 1.1 </tr>
428     <tr>
429     <td colspan="4">
430 pcg 1.9
431     Send on the initial login. The password needs to be set when the
432     guest flag is true.
433    
434 pcg 1.1 </td>
435     </tr>
436     <tr>
437     <td>ver_major</td>
438 pcg 1.3 <td>U32</td>
439 pcg 1.1 <td>2</td>
440 pcg 1.3 <td>
441 pcg 1.4 <b></b> </td>
442 pcg 1.1 </tr>
443     <tr>
444     <td colspan="4">
445     </td>
446     </tr>
447     <tr>
448     <td>ver_minor</td>
449 pcg 1.3 <td>U32</td>
450 pcg 1.1 <td>4</td>
451 pcg 1.3 <td>
452 pcg 1.4 <b></b> </td>
453 pcg 1.1 </tr>
454     <tr>
455     <td colspan="4">
456     </td>
457     </tr>
458     <tr>
459     <td>ver_micro</td>
460 pcg 1.3 <td>U32</td>
461 pcg 1.1 <td>67</td>
462 pcg 1.3 <td>
463 pcg 1.4 <b></b> </td>
464 pcg 1.1 </tr>
465     <tr>
466     <td colspan="4">
467     </td>
468     </tr>
469     <tr>
470 pcg 1.3 <td>name</td>
471     <td>username</td>
472 pcg 1.1 <td></td>
473 pcg 1.3 <td>
474 pcg 1.4 <b></b> </td>
475 pcg 1.1 </tr>
476     <tr>
477     <td colspan="4">
478     </td>
479     </tr>
480     <tr>
481 pcg 1.15 <td>password</td>
482     <td>password</td>
483 pcg 1.1 <td>0</td>
484 pcg 1.3 <td>
485 pcg 1.4 <b></b> </td>
486 pcg 1.1 </tr>
487     <tr>
488     <td colspan="4">
489     </td>
490     </tr>
491     <tr>
492 pcg 1.2 <td>guest</td>
493 pcg 1.3 <td>flag</td>
494 pcg 1.1 <td>1</td>
495 pcg 1.3 <td>
496 pcg 1.4 <b></b> </td>
497 pcg 1.1 </tr>
498     <tr>
499     <td colspan="4">
500     </td>
501     </tr>
502     <tr>
503     <td>_unknown3</td>
504 pcg 1.3 <td>U16</td>
505 pcg 1.1 <td>0</td>
506 pcg 1.3 <td>
507 pcg 1.4 <b></b> </td>
508 pcg 1.1 </tr>
509     <tr>
510     <td colspan="4">
511     </td>
512     </tr>
513     <tr>
514 pcg 1.2 <td>locale</td>
515 pcg 1.3 <td>locale</td>
516     <td>"en_US"</td>
517     <td>
518 pcg 1.4 <b></b> </td>
519 pcg 1.1 </tr>
520     <tr>
521     <td colspan="4">
522     </td>
523     </tr>
524     <tr>
525     <td>clientver</td>
526     <td>DATA</td>
527 pcg 1.3 <td>"1.4.1_01:Swing app:Sun Microsystems Inc."</td>
528     <td>
529 pcg 1.4 <b></b> </td>
530 pcg 1.1 </tr>
531     <tr>
532     <td colspan="4">
533 pcg 1.4 The "default" is the java vm version, not exactly he client version. However,
534     you should always send a tetx like "Jonathan's C client bersion 0.6" or somesuch,
535     so the server can, if necessary, block broken clients or client versions.
536 pcg 1.1 </td>
537     </tr>
538     </table>
539    
540 pcg 1.15 <h4>MESSAGE req_userinfo</h4>
541     NUMERIC TYPE (hex): 0007 SEND<table border="1">
542     <tr>
543     <th>NAME</th>
544     <th>TYPE</th>
545     <th>DEFAULT</th>
546     <th>DEC-GUARD</th>
547     </tr>
548     <tr>
549     <td colspan="4">
550     Request info about a certain user.
551     </td>
552     </tr>
553     <tr>
554     <td>name</td>
555     <td>username</td>
556     <td></td>
557     <td>
558     <b></b> </td>
559     </tr>
560     <tr>
561     <td colspan="4">
562     </td>
563     </tr>
564     </table>
565    
566     <h4>MESSAGE req_userinfo</h4>
567     NUMERIC TYPE (hex): 0007 SEND<table border="1">
568     <tr>
569     <th>NAME</th>
570     <th>TYPE</th>
571     <th>DEFAULT</th>
572     <th>DEC-GUARD</th>
573     </tr>
574     <tr>
575     <td colspan="4">
576     Update user info. Message structure is very similar
577     to "userinfo".
578     </td>
579     </tr>
580     <tr>
581     <td>setpass</td>
582     <td>flag</td>
583     <td></td>
584     <td>
585     <b></b> </td>
586     </tr>
587     <tr>
588     <td colspan="4">
589     Should the password be updated?
590     </td>
591     </tr>
592     <tr>
593     <td>password</td>
594     <td>password</td>
595     <td>0</td>
596     <td>
597     <b></b> </td>
598     </tr>
599     <tr>
600     <td colspan="4">
601     </td>
602     </tr>
603     <tr>
604     <td>realname</td>
605     <td>realname</td>
606     <td></td>
607     <td>
608     <b></b> </td>
609     </tr>
610     <tr>
611     <td colspan="4">
612     </td>
613     </tr>
614     <tr>
615     <td>email</td>
616     <td>email</td>
617     <td></td>
618     <td>
619     <b></b> </td>
620     </tr>
621     <tr>
622     <td colspan="4">
623     </td>
624     </tr>
625     <tr>
626     <td>info</td>
627     <td>userinfo</td>
628     <td></td>
629     <td>
630     <b></b> </td>
631     </tr>
632     <tr>
633     <td colspan="4">
634     </td>
635     </tr>
636     <tr>
637     <td>homepage</td>
638     <td>url</td>
639     <td></td>
640     <td>
641     <b></b> </td>
642     </tr>
643     <tr>
644     <td colspan="4">
645     </td>
646     </tr>
647     <tr>
648     <td>_unused</td>
649     <td>U64</td>
650     <td>0</td>
651     <td>
652     <b></b> </td>
653     </tr>
654     <tr>
655     <td colspan="4">
656     </td>
657     </tr>
658     <tr>
659     <td>_unused</td>
660     <td>U64</td>
661     <td>0</td>
662     <td>
663     <b></b> </td>
664     </tr>
665     <tr>
666     <td colspan="4">
667     </td>
668     </tr>
669     </table>
670    
671 pcg 1.1 <h4>MESSAGE server_stats</h4>
672 pcg 1.2 NUMERIC TYPE (hex): 0014 SEND<table border="1">
673 pcg 1.1 <tr>
674     <th>NAME</th>
675     <th>TYPE</th>
676     <th>DEFAULT</th>
677 pcg 1.3 <th>DEC-GUARD</th>
678 pcg 1.1 </tr>
679     <tr>
680     <td colspan="4">
681     Request server statistics.
682     </td>
683     </tr>
684     </table>
685    
686 pcg 1.15 <h4>MESSAGE req_usergraph</h4>
687     NUMERIC TYPE (hex): 001e SEND<table border="1">
688     <tr>
689     <th>NAME</th>
690     <th>TYPE</th>
691     <th>DEFAULT</th>
692     <th>DEC-GUARD</th>
693     </tr>
694     <tr>
695     <td colspan="4">
696     Request user graph data, (see usergraph).
697     </td>
698     </tr>
699     <tr>
700     <td>name</td>
701     <td>username</td>
702     <td></td>
703     <td>
704     <b></b> </td>
705     </tr>
706     <tr>
707     <td colspan="4">
708     </td>
709     </tr>
710     </table>
711    
712     <h4>MESSAGE fetch_memos</h4>
713     NUMERIC TYPE (hex): 001f SEND<table border="1">
714     <tr>
715     <th>NAME</th>
716     <th>TYPE</th>
717     <th>DEFAULT</th>
718     <th>DEC-GUARD</th>
719     </tr>
720     <tr>
721     <td colspan="4">
722     Unclear. Fetch all outstanding memos?
723     </td>
724     </tr>
725     </table>
726    
727     <h4>MESSAGE req_pic</h4>
728 pcg 1.2 NUMERIC TYPE (hex): 0021 SEND<table border="1">
729 pcg 1.1 <tr>
730     <th>NAME</th>
731     <th>TYPE</th>
732     <th>DEFAULT</th>
733 pcg 1.3 <th>DEC-GUARD</th>
734 pcg 1.1 </tr>
735     <tr>
736     <td colspan="4">
737 pcg 1.9 Request a user picture from the server. Results in a userpic-reply
738     or a timeout :/.
739 pcg 1.1 </td>
740     </tr>
741     <tr>
742     <td>name</td>
743 pcg 1.3 <td>username</td>
744 pcg 1.1 <td></td>
745 pcg 1.3 <td>
746 pcg 1.4 <b></b> </td>
747 pcg 1.1 </tr>
748     <tr>
749     <td colspan="4">
750     </td>
751     </tr>
752     </table>
753    
754 pcg 1.15 <h4>MESSAGE upload_pic</h4>
755 pcg 1.2 NUMERIC TYPE (hex): 0021 SEND<table border="1">
756 pcg 1.1 <tr>
757     <th>NAME</th>
758     <th>TYPE</th>
759     <th>DEFAULT</th>
760 pcg 1.3 <th>DEC-GUARD</th>
761 pcg 1.1 </tr>
762     <tr>
763     <td colspan="4">
764     Same code as pic_req, but with an additional data section that
765 pcg 1.4 must contain a JPEG image that is &lt;=7KB. It must have 141×200 pixels.
766 pcg 1.1 </td>
767     </tr>
768     <tr>
769     <td>name</td>
770 pcg 1.3 <td>username</td>
771 pcg 1.1 <td></td>
772 pcg 1.3 <td>
773 pcg 1.4 <b></b> </td>
774 pcg 1.1 </tr>
775     <tr>
776     <td colspan="4">
777     </td>
778     </tr>
779     <tr>
780     <td>data</td>
781     <td>DATA</td>
782     <td></td>
783 pcg 1.3 <td>
784 pcg 1.4 <b></b> </td>
785 pcg 1.1 </tr>
786     <tr>
787     <td colspan="4">
788     </td>
789     </tr>
790     </table>
791    
792     <h4>MESSAGE gnotice</h4>
793 pcg 1.2 NUMERIC TYPE (hex): 0100 SEND<table border="1">
794 pcg 1.1 <tr>
795     <th>NAME</th>
796     <th>TYPE</th>
797     <th>DEFAULT</th>
798 pcg 1.3 <th>DEC-GUARD</th>
799 pcg 1.1 </tr>
800     <tr>
801     <td colspan="4">
802     Send a global message. Maybe. Never tried, for obvious reasons :/
803     </td>
804     </tr>
805     <tr>
806     <td>notice</td>
807     <td>STRING</td>
808     <td></td>
809 pcg 1.3 <td>
810 pcg 1.4 <b></b> </td>
811 pcg 1.1 </tr>
812     <tr>
813     <td colspan="4">
814     </td>
815     </tr>
816     </table>
817    
818     <h4>MESSAGE list_rooms</h4>
819 pcg 1.2 NUMERIC TYPE (hex): 0318 SEND<table border="1">
820 pcg 1.1 <tr>
821     <th>NAME</th>
822     <th>TYPE</th>
823     <th>DEFAULT</th>
824 pcg 1.3 <th>DEC-GUARD</th>
825 pcg 1.1 </tr>
826     <tr>
827     <td colspan="4">
828 pcg 1.9 List the rooms in a specific group/category. Results in a upd_rooms message.
829 pcg 1.1 </td>
830     </tr>
831     <tr>
832     <td>group</td>
833 pcg 1.3 <td>U8</td>
834 pcg 1.1 <td></td>
835 pcg 1.3 <td>
836 pcg 1.4 <b></b> </td>
837 pcg 1.1 </tr>
838     <tr>
839     <td colspan="4">
840     </td>
841     </tr>
842     </table>
843    
844     <h4>MESSAGE new_room</h4>
845 pcg 1.2 NUMERIC TYPE (hex): 031a SEND<table border="1">
846 pcg 1.1 <tr>
847     <th>NAME</th>
848     <th>TYPE</th>
849     <th>DEFAULT</th>
850 pcg 1.3 <th>DEC-GUARD</th>
851 pcg 1.1 </tr>
852     <tr>
853     <td colspan="4">
854     Create a new room. Not verified.
855     </td>
856     </tr>
857     <tr>
858     <td>name</td>
859 pcg 1.3 <td>username</td>
860 pcg 1.1 <td></td>
861 pcg 1.3 <td>
862 pcg 1.4 <b></b> </td>
863 pcg 1.1 </tr>
864     <tr>
865     <td colspan="4">
866     </td>
867     </tr>
868     <tr>
869     <td>i1</td>
870 pcg 1.3 <td>U32</td>
871 pcg 1.1 <td>0</td>
872 pcg 1.3 <td>
873 pcg 1.4 <b></b> </td>
874 pcg 1.1 </tr>
875     <tr>
876     <td colspan="4">
877     </td>
878     </tr>
879     <tr>
880     <td>b1</td>
881 pcg 1.3 <td>U8</td>
882 pcg 1.1 <td>0</td>
883 pcg 1.3 <td>
884 pcg 1.4 <b></b> </td>
885 pcg 1.1 </tr>
886     <tr>
887     <td colspan="4">
888     </td>
889     </tr>
890     <tr>
891     <td>b2</td>
892 pcg 1.3 <td>U8</td>
893 pcg 1.1 <td>255</td>
894 pcg 1.3 <td>
895 pcg 1.4 <b></b> </td>
896 pcg 1.1 </tr>
897     <tr>
898     <td colspan="4">
899     </td>
900     </tr>
901     <tr>
902     <td>b3</td>
903 pcg 1.3 <td>U8</td>
904 pcg 1.1 <td>255</td>
905 pcg 1.3 <td>
906 pcg 1.4 <b></b> </td>
907 pcg 1.1 </tr>
908     <tr>
909     <td colspan="4">
910     </td>
911     </tr>
912     <tr>
913     <td>group</td>
914 pcg 1.3 <td>U8</td>
915 pcg 1.1 <td>1</td>
916 pcg 1.3 <td>
917 pcg 1.4 <b></b> </td>
918 pcg 1.1 </tr>
919     <tr>
920     <td colspan="4">
921     </td>
922     </tr>
923     <tr>
924     <td>name</td>
925     <td>STRING</td>
926     <td></td>
927 pcg 1.3 <td>
928 pcg 1.4 <b></b> </td>
929 pcg 1.1 </tr>
930     <tr>
931     <td colspan="4">
932     </td>
933     </tr>
934     <tr>
935     <td>description</td>
936     <td>STRING</td>
937     <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>flags</td>
947 pcg 1.3 <td>U8</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     0x10 .. private room etc.. see code
955     </td>
956     </tr>
957     </table>
958    
959 pcg 1.15 <h4>MESSAGE req_game_record</h4>
960 pcg 1.14 NUMERIC TYPE (hex): 0413 SEND<table border="1">
961     <tr>
962     <th>NAME</th>
963     <th>TYPE</th>
964     <th>DEFAULT</th>
965     <th>DEC-GUARD</th>
966     </tr>
967     <tr>
968     <td colspan="4">
969     Requests part of the users game record to be sent (game_record reply).
970     </td>
971     </tr>
972     <tr>
973     <td>name</td>
974     <td>username</td>
975     <td></td>
976     <td>
977     <b></b> </td>
978     </tr>
979     <tr>
980     <td colspan="4">
981     </td>
982     </tr>
983     <tr>
984     <td>timestamp</td>
985     <td>timestamp</td>
986     <td></td>
987     <td>
988     <b></b> </td>
989     </tr>
990     <tr>
991     <td colspan="4">
992     If zero, start at the newest games, else only send games
993     before the given timestap.
994     </td>
995     </tr>
996     </table>
997    
998 pcg 1.1 <h4>MESSAGE join_room</h4>
999     NUMERIC TYPE (hex): 4300 SEND<table border="1">
1000     <tr>
1001     <th>NAME</th>
1002     <th>TYPE</th>
1003     <th>DEFAULT</th>
1004 pcg 1.3 <th>DEC-GUARD</th>
1005 pcg 1.1 </tr>
1006     <tr>
1007     <td colspan="4">
1008 pcg 1.9 Joins the given room. join_room messages for yourself
1009     and all users in that room, as well as the initial gamelist, are
1010     send if the room exists. If not, timeout...
1011 pcg 1.1 </td>
1012     </tr>
1013     <tr>
1014     <td>channel</td>
1015 pcg 1.3 <td>U16</td>
1016 pcg 1.1 <td></td>
1017 pcg 1.3 <td>
1018 pcg 1.4 <b></b> </td>
1019 pcg 1.1 </tr>
1020     <tr>
1021     <td colspan="4">
1022     </td>
1023     </tr>
1024     <tr>
1025     <td>user</td>
1026     <td>user</td>
1027     <td></td>
1028 pcg 1.3 <td>
1029 pcg 1.4 <b></b> </td>
1030 pcg 1.1 </tr>
1031     <tr>
1032     <td colspan="4">
1033     </td>
1034     </tr>
1035     </table>
1036    
1037     <h4>MESSAGE msg_room</h4>
1038     NUMERIC TYPE (hex): 4301 SEND<table border="1">
1039     <tr>
1040     <th>NAME</th>
1041     <th>TYPE</th>
1042     <th>DEFAULT</th>
1043 pcg 1.3 <th>DEC-GUARD</th>
1044 pcg 1.1 </tr>
1045     <tr>
1046     <td colspan="4">
1047 pcg 1.9 Send a message to the room.
1048 pcg 1.1 </td>
1049     </tr>
1050     <tr>
1051     <td>channel</td>
1052 pcg 1.3 <td>U16</td>
1053 pcg 1.1 <td></td>
1054 pcg 1.3 <td>
1055 pcg 1.4 <b></b> </td>
1056 pcg 1.1 </tr>
1057     <tr>
1058     <td colspan="4">
1059     </td>
1060     </tr>
1061     <tr>
1062     <td>name</td>
1063 pcg 1.3 <td>username</td>
1064 pcg 1.1 <td></td>
1065 pcg 1.3 <td>
1066 pcg 1.4 <b></b> </td>
1067 pcg 1.1 </tr>
1068     <tr>
1069     <td colspan="4">
1070 pcg 1.9 Must be the login-name of the user.
1071 pcg 1.1 </td>
1072     </tr>
1073     <tr>
1074     <td>message</td>
1075     <td>STRING</td>
1076     <td></td>
1077 pcg 1.3 <td>
1078 pcg 1.4 <b></b> </td>
1079 pcg 1.1 </tr>
1080     <tr>
1081     <td colspan="4">
1082     </td>
1083     </tr>
1084     </table>
1085    
1086     <h4>MESSAGE part_room</h4>
1087     NUMERIC TYPE (hex): 4302 SEND<table border="1">
1088     <tr>
1089     <th>NAME</th>
1090     <th>TYPE</th>
1091     <th>DEFAULT</th>
1092 pcg 1.3 <th>DEC-GUARD</th>
1093 pcg 1.1 </tr>
1094     <tr>
1095     <td colspan="4">
1096 pcg 1.9 Remove yourself (or maybe others as admin) from a room.
1097 pcg 1.1 </td>
1098     </tr>
1099     <tr>
1100     <td>channel</td>
1101 pcg 1.3 <td>U16</td>
1102 pcg 1.1 <td></td>
1103 pcg 1.3 <td>
1104 pcg 1.4 <b></b> </td>
1105 pcg 1.1 </tr>
1106     <tr>
1107     <td colspan="4">
1108     </td>
1109     </tr>
1110     <tr>
1111     <td>name</td>
1112 pcg 1.3 <td>username</td>
1113 pcg 1.1 <td></td>
1114 pcg 1.3 <td>
1115 pcg 1.4 <b></b> </td>
1116 pcg 1.1 </tr>
1117     <tr>
1118     <td colspan="4">
1119     </td>
1120     </tr>
1121     </table>
1122    
1123     <h4>MESSAGE new_game</h4>
1124     NUMERIC TYPE (hex): 4305 SEND<table border="1">
1125     <tr>
1126     <th>NAME</th>
1127     <th>TYPE</th>
1128     <th>DEFAULT</th>
1129 pcg 1.3 <th>DEC-GUARD</th>
1130 pcg 1.1 </tr>
1131     <tr>
1132     <td colspan="4">
1133 pcg 1.15 Unclear. Start a new game.
1134 pcg 1.1 </td>
1135     </tr>
1136     <tr>
1137     <td>channel</td>
1138 pcg 1.3 <td>U16</td>
1139 pcg 1.1 <td></td>
1140 pcg 1.3 <td>
1141 pcg 1.4 <b></b> </td>
1142 pcg 1.1 </tr>
1143     <tr>
1144     <td colspan="4">
1145     </td>
1146     </tr>
1147     <tr>
1148     <td>id</td>
1149 pcg 1.3 <td>U16</td>
1150 pcg 1.1 <td></td>
1151 pcg 1.3 <td>
1152 pcg 1.4 <b></b> </td>
1153 pcg 1.1 </tr>
1154     <tr>
1155     <td colspan="4">
1156     </td>
1157     </tr>
1158     <tr>
1159     <td>gametype</td>
1160 pcg 1.3 <td>U32</td>
1161 pcg 1.1 <td></td>
1162 pcg 1.3 <td>
1163 pcg 1.4 <b></b> </td>
1164 pcg 1.1 </tr>
1165     <tr>
1166     <td colspan="4">
1167     </td>
1168     </tr>
1169     <tr>
1170     <td>rules</td>
1171     <td>rules</td>
1172     <td></td>
1173 pcg 1.3 <td>
1174 pcg 1.4 <b></b> </td>
1175 pcg 1.1 </tr>
1176     <tr>
1177     <td colspan="4">
1178     </td>
1179     </tr>
1180     <tr>
1181     <td>notes</td>
1182     <td>STRING</td>
1183     <td></td>
1184 pcg 1.3 <td>
1185 pcg 1.4 <b></b> </td>
1186 pcg 1.1 </tr>
1187     <tr>
1188     <td colspan="4">
1189     </td>
1190     </tr>
1191     </table>
1192    
1193     <h4>MESSAGE req_games</h4>
1194     NUMERIC TYPE (hex): 430b SEND<table border="1">
1195     <tr>
1196     <th>NAME</th>
1197     <th>TYPE</th>
1198     <th>DEFAULT</th>
1199 pcg 1.3 <th>DEC-GUARD</th>
1200 pcg 1.1 </tr>
1201     <tr>
1202     <td colspan="4">
1203 pcg 1.9 Request to update room game list (send this once per minute to get
1204     updated). Results in upd_games messages.
1205 pcg 1.1 </td>
1206     </tr>
1207     <tr>
1208     <td>channel</td>
1209 pcg 1.3 <td>U16</td>
1210 pcg 1.1 <td></td>
1211 pcg 1.3 <td>
1212 pcg 1.4 <b></b> </td>
1213 pcg 1.1 </tr>
1214     <tr>
1215     <td colspan="4">
1216     </td>
1217     </tr>
1218     </table>
1219    
1220     <h4>MESSAGE req_desc</h4>
1221     NUMERIC TYPE (hex): 4319 SEND<table border="1">
1222     <tr>
1223     <th>NAME</th>
1224     <th>TYPE</th>
1225     <th>DEFAULT</th>
1226 pcg 1.3 <th>DEC-GUARD</th>
1227 pcg 1.1 </tr>
1228     <tr>
1229     <td colspan="4">
1230     Request room description.
1231     </td>
1232     </tr>
1233     <tr>
1234     <td>channel</td>
1235 pcg 1.3 <td>U16</td>
1236 pcg 1.1 <td></td>
1237 pcg 1.3 <td>
1238 pcg 1.4 <b></b> </td>
1239 pcg 1.1 </tr>
1240     <tr>
1241     <td colspan="4">
1242     </td>
1243     </tr>
1244     </table>
1245    
1246     <h4>MESSAGE send_chal</h4>
1247     NUMERIC TYPE (hex): 4400 SEND<table border="1">
1248     <tr>
1249     <th>NAME</th>
1250     <th>TYPE</th>
1251     <th>DEFAULT</th>
1252 pcg 1.3 <th>DEC-GUARD</th>
1253 pcg 1.1 </tr>
1254     <tr>
1255     <td colspan="4">
1256 pcg 1.9 Unclear.
1257 pcg 1.1 </td>
1258     </tr>
1259     <tr>
1260     <td>channel</td>
1261 pcg 1.3 <td>U16</td>
1262 pcg 1.1 <td></td>
1263 pcg 1.3 <td>
1264 pcg 1.4 <b></b> </td>
1265 pcg 1.1 </tr>
1266     <tr>
1267     <td colspan="4">
1268     </td>
1269     </tr>
1270     <tr>
1271     <td>black</td>
1272 pcg 1.3 <td>username</td>
1273 pcg 1.1 <td></td>
1274 pcg 1.3 <td>
1275 pcg 1.4 <b></b> </td>
1276 pcg 1.1 </tr>
1277     <tr>
1278     <td colspan="4">
1279     </td>
1280     </tr>
1281     <tr>
1282     <td>white</td>
1283 pcg 1.3 <td>username</td>
1284 pcg 1.1 <td></td>
1285 pcg 1.3 <td>
1286 pcg 1.4 <b></b> </td>
1287 pcg 1.1 </tr>
1288     <tr>
1289     <td colspan="4">
1290     More following... TREE or challenge.
1291     </td>
1292     </tr>
1293     </table>
1294    
1295     <h4>MESSAGE join_game</h4>
1296     NUMERIC TYPE (hex): 4403 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 pcg 1.9 Join a game. See join_room.
1306 pcg 1.1 </td>
1307     </tr>
1308     <tr>
1309 pcg 1.5 <td>channel</td>
1310     <td>U16</td>
1311 pcg 1.1 <td></td>
1312 pcg 1.3 <td>
1313 pcg 1.4 <b></b> </td>
1314 pcg 1.1 </tr>
1315     <tr>
1316     <td colspan="4">
1317     </td>
1318     </tr>
1319     <tr>
1320 pcg 1.5 <td>user</td>
1321     <td>user</td>
1322 pcg 1.1 <td></td>
1323 pcg 1.3 <td>
1324 pcg 1.4 <b></b> </td>
1325 pcg 1.1 </tr>
1326     <tr>
1327     <td colspan="4">
1328     </td>
1329     </tr>
1330     </table>
1331    
1332     <h4>MESSAGE part_game</h4>
1333     NUMERIC TYPE (hex): 4404 SEND<table border="1">
1334     <tr>
1335     <th>NAME</th>
1336     <th>TYPE</th>
1337     <th>DEFAULT</th>
1338 pcg 1.3 <th>DEC-GUARD</th>
1339 pcg 1.1 </tr>
1340     <tr>
1341     <td colspan="4">
1342 pcg 1.9 Leave (or kick as admin?) a certain user from a game.
1343 pcg 1.1 </td>
1344     </tr>
1345     <tr>
1346     <td>channel</td>
1347 pcg 1.3 <td>U16</td>
1348 pcg 1.1 <td></td>
1349 pcg 1.3 <td>
1350 pcg 1.4 <b></b> </td>
1351 pcg 1.1 </tr>
1352     <tr>
1353     <td colspan="4">
1354     </td>
1355     </tr>
1356     <tr>
1357     <td>name</td>
1358 pcg 1.3 <td>username</td>
1359 pcg 1.1 <td></td>
1360 pcg 1.3 <td>
1361 pcg 1.4 <b></b> </td>
1362 pcg 1.1 </tr>
1363     <tr>
1364     <td colspan="4">
1365     </td>
1366     </tr>
1367     </table>
1368    
1369     <h4>MESSAGE set_tree</h4>
1370     NUMERIC TYPE (hex): 4405 SEND<table border="1">
1371     <tr>
1372     <th>NAME</th>
1373     <th>TYPE</th>
1374     <th>DEFAULT</th>
1375 pcg 1.3 <th>DEC-GUARD</th>
1376 pcg 1.1 </tr>
1377     <tr>
1378     <td colspan="4">
1379 pcg 1.9 Upload a partial game tree to the server. This is used
1380     to send moves and even in-game comments to the server. For the comments,
1381     the server prepends the username and rank.
1382 pcg 1.1 </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>tree</td>
1397     <td>TREE</td>
1398     <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 get_tree</h4>
1409     NUMERIC TYPE (hex): 4408 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 pcg 1.9 Request the game tree starting at a given node. This is used
1419     when the server only sends a partial tree (with end code "more").
1420 pcg 1.1 </td>
1421     </tr>
1422     <tr>
1423     <td>channel</td>
1424 pcg 1.3 <td>U16</td>
1425 pcg 1.1 <td></td>
1426 pcg 1.3 <td>
1427 pcg 1.4 <b></b> </td>
1428 pcg 1.1 </tr>
1429     <tr>
1430     <td colspan="4">
1431     </td>
1432     </tr>
1433     <tr>
1434     <td>node</td>
1435 pcg 1.3 <td>U32</td>
1436 pcg 1.1 <td></td>
1437 pcg 1.3 <td>
1438 pcg 1.4 <b></b> </td>
1439 pcg 1.1 </tr>
1440     <tr>
1441     <td colspan="4">
1442     </td>
1443     </tr>
1444     </table>
1445    
1446     <h4>MESSAGE claim_win</h4>
1447     NUMERIC TYPE (hex): 440c SEND<table border="1">
1448     <tr>
1449     <th>NAME</th>
1450     <th>TYPE</th>
1451     <th>DEFAULT</th>
1452 pcg 1.3 <th>DEC-GUARD</th>
1453 pcg 1.1 </tr>
1454     <tr>
1455     <td colspan="4">
1456 pcg 1.9 Unclear.
1457 pcg 1.1 </td>
1458     </tr>
1459     <tr>
1460     <td>channel</td>
1461 pcg 1.3 <td>U16</td>
1462 pcg 1.1 <td></td>
1463 pcg 1.3 <td>
1464 pcg 1.4 <b></b> </td>
1465 pcg 1.1 </tr>
1466     <tr>
1467     <td colspan="4">
1468     </td>
1469     </tr>
1470     <tr>
1471     <td>_byte</td>
1472 pcg 1.3 <td>U8 </td>
1473 pcg 1.1 <td></td>
1474 pcg 1.3 <td>
1475 pcg 1.4 <b></b> </td>
1476 pcg 1.1 </tr>
1477     <tr>
1478     <td colspan="4">
1479     Player colour maybe? Unclear.
1480     </td>
1481     </tr>
1482     </table>
1483    
1484     <h4>MESSAGE add_time</h4>
1485     NUMERIC TYPE (hex): 440d SEND<table border="1">
1486     <tr>
1487     <th>NAME</th>
1488     <th>TYPE</th>
1489     <th>DEFAULT</th>
1490 pcg 1.3 <th>DEC-GUARD</th>
1491 pcg 1.1 </tr>
1492     <tr>
1493     <td colspan="4">
1494 pcg 1.9 Not checked.
1495    
1496 pcg 1.1 </td>
1497     </tr>
1498     <tr>
1499     <td>channel</td>
1500 pcg 1.3 <td>U16</td>
1501 pcg 1.1 <td></td>
1502 pcg 1.3 <td>
1503 pcg 1.4 <b></b> </td>
1504 pcg 1.1 </tr>
1505     <tr>
1506     <td colspan="4">
1507     </td>
1508     </tr>
1509     <tr>
1510     <td>time</td>
1511 pcg 1.3 <td>U32</td>
1512 pcg 1.1 <td></td>
1513 pcg 1.3 <td>
1514 pcg 1.4 <b></b> </td>
1515 pcg 1.1 </tr>
1516     <tr>
1517     <td colspan="4">
1518     </td>
1519     </tr>
1520     <tr>
1521     <td>player</td>
1522 pcg 1.3 <td>U8</td>
1523 pcg 1.1 <td></td>
1524 pcg 1.3 <td>
1525 pcg 1.4 <b></b> </td>
1526 pcg 1.1 </tr>
1527     <tr>
1528     <td colspan="4">
1529     </td>
1530     </tr>
1531     </table>
1532    
1533     <h4>MESSAGE grant_undo</h4>
1534     NUMERIC TYPE (hex): 440f SEND<table border="1">
1535     <tr>
1536     <th>NAME</th>
1537     <th>TYPE</th>
1538     <th>DEFAULT</th>
1539 pcg 1.3 <th>DEC-GUARD</th>
1540 pcg 1.1 </tr>
1541     <tr>
1542     <td colspan="4">
1543 pcg 1.9 Can be send after a req_undo message was received to grant the undo.
1544 pcg 1.1 </td>
1545     </tr>
1546     <tr>
1547     <td>channel</td>
1548 pcg 1.3 <td>U16</td>
1549 pcg 1.1 <td></td>
1550 pcg 1.3 <td>
1551 pcg 1.4 <b></b> </td>
1552 pcg 1.1 </tr>
1553     <tr>
1554     <td colspan="4">
1555     </td>
1556     </tr>
1557     </table>
1558    
1559     <h4>MESSAGE resign_game</h4>
1560     NUMERIC TYPE (hex): 4410 SEND<table border="1">
1561     <tr>
1562     <th>NAME</th>
1563     <th>TYPE</th>
1564     <th>DEFAULT</th>
1565 pcg 1.3 <th>DEC-GUARD</th>
1566 pcg 1.1 </tr>
1567     <tr>
1568     <td colspan="4">
1569 pcg 1.9 Resign the game.
1570 pcg 1.1 </td>
1571     </tr>
1572     <tr>
1573     <td>channel</td>
1574 pcg 1.3 <td>U16</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>player</td>
1585 pcg 1.3 <td>U8</td>
1586 pcg 1.1 <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     </td>
1593     </tr>
1594     </table>
1595    
1596     <h4>MESSAGE set_teacher</h4>
1597     NUMERIC TYPE (hex): 441a SEND<table border="1">
1598     <tr>
1599     <th>NAME</th>
1600     <th>TYPE</th>
1601     <th>DEFAULT</th>
1602 pcg 1.3 <th>DEC-GUARD</th>
1603 pcg 1.1 </tr>
1604     <tr>
1605     <td colspan="4">
1606 pcg 1.9 Change the teacher to somebody else (or possibly yourself == take it).
1607 pcg 1.1 </td>
1608     </tr>
1609     <tr>
1610     <td>channel</td>
1611 pcg 1.3 <td>U16</td>
1612 pcg 1.1 <td></td>
1613 pcg 1.3 <td>
1614 pcg 1.4 <b></b> </td>
1615 pcg 1.1 </tr>
1616     <tr>
1617     <td colspan="4">
1618     </td>
1619     </tr>
1620     <tr>
1621     <td>name</td>
1622 pcg 1.3 <td>username</td>
1623 pcg 1.1 <td></td>
1624 pcg 1.3 <td>
1625 pcg 1.4 <b></b> </td>
1626 pcg 1.1 </tr>
1627     <tr>
1628     <td colspan="4">
1629     </td>
1630     </tr>
1631     </table>
1632    
1633     <h4>MESSAGE add_user</h4>
1634     NUMERIC TYPE (hex): 4422 SEND<table border="1">
1635     <tr>
1636     <th>NAME</th>
1637     <th>TYPE</th>
1638     <th>DEFAULT</th>
1639 pcg 1.3 <th>DEC-GUARD</th>
1640 pcg 1.1 </tr>
1641     <tr>
1642     <td colspan="4">
1643 pcg 1.9 Unclear. Maybe allow users to talk? No idea, really.
1644    
1645 pcg 1.1 </td>
1646     </tr>
1647     <tr>
1648     <td>channel</td>
1649 pcg 1.3 <td>U16</td>
1650 pcg 1.1 <td></td>
1651 pcg 1.3 <td>
1652 pcg 1.4 <b></b> </td>
1653 pcg 1.1 </tr>
1654     <tr>
1655     <td colspan="4">
1656     </td>
1657     </tr>
1658     <tr>
1659     <td>othername</td>
1660 pcg 1.3 <td>username</td>
1661 pcg 1.1 <td></td>
1662 pcg 1.3 <td>
1663 pcg 1.4 <b></b> </td>
1664 pcg 1.1 </tr>
1665     <tr>
1666     <td colspan="4">
1667     </td>
1668     </tr>
1669     <tr>
1670     <td>name</td>
1671 pcg 1.3 <td>username</td>
1672 pcg 1.1 <td></td>
1673 pcg 1.3 <td>
1674 pcg 1.4 <b></b> </td>
1675 pcg 1.1 </tr>
1676     <tr>
1677     <td colspan="4">; # gives user access to the game (to what? ;)
1678     </td>
1679     </tr>
1680     </table>
1681    
1682     <h4>MESSAGE set_privacy</h4>
1683     NUMERIC TYPE (hex): 4423 SEND<table border="1">
1684     <tr>
1685     <th>NAME</th>
1686     <th>TYPE</th>
1687     <th>DEFAULT</th>
1688 pcg 1.3 <th>DEC-GUARD</th>
1689 pcg 1.1 </tr>
1690     <tr>
1691     <td colspan="4">
1692 pcg 1.9 Probably sets the "quiet" flag. Not checked.
1693 pcg 1.1 </td>
1694     </tr>
1695     <tr>
1696     <td>channel</td>
1697 pcg 1.3 <td>U16</td>
1698 pcg 1.1 <td></td>
1699 pcg 1.3 <td>
1700 pcg 1.4 <b></b> </td>
1701 pcg 1.1 </tr>
1702     <tr>
1703     <td colspan="4">
1704     </td>
1705     </tr>
1706     <tr>
1707     <td>private</td>
1708 pcg 1.3 <td>U8</td>
1709 pcg 1.1 <td></td>
1710 pcg 1.3 <td>
1711 pcg 1.4 <b></b> </td>
1712 pcg 1.1 </tr>
1713     <tr>
1714     <td colspan="4">
1715     </td>
1716     </tr>
1717     </table>
1718    
1719     <h4>MESSAGE reject_chal</h4>
1720     NUMERIC TYPE (hex): 4429 SEND<table border="1">
1721     <tr>
1722     <th>NAME</th>
1723     <th>TYPE</th>
1724     <th>DEFAULT</th>
1725 pcg 1.3 <th>DEC-GUARD</th>
1726 pcg 1.1 </tr>
1727     <tr>
1728     <td colspan="4">
1729 pcg 1.9 Reject a challenge from a given user. Not checked.
1730    
1731 pcg 1.1 </td>
1732     </tr>
1733     <tr>
1734     <td>channel</td>
1735 pcg 1.3 <td>U16</td>
1736 pcg 1.1 <td></td>
1737 pcg 1.3 <td>
1738 pcg 1.4 <b></b> </td>
1739 pcg 1.1 </tr>
1740     <tr>
1741     <td colspan="4">
1742     </td>
1743     </tr>
1744     <tr>
1745     <td>name</td>
1746 pcg 1.3 <td>username</td>
1747 pcg 1.1 <td></td>
1748 pcg 1.3 <td>
1749 pcg 1.4 <b></b> </td>
1750 pcg 1.1 </tr>
1751     <tr>
1752     <td colspan="4">
1753     </td>
1754     </tr>
1755     </table>
1756    
1757     <h4>MESSAGE req_result</h4>
1758     NUMERIC TYPE (hex): 4433 SEND<table border="1">
1759     <tr>
1760     <th>NAME</th>
1761     <th>TYPE</th>
1762     <th>DEFAULT</th>
1763 pcg 1.3 <th>DEC-GUARD</th>
1764 pcg 1.1 </tr>
1765     <tr>
1766     <td colspan="4">
1767 pcg 1.9 I forgot.
1768    
1769 pcg 1.1 </td>
1770     </tr>
1771     <tr>
1772     <td>channel</td>
1773 pcg 1.3 <td>U16</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     </table>
1783    
1784 pcg 1.3 <h2>Structs mainly used in receive messages</h2>
1785 pcg 1.1
1786 pcg 1.3 <h4>STRUCTURE challenge_defaults</h4>
1787 pcg 1.1 <table border="1">
1788     <tr>
1789     <th>NAME</th>
1790     <th>TYPE</th>
1791     <th>DEFAULT</th>
1792 pcg 1.3 <th>DEC-GUARD</th>
1793 pcg 1.1 </tr>
1794     <tr>
1795     <td colspan="4">
1796 pcg 1.9 Send soon after log-in to set the defaults for game challenges.
1797 pcg 1.1 </td>
1798     </tr>
1799     <tr>
1800     <td>gametype</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>size</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     <td colspan="4">
1819     </td>
1820     </tr>
1821     <tr>
1822     <td>timesys</td>
1823 pcg 1.3 <td>U32</td>
1824 pcg 1.1 <td></td>
1825 pcg 1.3 <td>
1826 pcg 1.4 <b></b> </td>
1827 pcg 1.1 </tr>
1828     <tr>
1829     <td colspan="4">
1830     </td>
1831     </tr>
1832     <tr>
1833     <td>time</td>
1834 pcg 1.3 <td>U32</td>
1835 pcg 1.1 <td></td>
1836 pcg 1.3 <td>
1837 pcg 1.4 <b></b> </td>
1838 pcg 1.1 </tr>
1839     <tr>
1840     <td colspan="4">
1841     </td>
1842     </tr>
1843     <tr>
1844     <td>byo_time</td>
1845 pcg 1.3 <td>U32</td>
1846 pcg 1.1 <td></td>
1847 pcg 1.3 <td>
1848 pcg 1.4 <b></b> </td>
1849 pcg 1.1 </tr>
1850     <tr>
1851     <td colspan="4">
1852     </td>
1853     </tr>
1854     <tr>
1855     <td>byo_periods</td>
1856 pcg 1.3 <td>U32</td>
1857 pcg 1.1 <td></td>
1858 pcg 1.3 <td>
1859 pcg 1.4 <b></b> </td>
1860 pcg 1.1 </tr>
1861     <tr>
1862     <td colspan="4">
1863     </td>
1864     </tr>
1865     <tr>
1866     <td>can_time</td>
1867 pcg 1.3 <td>U32</td>
1868 pcg 1.1 <td></td>
1869 pcg 1.3 <td>
1870 pcg 1.4 <b></b> </td>
1871 pcg 1.1 </tr>
1872     <tr>
1873     <td colspan="4">
1874     </td>
1875     </tr>
1876     <tr>
1877     <td>can_stones</td>
1878 pcg 1.3 <td>U32</td>
1879 pcg 1.1 <td></td>
1880 pcg 1.3 <td>
1881 pcg 1.4 <b></b> </td>
1882 pcg 1.1 </tr>
1883     <tr>
1884 pcg 1.3 <td colspan="4">
1885 pcg 1.1 </td>
1886     </tr>
1887     </table>
1888    
1889 pcg 1.3 <h4>STRUCTURE challenge</h4>
1890     CLASS: KGS::Challenge<br />
1891 pcg 1.1 <table border="1">
1892     <tr>
1893     <th>NAME</th>
1894     <th>TYPE</th>
1895     <th>DEFAULT</th>
1896 pcg 1.3 <th>DEC-GUARD</th>
1897 pcg 1.1 </tr>
1898     <tr>
1899     <td colspan="4">
1900 pcg 1.9 A challenge.
1901    
1902 pcg 1.1 </td>
1903     </tr>
1904     <tr>
1905     <td>user1</td>
1906     <td>user</td>
1907     <td></td>
1908 pcg 1.3 <td>
1909 pcg 1.4 <b></b> </td>
1910 pcg 1.1 </tr>
1911     <tr>
1912     <td colspan="4">
1913     </td>
1914     </tr>
1915     <tr>
1916     <td>user2</td>
1917     <td>user</td>
1918     <td></td>
1919 pcg 1.3 <td>
1920 pcg 1.4 <b></b> </td>
1921 pcg 1.1 </tr>
1922     <tr>
1923     <td colspan="4">
1924     </td>
1925     </tr>
1926     <tr>
1927     <td>gametype</td>
1928 pcg 1.3 <td>U32</td>
1929 pcg 1.1 <td></td>
1930 pcg 1.3 <td>
1931 pcg 1.4 <b></b> </td>
1932 pcg 1.1 </tr>
1933     <tr>
1934     <td colspan="4">
1935     </td>
1936     </tr>
1937     <tr>
1938     <td>rules</td>
1939     <td>rules</td>
1940     <td></td>
1941 pcg 1.3 <td>
1942 pcg 1.4 <b></b> </td>
1943 pcg 1.1 </tr>
1944     <tr>
1945     <td colspan="4">
1946     Maybe the rules" are in TREE format. I forgot.
1947     </td>
1948     </tr>
1949     </table>
1950    
1951 pcg 1.3 <h4>STRUCTURE game</h4>
1952     CLASS: KGS::Game<br />
1953 pcg 1.1 <table border="1">
1954     <tr>
1955     <th>NAME</th>
1956     <th>TYPE</th>
1957     <th>DEFAULT</th>
1958 pcg 1.3 <th>DEC-GUARD</th>
1959 pcg 1.1 </tr>
1960     <tr>
1961     <td colspan="4">
1962 pcg 1.9 Basic information about a game. Used in rooms for the gamelist and
1963     in games to detect when a game is saved, changed type (e.g. R =&gt; D)
1964     etc.
1965    
1966 pcg 1.1 </td>
1967     </tr>
1968     <tr>
1969     <td>channel</td>
1970 pcg 1.3 <td>U16</td>
1971 pcg 1.1 <td></td>
1972 pcg 1.3 <td>
1973 pcg 1.4 <b></b> </td>
1974 pcg 1.1 </tr>
1975     <tr>
1976     <td colspan="4">
1977     </td>
1978     </tr>
1979     <tr>
1980 pcg 1.3 <td>type</td>
1981     <td>U32</td>
1982 pcg 1.1 <td></td>
1983 pcg 1.3 <td>
1984 pcg 1.4 <b></b> </td>
1985 pcg 1.1 </tr>
1986     <tr>
1987     <td colspan="4">
1988     </td>
1989     </tr>
1990     <tr>
1991     <td>user1</td>
1992     <td>user</td>
1993     <td></td>
1994 pcg 1.3 <td>
1995 pcg 1.4 <b></b> </td>
1996 pcg 1.1 </tr>
1997     <tr>
1998     <td colspan="4">
1999     White
2000     </td>
2001     </tr>
2002     <tr>
2003     <td>user2</td>
2004     <td>user</td>
2005     <td></td>
2006 pcg 1.3 <td>
2007 pcg 1.4 <b></b> </td>
2008 pcg 1.1 </tr>
2009     <tr>
2010     <td colspan="4">
2011     Black
2012     </td>
2013     </tr>
2014     <tr>
2015     <td>user3</td>
2016     <td>user</td>
2017     <td></td>
2018 pcg 1.3 <td>
2019 pcg 1.4 <b></b> </td>
2020 pcg 1.1 </tr>
2021     <tr>
2022     <td colspan="4">
2023     Owner
2024     </td>
2025     </tr>
2026     <tr>
2027     <td>size</td>
2028 pcg 1.3 <td>U32</td>
2029 pcg 1.1 <td></td>
2030 pcg 1.3 <td>
2031 pcg 1.4 <b></b> </td>
2032 pcg 1.1 </tr>
2033     <tr>
2034     <td colspan="4">
2035     </td>
2036     </tr>
2037     <tr>
2038     <td>handicap</td>
2039     <td>I32</td>
2040     <td></td>
2041 pcg 1.3 <td>
2042 pcg 1.4 <b></b> </td>
2043 pcg 1.1 </tr>
2044     <tr>
2045     <td colspan="4">
2046     &lt; 0 not fully setup
2047     </td>
2048     </tr>
2049     <tr>
2050     <td>komi</td>
2051 pcg 1.6 <td>komi32</td>
2052 pcg 1.1 <td></td>
2053 pcg 1.3 <td>
2054 pcg 1.4 <b></b> </td>
2055 pcg 1.1 </tr>
2056     <tr>
2057     <td colspan="4">
2058     </td>
2059     </tr>
2060     <tr>
2061     <td>moves</td>
2062 pcg 1.13 <td>I16</td>
2063 pcg 1.1 <td></td>
2064 pcg 1.3 <td>
2065 pcg 1.4 <b></b> </td>
2066 pcg 1.1 </tr>
2067     <tr>
2068     <td colspan="4">
2069 pcg 1.12 This field reflects either the movenum or the score, sorry, not even guards help, as
2070 pcg 1.13 the flags to determine that are _after_ the field. Arg. Divide by two to get the actual
2071     score (NOT score16!).
2072 pcg 1.1 </td>
2073     </tr>
2074     <tr>
2075     <td>flags</td>
2076 pcg 1.3 <td>U16</td>
2077 pcg 1.1 <td></td>
2078 pcg 1.3 <td>
2079 pcg 1.4 <b></b> </td>
2080 pcg 1.1 </tr>
2081     <tr>
2082     <td colspan="4">
2083     </td>
2084     </tr>
2085     <tr>
2086     <td>observers</td>
2087 pcg 1.3 <td>U32</td>
2088 pcg 1.1 <td></td>
2089 pcg 1.3 <td>
2090 pcg 1.4 <b></b> </td>
2091 pcg 1.1 </tr>
2092     <tr>
2093     <td colspan="4">
2094     </td>
2095     </tr>
2096     <tr>
2097     <td>saved</td>
2098 pcg 1.3 <td>flag</td>
2099 pcg 1.1 <td></td>
2100 pcg 1.3 <td>
2101 pcg 1.4 <b></b> </td>
2102 pcg 1.1 </tr>
2103     <tr>
2104     <td colspan="4">
2105     </td>
2106     </tr>
2107     <tr>
2108     <td>notes</td>
2109     <td>STRING</td>
2110     <td></td>
2111 pcg 1.3 <td>
2112 pcg 1.4 <b>handicap</b> &lt; 0</td>
2113 pcg 1.1 </tr>
2114     <tr>
2115     <td colspan="4">
2116     </td>
2117     </tr>
2118     </table>
2119    
2120 pcg 1.3 <h4>STRUCTURE room_obs</h4>
2121 pcg 1.1 <table border="1">
2122     <tr>
2123     <th>NAME</th>
2124     <th>TYPE</th>
2125     <th>DEFAULT</th>
2126 pcg 1.3 <th>DEC-GUARD</th>
2127 pcg 1.1 </tr>
2128     <tr>
2129     <td colspan="4">
2130 pcg 1.9 Obsolete.
2131    
2132 pcg 1.1 </td>
2133     </tr>
2134     <tr>
2135     <td>name</td>
2136 pcg 1.3 <td>roomname</td>
2137 pcg 1.1 <td></td>
2138 pcg 1.3 <td>
2139 pcg 1.4 <b></b> </td>
2140 pcg 1.1 </tr>
2141     <tr>
2142     <td colspan="4">
2143     </td>
2144     </tr>
2145     <tr>
2146     <td>channel</td>
2147 pcg 1.3 <td>U16</td>
2148 pcg 1.1 <td></td>
2149 pcg 1.3 <td>
2150 pcg 1.4 <b></b> </td>
2151 pcg 1.1 </tr>
2152     <tr>
2153     <td colspan="4">
2154     </td>
2155     </tr>
2156     <tr>
2157     <td>flags</td>
2158 pcg 1.3 <td>U32</td>
2159 pcg 1.1 <td></td>
2160 pcg 1.3 <td>
2161 pcg 1.4 <b></b> </td>
2162 pcg 1.1 </tr>
2163     <tr>
2164     <td colspan="4">
2165     </td>
2166     </tr>
2167     <tr>
2168     <td>users</td>
2169 pcg 1.3 <td>U32</td>
2170 pcg 1.1 <td></td>
2171 pcg 1.3 <td>
2172 pcg 1.4 <b></b> </td>
2173 pcg 1.1 </tr>
2174     <tr>
2175 pcg 1.4 <td colspan="4">
2176 pcg 1.1 </td>
2177     </tr>
2178     </table>
2179    
2180 pcg 1.3 <h4>STRUCTURE room</h4>
2181     CLASS: KGS::Room<br />
2182 pcg 1.1 <table border="1">
2183     <tr>
2184     <th>NAME</th>
2185     <th>TYPE</th>
2186     <th>DEFAULT</th>
2187 pcg 1.3 <th>DEC-GUARD</th>
2188 pcg 1.1 </tr>
2189     <tr>
2190     <td colspan="4">
2191     </td>
2192     </tr>
2193     <tr>
2194     <td>channel</td>
2195 pcg 1.3 <td>U16</td>
2196 pcg 1.1 <td></td>
2197 pcg 1.3 <td>
2198 pcg 1.4 <b></b> </td>
2199 pcg 1.1 </tr>
2200     <tr>
2201     <td colspan="4">
2202     </td>
2203     </tr>
2204     <tr>
2205     <td>flags</td>
2206 pcg 1.3 <td>U8</td>
2207 pcg 1.1 <td></td>
2208 pcg 1.3 <td>
2209 pcg 1.4 <b></b> </td>
2210 pcg 1.1 </tr>
2211     <tr>
2212     <td colspan="4">
2213     </td>
2214     </tr>
2215     <tr>
2216     <td>group</td>
2217 pcg 1.3 <td>U8</td>
2218 pcg 1.1 <td></td>
2219 pcg 1.3 <td>
2220 pcg 1.4 <b></b> </td>
2221 pcg 1.1 </tr>
2222     <tr>
2223     <td colspan="4">
2224     </td>
2225     </tr>
2226     <tr>
2227     <td>users</td>
2228 pcg 1.3 <td>U16</td>
2229 pcg 1.1 <td></td>
2230 pcg 1.3 <td>
2231 pcg 1.4 <b></b> </td>
2232 pcg 1.1 </tr>
2233     <tr>
2234     <td colspan="4">
2235     </td>
2236     </tr>
2237     <tr>
2238     <td>games</td>
2239 pcg 1.3 <td>U16</td>
2240 pcg 1.1 <td></td>
2241 pcg 1.3 <td>
2242 pcg 1.4 <b></b> </td>
2243 pcg 1.1 </tr>
2244     <tr>
2245     <td colspan="4">
2246     </td>
2247     </tr>
2248     <tr>
2249     <td>name</td>
2250     <td>STRING</td>
2251     <td></td>
2252 pcg 1.3 <td>
2253 pcg 1.4 <b></b> </td>
2254 pcg 1.1 </tr>
2255     <tr>
2256 pcg 1.4 <td colspan="4">
2257 pcg 1.1 </td>
2258     </tr>
2259     </table>
2260    
2261 pcg 1.10 <h4>STRUCTURE scorevalues</h4>
2262 pcg 1.3 CLASS: KGS::Score<br />
2263 pcg 1.1 <table border="1">
2264     <tr>
2265     <th>NAME</th>
2266     <th>TYPE</th>
2267     <th>DEFAULT</th>
2268 pcg 1.3 <th>DEC-GUARD</th>
2269 pcg 1.1 </tr>
2270     <tr>
2271     <td colspan="4">
2272     </td>
2273     </tr>
2274     <tr>
2275     <td>score</td>
2276 pcg 1.11 <td>score32</td>
2277 pcg 1.1 <td></td>
2278 pcg 1.3 <td>
2279 pcg 1.4 <b></b> </td>
2280 pcg 1.1 </tr>
2281     <tr>
2282     <td colspan="4">
2283     </td>
2284     </tr>
2285     <tr>
2286     <td>territory</td>
2287 pcg 1.3 <td>U32</td>
2288 pcg 1.1 <td></td>
2289 pcg 1.3 <td>
2290 pcg 1.4 <b></b> </td>
2291 pcg 1.1 </tr>
2292     <tr>
2293     <td colspan="4">
2294     </td>
2295     </tr>
2296     <tr>
2297     <td>captures</td>
2298 pcg 1.3 <td>U32</td>
2299 pcg 1.1 <td></td>
2300 pcg 1.3 <td>
2301 pcg 1.4 <b></b> </td>
2302 pcg 1.1 </tr>
2303     <tr>
2304     <td colspan="4">
2305     </td>
2306     </tr>
2307     <tr>
2308     <td>i3</td>
2309 pcg 1.3 <td>U32</td>
2310 pcg 1.1 <td></td>
2311 pcg 1.3 <td>
2312 pcg 1.4 <b></b> </td>
2313 pcg 1.1 </tr>
2314     <tr>
2315     <td colspan="4">
2316     </td>
2317     </tr>
2318     <tr>
2319     <td>f2</td>
2320 pcg 1.3 <td>U32</td>
2321 pcg 1.1 <td></td>
2322 pcg 1.3 <td>
2323 pcg 1.4 <b></b> </td>
2324 pcg 1.1 </tr>
2325     <tr>
2326     <td colspan="4">
2327     </td>
2328     </tr>
2329     <tr>
2330     <td>komi</td>
2331 pcg 1.6 <td>komi32</td>
2332 pcg 1.1 <td></td>
2333 pcg 1.3 <td>
2334 pcg 1.4 <b></b> </td>
2335 pcg 1.1 </tr>
2336     <tr>
2337     <td colspan="4">
2338     </td>
2339     </tr>
2340     <tr>
2341     <td>i4</td>
2342 pcg 1.3 <td>U32</td>
2343 pcg 1.1 <td></td>
2344 pcg 1.3 <td>
2345 pcg 1.4 <b></b> </td>
2346 pcg 1.1 </tr>
2347     <tr>
2348 pcg 1.4 <td colspan="4">
2349 pcg 1.3 Apparently the i3, f2, i4 are zero.
2350 pcg 1.1 </td>
2351     </tr>
2352     </table>
2353    
2354 pcg 1.14 <h4>STRUCTURE game_record</h4>
2355     CLASS: KGS::GameRecord<br />
2356     <table border="1">
2357     <tr>
2358     <th>NAME</th>
2359     <th>TYPE</th>
2360     <th>DEFAULT</th>
2361     <th>DEC-GUARD</th>
2362     </tr>
2363     <tr>
2364     <td colspan="4">
2365     A single game record entry, as seen in userinfo etc.
2366    
2367     </td>
2368     </tr>
2369     <tr>
2370     <td>timestamp</td>
2371     <td>timestamp</td>
2372     <td></td>
2373     <td>
2374     <b></b> </td>
2375     </tr>
2376     <tr>
2377     <td colspan="4">
2378     Time this game was played.
2379     </td>
2380     </tr>
2381     <tr>
2382     <td>flags</td>
2383     <td>U8</td>
2384     <td></td>
2385     <td>
2386     <b></b> </td>
2387     </tr>
2388     <tr>
2389     <td colspan="4">
2390     High four bits are handicap, low four bits are gametype (encoded strangely? unclear).
2391     </td>
2392     </tr>
2393     <tr>
2394     <td>user1</td>
2395     <td>user</td>
2396     <td></td>
2397     <td>
2398     <b></b> </td>
2399     </tr>
2400     <tr>
2401     <td colspan="4">
2402     White, flags contain low 8 bits of revision (bits 16-23).
2403     </td>
2404     </tr>
2405     <tr>
2406     <td>user2</td>
2407     <td>user</td>
2408     <td></td>
2409     <td>
2410     <b></b> </td>
2411     </tr>
2412     <tr>
2413     <td colspan="4">
2414     Black, flags contain high 8 bits of revision (bits 16-23).
2415     </td>
2416     </tr>
2417     <tr>
2418     <td>user3</td>
2419     <td>user</td>
2420     <td></td>
2421     <td>
2422     <b></b> </td>
2423     </tr>
2424     <tr>
2425     <td colspan="4">
2426     Owner (or empty)
2427     </td>
2428     </tr>
2429     <tr>
2430     <td>komi</td>
2431     <td>komi16</td>
2432     <td></td>
2433     <td>
2434     <b></b> </td>
2435     </tr>
2436     <tr>
2437     <td colspan="4">
2438     </td>
2439     </tr>
2440     <tr>
2441     <td>score</td>
2442     <td>score16</td>
2443     <td></td>
2444     <td>
2445     <b></b> </td>
2446     </tr>
2447     <tr>
2448     <td colspan="4">
2449     </td>
2450     </tr>
2451     <tr>
2452     <td>status</td>
2453     <td>U8</td>
2454     <td></td>
2455     <td>
2456     <b></b> </td>
2457     </tr>
2458     <tr>
2459     <td colspan="4">
2460     0x80 inprogress
2461     </td>
2462     </tr>
2463     </table>
2464    
2465 pcg 1.1 <h2>Receive messages</h2>
2466    
2467     <h4>MESSAGE login</h4>
2468     NUMERIC TYPE (hex): 0001 RECV<table border="1">
2469     <tr>
2470     <th>NAME</th>
2471     <th>TYPE</th>
2472     <th>DEFAULT</th>
2473 pcg 1.3 <th>DEC-GUARD</th>
2474 pcg 1.1 </tr>
2475     <tr>
2476     <td colspan="4">
2477     </td>
2478     </tr>
2479     <tr>
2480     <td>result</td>
2481     <td>CONSTANT</td>
2482 pcg 1.3 <td>"login ok"</td>
2483     <td>
2484 pcg 1.4 <b></b> </td>
2485 pcg 1.1 </tr>
2486     <tr>
2487     <td colspan="4">
2488     </td>
2489     </tr>
2490     <tr>
2491     <td>success</td>
2492     <td>CONSTANT</td>
2493     <td>1</td>
2494 pcg 1.3 <td>
2495 pcg 1.4 <b></b> </td>
2496 pcg 1.1 </tr>
2497     <tr>
2498     <td colspan="4">
2499     </td>
2500     </tr>
2501     </table>
2502    
2503     <h4>MESSAGE login</h4>
2504     NUMERIC TYPE (hex): 0002 RECV<table border="1">
2505     <tr>
2506     <th>NAME</th>
2507     <th>TYPE</th>
2508     <th>DEFAULT</th>
2509 pcg 1.3 <th>DEC-GUARD</th>
2510 pcg 1.1 </tr>
2511     <tr>
2512     <td colspan="4">
2513     </td>
2514     </tr>
2515     <tr>
2516     <td>result</td>
2517     <td>CONSTANT</td>
2518 pcg 1.3 <td>"guest login ok"</td>
2519     <td>
2520 pcg 1.4 <b></b> </td>
2521 pcg 1.1 </tr>
2522     <tr>
2523     <td colspan="4">
2524     </td>
2525     </tr>
2526     <tr>
2527     <td>success</td>
2528     <td>CONSTANT</td>
2529     <td>1</td>
2530 pcg 1.3 <td>
2531 pcg 1.4 <b></b> </td>
2532 pcg 1.1 </tr>
2533     <tr>
2534     <td colspan="4">
2535     </td>
2536     </tr>
2537     </table>
2538    
2539     <h4>MESSAGE login</h4>
2540     NUMERIC TYPE (hex): 0003 RECV<table border="1">
2541     <tr>
2542     <th>NAME</th>
2543     <th>TYPE</th>
2544     <th>DEFAULT</th>
2545 pcg 1.3 <th>DEC-GUARD</th>
2546 pcg 1.1 </tr>
2547     <tr>
2548     <td colspan="4">
2549     </td>
2550     </tr>
2551     <tr>
2552     <td>result</td>
2553     <td>CONSTANT</td>
2554 pcg 1.3 <td>"login error 3"</td>
2555     <td>
2556 pcg 1.4 <b></b> </td>
2557 pcg 1.1 </tr>
2558     <tr>
2559     <td colspan="4">
2560     ** maybe more following? **
2561     </td>
2562     </tr>
2563     </table>
2564    
2565     <h4>MESSAGE login</h4>
2566     NUMERIC TYPE (hex): 0004 RECV<table border="1">
2567     <tr>
2568     <th>NAME</th>
2569     <th>TYPE</th>
2570     <th>DEFAULT</th>
2571 pcg 1.3 <th>DEC-GUARD</th>
2572 pcg 1.1 </tr>
2573     <tr>
2574     <td colspan="4">
2575     </td>
2576     </tr>
2577     <tr>
2578     <td>result</td>
2579     <td>CONSTANT</td>
2580 pcg 1.3 <td>"wrong password"</td>
2581     <td>
2582 pcg 1.4 <b></b> </td>
2583 pcg 1.1 </tr>
2584     <tr>
2585     <td colspan="4">
2586     ** maybe more following? **
2587     </td>
2588     </tr>
2589     </table>
2590    
2591     <h4>MESSAGE login</h4>
2592     NUMERIC TYPE (hex): 0005 RECV<table border="1">
2593     <tr>
2594     <th>NAME</th>
2595     <th>TYPE</th>
2596     <th>DEFAULT</th>
2597 pcg 1.3 <th>DEC-GUARD</th>
2598 pcg 1.1 </tr>
2599     <tr>
2600     <td colspan="4">
2601     </td>
2602     </tr>
2603     <tr>
2604     <td>result</td>
2605     <td>CONSTANT</td>
2606 pcg 1.3 <td>"user unknown"</td>
2607     <td>
2608 pcg 1.4 <b></b> </td>
2609 pcg 1.1 </tr>
2610     <tr>
2611     <td colspan="4">
2612     ** maybe more following? **
2613     </td>
2614     </tr>
2615     </table>
2616    
2617     <h4>MESSAGE login</h4>
2618     NUMERIC TYPE (hex): 0006 RECV<table border="1">
2619     <tr>
2620     <th>NAME</th>
2621     <th>TYPE</th>
2622     <th>DEFAULT</th>
2623 pcg 1.3 <th>DEC-GUARD</th>
2624 pcg 1.1 </tr>
2625     <tr>
2626     <td colspan="4">
2627     </td>
2628     </tr>
2629     <tr>
2630     <td>result</td>
2631     <td>CONSTANT</td>
2632 pcg 1.3 <td>"user exists"</td>
2633     <td>
2634 pcg 1.4 <b></b> </td>
2635 pcg 1.1 </tr>
2636     <tr>
2637     <td colspan="4">
2638     ** maybe more following? **
2639     </td>
2640     </tr>
2641     </table>
2642    
2643 pcg 1.15 <h4>MESSAGE userinfo</h4>
2644 pcg 1.14 NUMERIC TYPE (hex): 0008 RECV<table border="1">
2645     <tr>
2646     <th>NAME</th>
2647     <th>TYPE</th>
2648     <th>DEFAULT</th>
2649     <th>DEC-GUARD</th>
2650     </tr>
2651     <tr>
2652     <td colspan="4">
2653 pcg 1.15 User info.
2654 pcg 1.14 </td>
2655     </tr>
2656     <tr>
2657     <td>user</td>
2658     <td>user</td>
2659     <td></td>
2660     <td>
2661     <b></b> </td>
2662     </tr>
2663     <tr>
2664     <td colspan="4">
2665     </td>
2666     </tr>
2667     <tr>
2668 pcg 1.15 <td>_unused</td>
2669     <td>U64</td>
2670 pcg 1.14 <td></td>
2671     <td>
2672     <b></b> </td>
2673     </tr>
2674     <tr>
2675     <td colspan="4">
2676     </td>
2677     </tr>
2678     <tr>
2679     <td>realname</td>
2680     <td>realname</td>
2681     <td></td>
2682     <td>
2683     <b></b> </td>
2684     </tr>
2685     <tr>
2686     <td colspan="4">
2687     </td>
2688     </tr>
2689     <tr>
2690     <td>email</td>
2691     <td>email</td>
2692     <td></td>
2693     <td>
2694     <b></b> </td>
2695     </tr>
2696     <tr>
2697     <td colspan="4">
2698     </td>
2699     </tr>
2700     <tr>
2701     <td>info</td>
2702     <td>userinfo</td>
2703     <td></td>
2704     <td>
2705     <b></b> </td>
2706     </tr>
2707     <tr>
2708     <td colspan="4">
2709     </td>
2710     </tr>
2711     <tr>
2712     <td>homepage</td>
2713     <td>url</td>
2714     <td></td>
2715     <td>
2716     <b></b> </td>
2717     </tr>
2718     <tr>
2719     <td colspan="4">
2720     </td>
2721     </tr>
2722     <tr>
2723     <td>regdate</td>
2724     <td>timestamp</td>
2725     <td></td>
2726     <td>
2727     <b></b> </td>
2728     </tr>
2729     <tr>
2730     <td colspan="4">
2731     When the user registered (0 == never registered).
2732     </td>
2733     </tr>
2734     <tr>
2735     <td>lastlogin</td>
2736     <td>timestamp</td>
2737     <td></td>
2738     <td>
2739     <b></b> </td>
2740     </tr>
2741     <tr>
2742     <td colspan="4">
2743     When the user logged in for the last time.
2744     </td>
2745     </tr>
2746     <tr>
2747     <td colspan="4">
2748     </td>
2749     </tr>
2750     </table>
2751    
2752 pcg 1.1 <h4>MESSAGE login</h4>
2753     NUMERIC TYPE (hex): 0018 RECV<table border="1">
2754     <tr>
2755     <th>NAME</th>
2756     <th>TYPE</th>
2757     <th>DEFAULT</th>
2758 pcg 1.3 <th>DEC-GUARD</th>
2759 pcg 1.1 </tr>
2760     <tr>
2761     <td colspan="4">
2762     </td>
2763     </tr>
2764     <tr>
2765     <td>result</td>
2766     <td>CONSTANT</td>
2767 pcg 1.3 <td>"login error 18"</td>
2768     <td>
2769 pcg 1.4 <b></b> </td>
2770 pcg 1.1 </tr>
2771     <tr>
2772     <td colspan="4">
2773     ** maybe more following? **
2774     </td>
2775     </tr>
2776     </table>
2777    
2778     <h4>MESSAGE login</h4>
2779     NUMERIC TYPE (hex): 0022 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 colspan="4">
2792     </td>
2793     </tr>
2794     <tr>
2795     <td>result</td>
2796     <td>CONSTANT</td>
2797 pcg 1.3 <td>"user or ip blocked"</td>
2798     <td>
2799 pcg 1.4 <b></b> </td>
2800 pcg 1.1 </tr>
2801     <tr>
2802     <td colspan="4">
2803     </td>
2804     </tr>
2805     <tr>
2806     <td>reason</td>
2807     <td>STRING</td>
2808     <td></td>
2809 pcg 1.3 <td>
2810 pcg 1.4 <b></b> </td>
2811 pcg 1.1 </tr>
2812     <tr>
2813     <td colspan="4">
2814     </td>
2815     </tr>
2816     </table>
2817    
2818     <h4>MESSAGE msg_chat</h4>
2819     NUMERIC TYPE (hex): 0013 RECV<table border="1">
2820     <tr>
2821     <th>NAME</th>
2822     <th>TYPE</th>
2823     <th>DEFAULT</th>
2824 pcg 1.3 <th>DEC-GUARD</th>
2825 pcg 1.1 </tr>
2826     <tr>
2827     <td colspan="4">
2828     </td>
2829     </tr>
2830     <tr>
2831     <td>user1</td>
2832 pcg 1.3 <td>username</td>
2833 pcg 1.1 <td></td>
2834 pcg 1.3 <td>
2835 pcg 1.4 <b></b> </td>
2836 pcg 1.1 </tr>
2837     <tr>
2838     <td colspan="4">
2839     </td>
2840     </tr>
2841     <tr>
2842     <td>user2</td>
2843 pcg 1.3 <td>username</td>
2844 pcg 1.1 <td></td>
2845 pcg 1.3 <td>
2846 pcg 1.4 <b></b> </td>
2847 pcg 1.1 </tr>
2848     <tr>
2849     <td colspan="4">
2850     </td>
2851     </tr>
2852     <tr>
2853     <td>message</td>
2854     <td>STRING</td>
2855     <td></td>
2856 pcg 1.3 <td>
2857 pcg 1.4 <b></b> </td>
2858 pcg 1.1 </tr>
2859     <tr>
2860     <td colspan="4">
2861     </td>
2862     </tr>
2863     </table>
2864    
2865     <h4>MESSAGE stats</h4>
2866     NUMERIC TYPE (hex): 0015 RECV<table border="1">
2867     <tr>
2868     <th>NAME</th>
2869     <th>TYPE</th>
2870     <th>DEFAULT</th>
2871 pcg 1.3 <th>DEC-GUARD</th>
2872 pcg 1.1 </tr>
2873     <tr>
2874     <td colspan="4">
2875     </td>
2876     </tr>
2877     <tr>
2878     <td>ver_major</td>
2879 pcg 1.3 <td>U16</td>
2880 pcg 1.1 <td></td>
2881 pcg 1.3 <td>
2882 pcg 1.4 <b></b> </td>
2883 pcg 1.1 </tr>
2884     <tr>
2885     <td colspan="4">
2886     </td>
2887     </tr>
2888     <tr>
2889     <td>ver_minor</td>
2890 pcg 1.3 <td>U16</td>
2891 pcg 1.1 <td></td>
2892 pcg 1.3 <td>
2893 pcg 1.4 <b></b> </td>
2894 pcg 1.1 </tr>
2895     <tr>
2896     <td colspan="4">
2897     </td>
2898     </tr>
2899     <tr>
2900     <td>ver_micro</td>
2901 pcg 1.3 <td>U16</td>
2902 pcg 1.1 <td></td>
2903 pcg 1.3 <td>
2904 pcg 1.4 <b></b> </td>
2905 pcg 1.1 </tr>
2906     <tr>
2907     <td colspan="4">
2908     </td>
2909     </tr>
2910     <tr>
2911     <td>boot_time</td>
2912 pcg 1.14 <td>timestamp</td>
2913 pcg 1.1 <td></td>
2914 pcg 1.3 <td>
2915 pcg 1.4 <b></b> </td>
2916 pcg 1.1 </tr>
2917     <tr>
2918     <td colspan="4">
2919     </td>
2920     </tr>
2921     <tr>
2922     <td>users_cur</td>
2923 pcg 1.3 <td>U32</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>users_max</td>
2934 pcg 1.3 <td>U32</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>users_lim</td>
2945 pcg 1.3 <td>U32</td>
2946 pcg 1.1 <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     <tr>
2955     <td>accts_cur</td>
2956 pcg 1.3 <td>U32</td>
2957 pcg 1.1 <td></td>
2958 pcg 1.3 <td>
2959 pcg 1.4 <b></b> </td>
2960 pcg 1.1 </tr>
2961     <tr>
2962     <td colspan="4">
2963     </td>
2964     </tr>
2965     <tr>
2966     <td>accts_max</td>
2967 pcg 1.3 <td>U32</td>
2968 pcg 1.1 <td></td>
2969 pcg 1.3 <td>
2970 pcg 1.4 <b></b> </td>
2971 pcg 1.1 </tr>
2972     <tr>
2973     <td colspan="4">
2974     </td>
2975     </tr>
2976     <tr>
2977     <td>unknown1</td>
2978 pcg 1.3 <td>U32</td>
2979 pcg 1.1 <td></td>
2980 pcg 1.3 <td>
2981 pcg 1.4 <b></b> </td>
2982 pcg 1.1 </tr>
2983     <tr>
2984     <td colspan="4">
2985     </td>
2986     </tr>
2987     <tr>
2988     <td>work_max</td>
2989 pcg 1.3 <td>U32</td>
2990 pcg 1.1 <td></td>
2991 pcg 1.3 <td>
2992 pcg 1.4 <b></b> </td>
2993 pcg 1.1 </tr>
2994     <tr>
2995     <td colspan="4">
2996     </td>
2997     </tr>
2998     <tr>
2999     <td>rooms_cur</td>
3000 pcg 1.3 <td>U32</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     </td>
3008     </tr>
3009     <tr>
3010     <td>rooms_max</td>
3011 pcg 1.3 <td>U32</td>
3012 pcg 1.1 <td></td>
3013 pcg 1.3 <td>
3014 pcg 1.4 <b></b> </td>
3015 pcg 1.1 </tr>
3016     <tr>
3017     <td colspan="4">
3018     </td>
3019     </tr>
3020     <tr>
3021     <td>rooms_lim</td>
3022 pcg 1.3 <td>U32</td>
3023 pcg 1.1 <td></td>
3024 pcg 1.3 <td>
3025 pcg 1.4 <b></b> </td>
3026 pcg 1.1 </tr>
3027     <tr>
3028     <td colspan="4">
3029     </td>
3030     </tr>
3031     <tr>
3032     <td>games_cur</td>
3033 pcg 1.3 <td>U32</td>
3034 pcg 1.1 <td></td>
3035 pcg 1.3 <td>
3036 pcg 1.4 <b></b> </td>
3037 pcg 1.1 </tr>
3038     <tr>
3039     <td colspan="4">
3040     </td>
3041     </tr>
3042     <tr>
3043     <td>games_max</td>
3044 pcg 1.3 <td>U32</td>
3045 pcg 1.1 <td></td>
3046 pcg 1.3 <td>
3047 pcg 1.4 <b></b> </td>
3048 pcg 1.1 </tr>
3049     <tr>
3050     <td colspan="4">
3051     </td>
3052     </tr>
3053     <tr>
3054     <td>games_lim</td>
3055 pcg 1.3 <td>U32</td>
3056 pcg 1.1 <td></td>
3057 pcg 1.3 <td>
3058 pcg 1.4 <b></b> </td>
3059 pcg 1.1 </tr>
3060     <tr>
3061     <td colspan="4">
3062     </td>
3063     </tr>
3064     <tr>
3065     <td>results_cur</td>
3066 pcg 1.3 <td>U32</td>
3067 pcg 1.1 <td></td>
3068 pcg 1.3 <td>
3069 pcg 1.4 <b></b> </td>
3070 pcg 1.1 </tr>
3071     <tr>
3072     <td colspan="4">
3073     </td>
3074     </tr>
3075     <tr>
3076     <td>results_max</td>
3077 pcg 1.3 <td>U32</td>
3078 pcg 1.1 <td></td>
3079 pcg 1.3 <td>
3080 pcg 1.4 <b></b> </td>
3081 pcg 1.1 </tr>
3082     <tr>
3083     <td colspan="4">
3084     </td>
3085     </tr>
3086     <tr>
3087     <td>unknown2</td>
3088 pcg 1.3 <td>U32</td>
3089 pcg 1.1 <td></td>
3090 pcg 1.3 <td>
3091 pcg 1.4 <b></b> </td>
3092 pcg 1.1 </tr>
3093     <tr>
3094     <td colspan="4">
3095     </td>
3096     </tr>
3097     <tr>
3098     <td>params_cur</td>
3099 pcg 1.3 <td>U32</td>
3100 pcg 1.1 <td></td>
3101 pcg 1.3 <td>
3102 pcg 1.4 <b></b> </td>
3103 pcg 1.1 </tr>
3104     <tr>
3105     <td colspan="4">
3106     </td>
3107     </tr>
3108     <tr>
3109     <td>params_max</td>
3110 pcg 1.3 <td>U32</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>bytes_in</td>
3121 pcg 1.3 <td>U64</td>
3122 pcg 1.1 <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     <tr>
3131     <td>packets_in</td>
3132 pcg 1.3 <td>U64</td>
3133 pcg 1.1 <td></td>
3134 pcg 1.3 <td>
3135 pcg 1.4 <b></b> </td>
3136 pcg 1.1 </tr>
3137     <tr>
3138     <td colspan="4">
3139     </td>
3140     </tr>
3141     <tr>
3142     <td>bytes_out</td>
3143 pcg 1.3 <td>U64</td>
3144 pcg 1.1 <td></td>
3145 pcg 1.3 <td>
3146 pcg 1.4 <b></b> </td>
3147 pcg 1.1 </tr>
3148     <tr>
3149     <td colspan="4">
3150     </td>
3151     </tr>
3152     <tr>
3153     <td>packets_out</td>
3154 pcg 1.3 <td>U64</td>
3155 pcg 1.1 <td></td>
3156 pcg 1.3 <td>
3157 pcg 1.4 <b></b> </td>
3158 pcg 1.1 </tr>
3159     <tr>
3160 pcg 1.4 <td colspan="4">
3161 pcg 1.1 </td>
3162     </tr>
3163     </table>
3164    
3165     <h4>MESSAGE idle_warn</h4>
3166     NUMERIC TYPE (hex): 0016 RECV<table border="1">
3167     <tr>
3168     <th>NAME</th>
3169     <th>TYPE</th>
3170     <th>DEFAULT</th>
3171 pcg 1.3 <th>DEC-GUARD</th>
3172 pcg 1.1 </tr>
3173     <tr>
3174     <td colspan="4">
3175     idle warning, autologout soon (10 minutes...)
3176     </td>
3177     </tr>
3178     </table>
3179    
3180     <h4>MESSAGE timewarning_default</h4>
3181     NUMERIC TYPE (hex): 001b RECV<table border="1">
3182     <tr>
3183     <th>NAME</th>
3184     <th>TYPE</th>
3185     <th>DEFAULT</th>
3186 pcg 1.3 <th>DEC-GUARD</th>
3187 pcg 1.1 </tr>
3188     <tr>
3189     <td colspan="4">
3190     WILD guess
3191     </td>
3192     </tr>
3193     <tr>
3194     <td>channel</td>
3195 pcg 1.3 <td>U16</td>
3196 pcg 1.1 <td></td>
3197 pcg 1.3 <td>
3198 pcg 1.4 <b></b> </td>
3199 pcg 1.1 </tr>
3200     <tr>
3201     <td colspan="4">
3202     </td>
3203     </tr>
3204     <tr>
3205     <td>time</td>
3206 pcg 1.3 <td>U16</td>
3207 pcg 1.1 <td></td>
3208 pcg 1.3 <td>
3209 pcg 1.4 <b></b> </td>
3210 pcg 1.1 </tr>
3211     <tr>
3212     <td colspan="4">
3213     </td>
3214     </tr>
3215     </table>
3216    
3217     <h4>MESSAGE idle_err</h4>
3218     NUMERIC TYPE (hex): 001c RECV<table border="1">
3219     <tr>
3220     <th>NAME</th>
3221     <th>TYPE</th>
3222     <th>DEFAULT</th>
3223 pcg 1.3 <th>DEC-GUARD</th>
3224 pcg 1.1 </tr>
3225     <tr>
3226     <td colspan="4">
3227     autologout
3228     </td>
3229     </tr>
3230     </table>
3231    
3232     <h4>MESSAGE ping</h4>
3233     NUMERIC TYPE (hex): 001d 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 pcg 1.14 Sent by the server regularly, but not answering them
3243     isn't valid. Strange form of keepalive?
3244 pcg 1.1 </td>
3245     </tr>
3246     </table>
3247    
3248 pcg 1.15 <h4>MESSAGE usergraph</h4>
3249     NUMERIC TYPE (hex): 001e RECV<table border="1">
3250     <tr>
3251     <th>NAME</th>
3252     <th>TYPE</th>
3253     <th>DEFAULT</th>
3254     <th>DEC-GUARD</th>
3255     </tr>
3256     <tr>
3257     <td colspan="4">
3258     User graph data.
3259     </td>
3260     </tr>
3261     <tr>
3262     <td>data</td>
3263     <td>I16</td>
3264     <td></td>
3265     <td>
3266     <b></b> </td>
3267     </tr>
3268     <tr>
3269     <td colspan="4">
3270     If empty, no graph is available. The unit seems to
3271     be centi-kyu, with 1 dan == 0, 2 dan == 100, 1 kyu == -100.
3272     There is probably one entry per day, the newest one last.
3273     </td>
3274     </tr>
3275     </table>
3276    
3277     <h4>MESSAGE memo</h4>
3278     NUMERIC TYPE (hex): 001f RECV<table border="1">
3279     <tr>
3280     <th>NAME</th>
3281     <th>TYPE</th>
3282     <th>DEFAULT</th>
3283     <th>DEC-GUARD</th>
3284     </tr>
3285     <tr>
3286     <td colspan="4">
3287     Unclear. "Leave Message"?
3288     6 strings following.
3289     </td>
3290     </tr>
3291     <tr>
3292     <td>s1</td>
3293     <td>STRING</td>
3294     <td></td>
3295     <td>
3296     <b></b> </td>
3297     </tr>
3298     <tr>
3299     <td colspan="4">
3300     </td>
3301     </tr>
3302     <tr>
3303     <td>s2</td>
3304     <td>STRING</td>
3305     <td></td>
3306     <td>
3307     <b></b> </td>
3308     </tr>
3309     <tr>
3310     <td colspan="4">
3311     </td>
3312     </tr>
3313     <tr>
3314     <td>s3</td>
3315     <td>STRING</td>
3316     <td></td>
3317     <td>
3318     <b></b> </td>
3319     </tr>
3320     <tr>
3321     <td colspan="4">
3322     </td>
3323     </tr>
3324     <tr>
3325     <td>s4</td>
3326     <td>STRING</td>
3327     <td></td>
3328     <td>
3329     <b></b> </td>
3330     </tr>
3331     <tr>
3332     <td colspan="4">
3333     </td>
3334     </tr>
3335     <tr>
3336     <td>s5</td>
3337     <td>STRING</td>
3338     <td></td>
3339     <td>
3340     <b></b> </td>
3341     </tr>
3342     <tr>
3343     <td colspan="4">
3344     </td>
3345     </tr>
3346     <tr>
3347     <td>s6</td>
3348     <td>STRING</td>
3349     <td></td>
3350     <td>
3351     <b></b> </td>
3352     </tr>
3353     <tr>
3354     <td colspan="4">
3355     </td>
3356     </tr>
3357     </table>
3358    
3359 pcg 1.1 <h4>MESSAGE userpic</h4>
3360     NUMERIC TYPE (hex): 0021 RECV<table border="1">
3361     <tr>
3362     <th>NAME</th>
3363     <th>TYPE</th>
3364     <th>DEFAULT</th>
3365 pcg 1.3 <th>DEC-GUARD</th>
3366 pcg 1.1 </tr>
3367     <tr>
3368     <td colspan="4">
3369     </td>
3370     </tr>
3371     <tr>
3372     <td>name</td>
3373 pcg 1.3 <td>username</td>
3374 pcg 1.1 <td></td>
3375 pcg 1.3 <td>
3376 pcg 1.4 <b></b> </td>
3377 pcg 1.1 </tr>
3378     <tr>
3379     <td colspan="4">
3380     Reply to pic_req, contains an image in jpeg format.
3381     </td>
3382     </tr>
3383     <tr>
3384     <td>data</td>
3385     <td>DATA</td>
3386     <td></td>
3387 pcg 1.3 <td>
3388 pcg 1.4 <b></b> </td>
3389 pcg 1.1 </tr>
3390     <tr>
3391     <td colspan="4">
3392     </td>
3393     </tr>
3394     </table>
3395    
3396     <h4>MESSAGE gnotice</h4>
3397     NUMERIC TYPE (hex): 0100 RECV<table border="1">
3398     <tr>
3399     <th>NAME</th>
3400     <th>TYPE</th>
3401     <th>DEFAULT</th>
3402 pcg 1.3 <th>DEC-GUARD</th>
3403 pcg 1.1 </tr>
3404     <tr>
3405     <td colspan="4">
3406     global notice, sent to everybody
3407     </td>
3408     </tr>
3409     <tr>
3410     <td>notice</td>
3411     <td>STRING</td>
3412     <td></td>
3413 pcg 1.3 <td>
3414 pcg 1.4 <b></b> </td>
3415 pcg 1.1 </tr>
3416     <tr>
3417     <td colspan="4">
3418     </td>
3419     </tr>
3420     </table>
3421    
3422 pcg 1.14 <h4>MESSAGE upd_user</h4>
3423     NUMERIC TYPE (hex): 0202 RECV<table border="1">
3424     <tr>
3425     <th>NAME</th>
3426     <th>TYPE</th>
3427     <th>DEFAULT</th>
3428     <th>DEC-GUARD</th>
3429     </tr>
3430     <tr>
3431     <td colspan="4">
3432 pcg 1.15 # maybe soe notify? Totally unclear.
3433 pcg 1.14 # loc 0" type="chat(?) loc 1 =&gt; gameinfo?, loc 2 =&gt; game result (more data)
3434     </td>
3435     </tr>
3436     <tr>
3437     <td>location</td>
3438     <td>U32</td>
3439     <td></td>
3440     <td>
3441     <b></b> </td>
3442     </tr>
3443     <tr>
3444     <td colspan="4">
3445     </td>
3446     </tr>
3447     <tr>
3448     <td>user</td>
3449     <td>user</td>
3450     <td></td>
3451     <td>
3452     <b></b> </td>
3453     </tr>
3454     <tr>
3455     <td colspan="4">
3456     </td>
3457     </tr>
3458     <tr>
3459     <td>lotsofinfo</td>
3460     <td>DATA</td>
3461     <td></td>
3462     <td>
3463     <b>location</b> == 2</td>
3464     </tr>
3465     <tr>
3466     <td colspan="4">
3467     </td>
3468     </tr>
3469     </table>
3470 pcg 1.1
3471     <h4>MESSAGE priv_room</h4>
3472     NUMERIC TYPE (hex): 0310 RECV<table border="1">
3473     <tr>
3474     <th>NAME</th>
3475     <th>TYPE</th>
3476     <th>DEFAULT</th>
3477 pcg 1.3 <th>DEC-GUARD</th>
3478 pcg 1.1 </tr>
3479     <tr>
3480     <td colspan="4">
3481     "permission denied" when joining a room
3482     </td>
3483     </tr>
3484     <tr>
3485     <td>name</td>
3486     <td>STRING</td>
3487     <td></td>
3488 pcg 1.3 <td>
3489 pcg 1.4 <b></b> </td>
3490 pcg 1.1 </tr>
3491     <tr>
3492     <td colspan="4">
3493     </td>
3494     </tr>
3495     </table>
3496    
3497     <h4>MESSAGE upd_rooms</h4>
3498     NUMERIC TYPE (hex): 0318 RECV<table border="1">
3499     <tr>
3500     <th>NAME</th>
3501     <th>TYPE</th>
3502     <th>DEFAULT</th>
3503 pcg 1.3 <th>DEC-GUARD</th>
3504 pcg 1.1 </tr>
3505     <tr>
3506     <td colspan="4">
3507     </td>
3508     </tr>
3509     <tr>
3510     <td>rooms</td>
3511     <td>room</td>
3512     <td></td>
3513 pcg 1.3 <td>
3514 pcg 1.4 <b></b> </td>
3515 pcg 1.1 </tr>
3516     <tr>
3517     <td colspan="4">
3518     </td>
3519     </tr>
3520     </table>
3521    
3522 pcg 1.14 <h4>MESSAGE chal_defaults</h4>
3523     NUMERIC TYPE (hex): 0411 RECV<table border="1">
3524 pcg 1.1 <tr>
3525     <th>NAME</th>
3526     <th>TYPE</th>
3527     <th>DEFAULT</th>
3528 pcg 1.3 <th>DEC-GUARD</th>
3529 pcg 1.1 </tr>
3530     <tr>
3531     <td colspan="4">
3532     </td>
3533     </tr>
3534     <tr>
3535 pcg 1.14 <td>channel</td>
3536 pcg 1.3 <td>U16</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     <tr>
3546 pcg 1.14 <td>defaults</td>
3547     <td>challenge_defaults</td>
3548 pcg 1.1 <td></td>
3549 pcg 1.3 <td>
3550 pcg 1.4 <b></b> </td>
3551 pcg 1.1 </tr>
3552     <tr>
3553     <td colspan="4">
3554     </td>
3555     </tr>
3556     </table>
3557    
3558 pcg 1.15 <h4>MESSAGE rej_game</h4>
3559     NUMERIC TYPE (hex): 0412 SEND<table border="1">
3560     <tr>
3561     <th>NAME</th>
3562     <th>TYPE</th>
3563     <th>DEFAULT</th>
3564     <th>DEC-GUARD</th>
3565     </tr>
3566     <tr>
3567     <td colspan="4">
3568     Unable to create challenge. The channel might be optional.
3569     </td>
3570     </tr>
3571     <tr>
3572     <td>channel</td>
3573     <td>U16</td>
3574     <td></td>
3575     <td>
3576     <b></b> </td>
3577     </tr>
3578     <tr>
3579     <td colspan="4">
3580     </td>
3581     </tr>
3582     </table>
3583    
3584 pcg 1.14 <h4>MESSAGE game_record</h4>
3585     NUMERIC TYPE (hex): 0414 RECV<table border="1">
3586 pcg 1.1 <tr>
3587     <th>NAME</th>
3588     <th>TYPE</th>
3589     <th>DEFAULT</th>
3590 pcg 1.3 <th>DEC-GUARD</th>
3591 pcg 1.1 </tr>
3592     <tr>
3593     <td colspan="4">
3594 pcg 1.14 The users game record.
3595     </td>
3596     </tr>
3597     <tr>
3598     <td>name</td>
3599     <td>username</td>
3600     <td></td>
3601     <td>
3602     <b></b> </td>
3603     </tr>
3604     <tr>
3605     <td colspan="4">
3606     </td>
3607     </tr>
3608     <tr>
3609     <td>more</td>
3610     <td>flag</td>
3611     <td></td>
3612     <td>
3613     <b></b> </td>
3614     </tr>
3615     <tr>
3616     <td colspan="4">
3617     Wether more games are available (must be requested manually)
3618 pcg 1.1 </td>
3619     </tr>
3620     <tr>
3621 pcg 1.14 <td>games</td>
3622     <td>game_record</td>
3623 pcg 1.1 <td></td>
3624 pcg 1.3 <td>
3625 pcg 1.4 <b></b> </td>
3626 pcg 1.1 </tr>
3627     <tr>
3628     <td colspan="4">
3629 pcg 1.14 </td>
3630     </tr>
3631     </table>
3632    
3633     <h4>MESSAGE upd_game2</h4>
3634     NUMERIC TYPE (hex): 041c RECV<table border="1">
3635     <tr>
3636     <th>NAME</th>
3637     <th>TYPE</th>
3638     <th>DEFAULT</th>
3639     <th>DEC-GUARD</th>
3640     </tr>
3641     <tr>
3642     <td colspan="4">
3643 pcg 1.15 Unclear.
3644 pcg 1.1 </td>
3645     </tr>
3646     <tr>
3647 pcg 1.14 <td>channel_junk</td>
3648     <td>U16</td>
3649 pcg 1.1 <td></td>
3650 pcg 1.3 <td>
3651 pcg 1.4 <b></b> </td>
3652 pcg 1.1 </tr>
3653     <tr>
3654     <td colspan="4">
3655     </td>
3656     </tr>
3657     <tr>
3658 pcg 1.14 <td>game</td>
3659     <td>game</td>
3660 pcg 1.1 <td></td>
3661 pcg 1.3 <td>
3662 pcg 1.14 <b></b> </td>
3663 pcg 1.1 </tr>
3664     <tr>
3665     <td colspan="4">
3666     </td>
3667     </tr>
3668     </table>
3669    
3670     <h3>Room messages</h3>
3671    
3672     <p>Not all room messages are for rooms only, and rooms need to parse
3673     not only these messages. Orthogonality, what for?</p>
3674    
3675     <h4>MESSAGE join_room</h4>
3676     NUMERIC TYPE (hex): 4300 RECV<table border="1">
3677     <tr>
3678     <th>NAME</th>
3679     <th>TYPE</th>
3680     <th>DEFAULT</th>
3681 pcg 1.3 <th>DEC-GUARD</th>
3682 pcg 1.1 </tr>
3683     <tr>
3684     <td colspan="4">
3685     </td>
3686     </tr>
3687     <tr>
3688     <td>channel</td>
3689 pcg 1.3 <td>U16</td>
3690 pcg 1.1 <td></td>
3691 pcg 1.3 <td>
3692 pcg 1.4 <b></b> </td>
3693 pcg 1.1 </tr>
3694     <tr>
3695     <td colspan="4">
3696     </td>
3697     </tr>
3698     <tr>
3699     <td>users</td>
3700     <td>user</td>
3701     <td></td>
3702 pcg 1.3 <td>
3703 pcg 1.4 <b></b> </td>
3704 pcg 1.1 </tr>
3705     <tr>
3706     <td colspan="4">
3707     </td>
3708     </tr>
3709     </table>
3710    
3711     <h4>MESSAGE msg_room</h4>
3712     NUMERIC TYPE (hex): 4301 RECV<table border="1">
3713     <tr>
3714     <th>NAME</th>
3715     <th>TYPE</th>
3716     <th>DEFAULT</th>
3717 pcg 1.3 <th>DEC-GUARD</th>
3718 pcg 1.1 </tr>
3719     <tr>
3720     <td colspan="4">
3721     </td>
3722     </tr>
3723     <tr>
3724     <td>channel</td>
3725 pcg 1.3 <td>U16</td>
3726 pcg 1.1 <td></td>
3727 pcg 1.3 <td>
3728 pcg 1.4 <b></b> </td>
3729 pcg 1.1 </tr>
3730     <tr>
3731     <td colspan="4">
3732     </td>
3733     </tr>
3734     <tr>
3735     <td>name</td>
3736 pcg 1.3 <td>username</td>
3737 pcg 1.1 <td></td>
3738 pcg 1.3 <td>
3739 pcg 1.4 <b></b> </td>
3740 pcg 1.1 </tr>
3741     <tr>
3742     <td colspan="4">
3743     </td>
3744     </tr>
3745     <tr>
3746     <td>message</td>
3747     <td>STRING</td>
3748     <td></td>
3749 pcg 1.3 <td>
3750 pcg 1.4 <b></b> </td>
3751 pcg 1.1 </tr>
3752     <tr>
3753     <td colspan="4">
3754     </td>
3755     </tr>
3756     </table>
3757    
3758     <h4>MESSAGE part_room</h4>
3759     NUMERIC TYPE (hex): 4302 RECV<table border="1">
3760     <tr>
3761     <th>NAME</th>
3762     <th>TYPE</th>
3763     <th>DEFAULT</th>
3764 pcg 1.3 <th>DEC-GUARD</th>
3765 pcg 1.1 </tr>
3766     <tr>
3767     <td colspan="4">
3768     </td>
3769     </tr>
3770     <tr>
3771     <td>channel</td>
3772 pcg 1.3 <td>U16</td>
3773 pcg 1.1 <td></td>
3774 pcg 1.3 <td>
3775 pcg 1.4 <b></b> </td>
3776 pcg 1.1 </tr>
3777     <tr>
3778     <td colspan="4">
3779     </td>
3780     </tr>
3781     <tr>
3782     <td>user</td>
3783     <td>user</td>
3784     <td></td>
3785 pcg 1.3 <td>
3786 pcg 1.4 <b></b> </td>
3787 pcg 1.1 </tr>
3788     <tr>
3789     <td colspan="4">
3790     </td>
3791     </tr>
3792     </table>
3793    
3794     <h4>MESSAGE del_room</h4>
3795     NUMERIC TYPE (hex): 4303 RECV<table border="1">
3796     <tr>
3797     <th>NAME</th>
3798     <th>TYPE</th>
3799     <th>DEFAULT</th>
3800 pcg 1.3 <th>DEC-GUARD</th>
3801 pcg 1.1 </tr>
3802     <tr>
3803     <td colspan="4">
3804     </td>
3805     </tr>
3806     <tr>
3807     <td>channel</td>
3808 pcg 1.3 <td>U16</td>
3809 pcg 1.1 <td></td>
3810 pcg 1.3 <td>
3811 pcg 1.4 <b></b> </td>
3812 pcg 1.1 </tr>
3813     <tr>
3814     <td colspan="4">
3815     </td>
3816     </tr>
3817     </table>
3818    
3819     <h4>MESSAGE upd_games</h4>
3820     NUMERIC TYPE (hex): 4304 RECV<table border="1">
3821     <tr>
3822     <th>NAME</th>
3823     <th>TYPE</th>
3824     <th>DEFAULT</th>
3825 pcg 1.3 <th>DEC-GUARD</th>
3826 pcg 1.1 </tr>
3827     <tr>
3828     <td colspan="4">
3829     </td>
3830     </tr>
3831     <tr>
3832     <td>channel</td>
3833 pcg 1.3 <td>U16</td>
3834 pcg 1.1 <td></td>
3835 pcg 1.3 <td>
3836 pcg 1.4 <b></b> </td>
3837 pcg 1.1 </tr>
3838     <tr>
3839     <td colspan="4">
3840     </td>
3841     </tr>
3842     <tr>
3843     <td>games</td>
3844     <td>game</td>
3845     <td></td>
3846 pcg 1.3 <td>
3847 pcg 1.4 <b></b> </td>
3848 pcg 1.1 </tr>
3849     <tr>
3850     <td colspan="4">
3851     </td>
3852     </tr>
3853     </table>
3854    
3855     <h4>MESSAGE desc_room</h4>
3856     NUMERIC TYPE (hex): 4319 RECV<table border="1">
3857     <tr>
3858     <th>NAME</th>
3859     <th>TYPE</th>
3860     <th>DEFAULT</th>
3861 pcg 1.3 <th>DEC-GUARD</th>
3862 pcg 1.1 </tr>
3863     <tr>
3864     <td colspan="4">
3865     </td>
3866     </tr>
3867     <tr>
3868     <td>channel</td>
3869 pcg 1.3 <td>U16</td>
3870 pcg 1.1 <td></td>
3871 pcg 1.3 <td>
3872 pcg 1.4 <b></b> </td>
3873 pcg 1.1 </tr>
3874     <tr>
3875     <td colspan="4">
3876     </td>
3877     </tr>
3878     <tr>
3879     <td>owner</td>
3880 pcg 1.3 <td>username</td>
3881 pcg 1.1 <td></td>
3882 pcg 1.3 <td>
3883 pcg 1.4 <b></b> </td>
3884 pcg 1.1 </tr>
3885     <tr>
3886     <td colspan="4">
3887     </td>
3888     </tr>
3889     <tr>
3890     <td>description</td>
3891     <td>STRING</td>
3892     <td></td>
3893 pcg 1.3 <td>
3894 pcg 1.4 <b></b> </td>
3895 pcg 1.1 </tr>
3896     <tr>
3897     <td colspan="4">
3898     </td>
3899     </tr>
3900     </table>
3901    
3902     <h3>Game messages</h3>
3903    
3904     <h4>MESSAGE upd_chal</h4>
3905     NUMERIC TYPE (hex): 4400 RECV<table border="1">
3906     <tr>
3907     <th>NAME</th>
3908     <th>TYPE</th>
3909     <th>DEFAULT</th>
3910 pcg 1.3 <th>DEC-GUARD</th>
3911 pcg 1.1 </tr>
3912     <tr>
3913     <td colspan="4">
3914     Unclear.
3915     </td>
3916     </tr>
3917     <tr>
3918     <td>channel</td>
3919 pcg 1.3 <td>U16</td>
3920 pcg 1.1 <td></td>
3921 pcg 1.3 <td>
3922 pcg 1.4 <b></b> </td>
3923 pcg 1.1 </tr>
3924     <tr>
3925     <td colspan="4">
3926     </td>
3927     </tr>
3928     <tr>
3929     <td>challenge</td>
3930     <td>challenge</td>
3931     <td></td>
3932 pcg 1.3 <td>
3933 pcg 1.4 <b></b> </td>
3934 pcg 1.1 </tr>
3935     <tr>
3936     <td colspan="4">
3937     </td>
3938     </tr>
3939     </table>
3940    
3941     <h4>MESSAGE upd_game</h4>
3942     NUMERIC TYPE (hex): 4401 RECV<table border="1">
3943     <tr>
3944     <th>NAME</th>
3945     <th>TYPE</th>
3946     <th>DEFAULT</th>
3947 pcg 1.3 <th>DEC-GUARD</th>
3948 pcg 1.1 </tr>
3949     <tr>
3950     <td colspan="4">
3951     </td>
3952     </tr>
3953     <tr>
3954     <td>channel</td>
3955 pcg 1.3 <td>U16</td>
3956 pcg 1.1 <td></td>
3957 pcg 1.3 <td>
3958 pcg 1.4 <b></b> </td>
3959 pcg 1.1 </tr>
3960     <tr>
3961     <td colspan="4">
3962     </td>
3963     </tr>
3964     <tr>
3965     <td>game</td>
3966     <td>game</td>
3967     <td></td>
3968 pcg 1.3 <td>
3969 pcg 1.4 <b></b> </td>
3970 pcg 1.1 </tr>
3971     <tr>
3972     <td colspan="4">
3973     </td>
3974     </tr>
3975     </table>
3976    
3977     <h4>MESSAGE del_game</h4>
3978     NUMERIC TYPE (hex): 4402 RECV<table border="1">
3979     <tr>
3980     <th>NAME</th>
3981     <th>TYPE</th>
3982     <th>DEFAULT</th>
3983 pcg 1.3 <th>DEC-GUARD</th>
3984 pcg 1.1 </tr>
3985     <tr>
3986     <td colspan="4">
3987     </td>
3988     </tr>
3989     <tr>
3990     <td>channel</td>
3991 pcg 1.3 <td>U16</td>
3992 pcg 1.1 <td></td>
3993 pcg 1.3 <td>
3994 pcg 1.4 <b></b> </td>
3995 pcg 1.1 </tr>
3996     <tr>
3997     <td colspan="4">
3998     </td>
3999     </tr>
4000     </table>
4001    
4002     <h4>MESSAGE upd_observers</h4>
4003     NUMERIC TYPE (hex): 4403 RECV<table border="1">
4004     <tr>
4005     <th>NAME</th>
4006     <th>TYPE</th>
4007     <th>DEFAULT</th>
4008 pcg 1.3 <th>DEC-GUARD</th>
4009 pcg 1.1 </tr>
4010     <tr>
4011     <td colspan="4">
4012     </td>
4013     </tr>
4014     <tr>
4015     <td>channel</td>
4016 pcg 1.3 <td>U16</td>
4017 pcg 1.1 <td></td>
4018 pcg 1.3 <td>
4019 pcg 1.4 <b></b> </td>
4020 pcg 1.1 </tr>
4021     <tr>
4022     <td colspan="4">
4023     </td>
4024     </tr>
4025     <tr>
4026     <td>users</td>
4027     <td>user</td>
4028     <td></td>
4029 pcg 1.3 <td>
4030 pcg 1.4 <b></b> </td>
4031 pcg 1.1 </tr>
4032     <tr>
4033     <td colspan="4">
4034     </td>
4035     </tr>
4036     </table>
4037    
4038     <h4>MESSAGE del_observer</h4>
4039     NUMERIC TYPE (hex): 4404 RECV<table border="1">
4040     <tr>
4041     <th>NAME</th>
4042     <th>TYPE</th>
4043     <th>DEFAULT</th>
4044 pcg 1.3 <th>DEC-GUARD</th>
4045 pcg 1.1 </tr>
4046     <tr>
4047     <td colspan="4">
4048     </td>
4049     </tr>
4050     <tr>
4051     <td>channel</td>
4052 pcg 1.3 <td>U16</td>
4053 pcg 1.1 <td></td>
4054 pcg 1.3 <td>
4055 pcg 1.4 <b></b> </td>
4056 pcg 1.1 </tr>
4057     <tr>
4058     <td colspan="4">
4059     </td>
4060     </tr>
4061     <tr>
4062     <td>name</td>
4063 pcg 1.3 <td>username</td>
4064 pcg 1.1 <td></td>
4065 pcg 1.3 <td>
4066 pcg 1.4 <b></b> </td>
4067 pcg 1.1 </tr>
4068     <tr>
4069     <td colspan="4">
4070     </td>
4071     </tr>
4072     </table>
4073    
4074     <h4>MESSAGE set_tree</h4>
4075     NUMERIC TYPE (hex): 4405 RECV<table border="1">
4076     <tr>
4077     <th>NAME</th>
4078     <th>TYPE</th>
4079     <th>DEFAULT</th>
4080 pcg 1.3 <th>DEC-GUARD</th>
4081 pcg 1.1 </tr>
4082     <tr>
4083     <td colspan="4">
4084     </td>
4085     </tr>
4086     <tr>
4087     <td>channel</td>
4088 pcg 1.3 <td>U16</td>
4089 pcg 1.1 <td></td>
4090 pcg 1.3 <td>
4091 pcg 1.4 <b></b> </td>
4092 pcg 1.1 </tr>
4093     <tr>
4094     <td colspan="4">
4095     </td>
4096     </tr>
4097     <tr>
4098     <td>tree</td>
4099     <td>TREE</td>
4100     <td></td>
4101 pcg 1.3 <td>
4102 pcg 1.4 <b></b> </td>
4103 pcg 1.1 </tr>
4104     <tr>
4105     <td colspan="4">
4106     </td>
4107     </tr>
4108     </table>
4109    
4110     <h4>MESSAGE upd_tree</h4>
4111     NUMERIC TYPE (hex): 4406 RECV<table border="1">
4112     <tr>
4113     <th>NAME</th>
4114     <th>TYPE</th>
4115     <th>DEFAULT</th>
4116 pcg 1.3 <th>DEC-GUARD</th>
4117 pcg 1.1 </tr>
4118     <tr>
4119     <td colspan="4">
4120     </td>
4121     </tr>
4122     <tr>
4123     <td>channel</td>
4124 pcg 1.3 <td>U16</td>
4125 pcg 1.1 <td></td>
4126 pcg 1.3 <td>
4127 pcg 1.4 <b></b> </td>
4128 pcg 1.1 </tr>
4129     <tr>
4130     <td colspan="4">
4131     </td>
4132     </tr>
4133     <tr>
4134     <td>tree</td>
4135     <td>TREE</td>
4136     <td></td>
4137 pcg 1.3 <td>
4138 pcg 1.4 <b></b> </td>
4139 pcg 1.1 </tr>
4140     <tr>
4141     <td colspan="4">
4142     </td>
4143     </tr>
4144     </table>
4145    
4146     <h4>MESSAGE set_node</h4>
4147     NUMERIC TYPE (hex): 4407 RECV<table border="1">
4148     <tr>
4149     <th>NAME</th>
4150     <th>TYPE</th>
4151     <th>DEFAULT</th>
4152 pcg 1.3 <th>DEC-GUARD</th>
4153 pcg 1.1 </tr>
4154     <tr>
4155     <td colspan="4">
4156     </td>
4157     </tr>
4158     <tr>
4159     <td>channel</td>
4160 pcg 1.3 <td>U16</td>
4161 pcg 1.1 <td></td>
4162 pcg 1.3 <td>
4163 pcg 1.4 <b></b> </td>
4164 pcg 1.1 </tr>
4165     <tr>
4166     <td colspan="4">
4167     </td>
4168     </tr>
4169     <tr>
4170     <td>node</td>
4171 pcg 1.3 <td>U32</td>
4172 pcg 1.1 <td></td>
4173 pcg 1.3 <td>
4174 pcg 1.4 <b></b> </td>
4175 pcg 1.1 </tr>
4176     <tr>
4177     <td colspan="4">
4178     </td>
4179     </tr>
4180     </table>
4181    
4182     <h4>MESSAGE superko</h4>
4183     NUMERIC TYPE (hex): 4409 RECV<table border="1">
4184     <tr>
4185     <th>NAME</th>
4186     <th>TYPE</th>
4187     <th>DEFAULT</th>
4188 pcg 1.3 <th>DEC-GUARD</th>
4189 pcg 1.1 </tr>
4190     <tr>
4191     <td colspan="4">
4192     Superko-warning.
4193     </td>
4194     </tr>
4195     <tr>
4196     <td>channel</td>
4197 pcg 1.3 <td>U16</td>
4198 pcg 1.1 <td></td>
4199 pcg 1.3 <td>
4200 pcg 1.4 <b></b> </td>
4201 pcg 1.1 </tr>
4202     <tr>
4203     <td colspan="4">
4204     </td>
4205     </tr>
4206     </table>
4207    
4208     <h4>MESSAGE final_result</h4>
4209     NUMERIC TYPE (hex): 440b RECV<table border="1">
4210     <tr>
4211     <th>NAME</th>
4212     <th>TYPE</th>
4213     <th>DEFAULT</th>
4214 pcg 1.3 <th>DEC-GUARD</th>
4215 pcg 1.1 </tr>
4216     <tr>
4217     <td colspan="4">
4218     </td>
4219     </tr>
4220     <tr>
4221     <td>channel</td>
4222 pcg 1.3 <td>U16</td>
4223 pcg 1.1 <td></td>
4224 pcg 1.3 <td>
4225 pcg 1.4 <b></b> </td>
4226 pcg 1.1 </tr>
4227     <tr>
4228     <td colspan="4">
4229     </td>
4230     </tr>
4231     <tr>
4232     <td>blackscore</td>
4233 pcg 1.10 <td>scorevalues</td>
4234 pcg 1.1 <td></td>
4235 pcg 1.3 <td>
4236 pcg 1.4 <b></b> </td>
4237 pcg 1.1 </tr>
4238     <tr>
4239     <td colspan="4">
4240     </td>
4241     </tr>
4242     <tr>
4243     <td>whitescore</td>
4244 pcg 1.10 <td>scorevalues</td>
4245 pcg 1.1 <td></td>
4246 pcg 1.3 <td>
4247 pcg 1.4 <b></b> </td>
4248 pcg 1.1 </tr>
4249     <tr>
4250     <td colspan="4">
4251     </td>
4252     </tr>
4253     </table>
4254    
4255     <h4>MESSAGE req_undo</h4>
4256     NUMERIC TYPE (hex): 440e RECV<table border="1">
4257     <tr>
4258     <th>NAME</th>
4259     <th>TYPE</th>
4260     <th>DEFAULT</th>
4261 pcg 1.3 <th>DEC-GUARD</th>
4262 pcg 1.1 </tr>
4263     <tr>
4264     <td colspan="4">
4265     </td>
4266     </tr>
4267     <tr>
4268     <td>channel</td>
4269 pcg 1.3 <td>U16</td>
4270 pcg 1.1 <td></td>
4271 pcg 1.3 <td>
4272 pcg 1.4 <b></b> </td>
4273 pcg 1.1 </tr>
4274     <tr>
4275     <td colspan="4">
4276    
4277     </td>
4278     </tr>
4279     </table>
4280    
4281     <h4>MESSAGE resign_game</h4>
4282     NUMERIC TYPE (hex): 4410 RECV<table border="1">
4283     <tr>
4284     <th>NAME</th>
4285     <th>TYPE</th>
4286     <th>DEFAULT</th>
4287 pcg 1.3 <th>DEC-GUARD</th>
4288 pcg 1.1 </tr>
4289     <tr>
4290     <td colspan="4">
4291     </td>
4292     </tr>
4293     <tr>
4294     <td>channel</td>
4295 pcg 1.3 <td>U16</td>
4296 pcg 1.1 <td></td>
4297 pcg 1.3 <td>
4298 pcg 1.4 <b></b> </td>
4299 pcg 1.1 </tr>
4300     <tr>
4301     <td colspan="4">
4302     </td>
4303     </tr>
4304     <tr>
4305     <td>player</td>
4306 pcg 1.3 <td>U8</td>
4307 pcg 1.1 <td></td>
4308 pcg 1.3 <td>
4309 pcg 1.4 <b></b> </td>
4310 pcg 1.1 </tr>
4311     <tr>
4312     <td colspan="4">
4313     </td>
4314     </tr>
4315     </table>
4316    
4317     <h4>MESSAGE set_teacher</h4>
4318     NUMERIC TYPE (hex): 441a RECV<table border="1">
4319     <tr>
4320     <th>NAME</th>
4321     <th>TYPE</th>
4322     <th>DEFAULT</th>
4323 pcg 1.3 <th>DEC-GUARD</th>
4324 pcg 1.1 </tr>
4325     <tr>
4326     <td colspan="4">
4327     </td>
4328     </tr>
4329     <tr>
4330     <td>channel</td>
4331 pcg 1.3 <td>U16</td>
4332 pcg 1.1 <td></td>
4333 pcg 1.3 <td>
4334 pcg 1.4 <b></b> </td>
4335 pcg 1.1 </tr>
4336     <tr>
4337     <td colspan="4">
4338     </td>
4339     </tr>
4340     <tr>
4341     <td>name</td>
4342 pcg 1.3 <td>username</td>
4343 pcg 1.1 <td></td>
4344 pcg 1.3 <td>
4345 pcg 1.4 <b></b> </td>
4346 pcg 1.1 </tr>
4347     <tr>
4348     <td colspan="4">
4349     </td>
4350     </tr>
4351     </table>
4352    
4353     <h4>MESSAGE owner_left</h4>
4354     NUMERIC TYPE (hex): 441d RECV<table border="1">
4355     <tr>
4356     <th>NAME</th>
4357     <th>TYPE</th>
4358     <th>DEFAULT</th>
4359 pcg 1.3 <th>DEC-GUARD</th>
4360 pcg 1.1 </tr>
4361     <tr>
4362     <td colspan="4">
4363     Unclear.
4364     </td>
4365     </tr>
4366     <tr>
4367     <td>channel</td>
4368 pcg 1.3 <td>U16</td>
4369 pcg 1.1 <td></td>
4370 pcg 1.3 <td>
4371 pcg 1.4 <b></b> </td>
4372 pcg 1.1 </tr>
4373     <tr>
4374     <td colspan="4">
4375     </td>
4376     </tr>
4377     </table>
4378    
4379     <h4>MESSAGE teacher_left</h4>
4380     NUMERIC TYPE (hex): 441e RECV<table border="1">
4381     <tr>
4382     <th>NAME</th>
4383     <th>TYPE</th>
4384     <th>DEFAULT</th>
4385 pcg 1.3 <th>DEC-GUARD</th>
4386 pcg 1.1 </tr>
4387     <tr>
4388     <td colspan="4">
4389     Unclear.
4390     </td>
4391     </tr>
4392     <tr>
4393     <td>channel</td>
4394 pcg 1.3 <td>U16</td>
4395 pcg 1.1 <td></td>
4396 pcg 1.3 <td>
4397 pcg 1.4 <b></b> </td>
4398 pcg 1.1 </tr>
4399     <tr>
4400     <td colspan="4">
4401     </td>
4402     </tr>
4403     </table>
4404    
4405     <h4>MESSAGE unknown4422</h4>
4406     NUMERIC TYPE (hex): 4422 RECV<table border="1">
4407     <tr>
4408     <th>NAME</th>
4409     <th>TYPE</th>
4410     <th>DEFAULT</th>
4411 pcg 1.3 <th>DEC-GUARD</th>
4412 pcg 1.1 </tr>
4413     <tr>
4414     <td colspan="4">
4415     change teacher? something to do with editing?
4416     </td>
4417     </tr>
4418     <tr>
4419     <td>channel</td>
4420 pcg 1.3 <td>U16</td>
4421 pcg 1.1 <td></td>
4422 pcg 1.3 <td>
4423 pcg 1.4 <b></b> </td>
4424 pcg 1.1 </tr>
4425     <tr>
4426     <td colspan="4">
4427     </td>
4428     </tr>
4429     <tr>
4430     <td>name1</td>
4431 pcg 1.3 <td>username</td>
4432 pcg 1.1 <td></td>
4433 pcg 1.3 <td>
4434 pcg 1.4 <b></b> </td>
4435 pcg 1.1 </tr>
4436     <tr>
4437     <td colspan="4">
4438     </td>
4439     </tr>
4440     <tr>
4441     <td>name2</td>
4442 pcg 1.3 <td>username</td>
4443 pcg 1.1 <td></td>
4444 pcg 1.3 <td>
4445 pcg 1.4 <b></b> </td>
4446 pcg 1.1 </tr>
4447     <tr>
4448     <td colspan="4">
4449     </td>
4450     </tr>
4451     </table>
4452    
4453     <h4>MESSAGE req_result</h4>
4454     NUMERIC TYPE (hex): 4433 RECV<table border="1">
4455     <tr>
4456     <th>NAME</th>
4457     <th>TYPE</th>
4458     <th>DEFAULT</th>
4459 pcg 1.3 <th>DEC-GUARD</th>
4460 pcg 1.1 </tr>
4461     <tr>
4462     <td colspan="4">
4463     Unclear.
4464     </td>
4465     </tr>
4466     <tr>
4467     <td>channel</td>
4468 pcg 1.3 <td>U16</td>
4469 pcg 1.1 <td></td>
4470 pcg 1.3 <td>
4471 pcg 1.4 <b></b> </td>
4472 pcg 1.1 </tr>
4473     <tr>
4474     <td colspan="4">
4475     # # recv_result(?)
4476     </td>
4477     </tr>
4478     </table>
4479    
4480     <h4>MESSAGE unknown4434</h4>
4481     NUMERIC TYPE (hex): 4434 RECV<table border="1">
4482     <tr>
4483     <th>NAME</th>
4484     <th>TYPE</th>
4485     <th>DEFAULT</th>
4486 pcg 1.3 <th>DEC-GUARD</th>
4487 pcg 1.1 </tr>
4488     <tr>
4489     <td colspan="4">
4490     </td>
4491     </tr>
4492     <tr>
4493     <td>channel</td>
4494 pcg 1.3 <td>U16</td>
4495 pcg 1.1 <td></td>
4496 pcg 1.3 <td>
4497 pcg 1.4 <b></b> </td>
4498 pcg 1.1 </tr>
4499     <tr>
4500     <td colspan="4">
4501     </td>
4502     </tr>
4503     <tr>
4504     <td>b1</td>
4505 pcg 1.3 <td>U8</td>
4506 pcg 1.1 <td></td>
4507 pcg 1.3 <td>
4508 pcg 1.4 <b></b> </td>
4509 pcg 1.1 </tr>
4510     <tr>
4511     <td colspan="4">
4512     ?? !demonstration game??
4513     </td>
4514     </tr>
4515     </table>
4516    
4517     </body>
4518     </html>