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