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