… | |
… | |
83 | |
83 | |
84 | <type name="username" type="A" length="12"/> |
84 | <type name="username" type="A" length="12"/> |
85 | <type name="roomname" type="S" length="25"/><!-- argh, how horribly broken --> |
85 | <type name="roomname" type="S" length="25"/><!-- argh, how horribly broken --> |
86 | <type name="locale" type="A" length="5"/> |
86 | <type name="locale" type="A" length="5"/> |
87 | <type name="flag" type="U8" multiplier="1"/> |
87 | <type name="flag" type="U8" multiplier="1"/> |
|
|
88 | <type name="komi16" type="I16" multiplier="2"/> |
88 | <type name="komi" type="I32" multiplier="2"/> |
89 | <type name="komi32" type="I32" multiplier="2"/> |
89 | <type name="result" type="I32" multiplier="2"/> |
90 | <type name="result" type="I32" multiplier="2"/> |
90 | <type name="score" type="I32" multiplier="4"/> |
91 | <type name="score" type="I32" multiplier="4"/> |
91 | <type name="time" type="U32" multiplier="100"/> |
92 | <type name="time" type="U32" multiplier="100"/> |
92 | |
93 | |
93 | <h2>Constants, enumeration and set types used in the protocol.</h2> |
94 | <h2>Constants, enumeration and set types used in the protocol.</h2> |
… | |
… | |
97 | <h2>Structs used in send & receive messages</h2> |
98 | <h2>Structs used in send & receive messages</h2> |
98 | |
99 | |
99 | <struct name="user" class="KGS::User"> |
100 | <struct name="user" class="KGS::User"> |
100 | <member name="name" type="username"/> |
101 | <member name="name" type="username"/> |
101 | <member name="flags" type="U32" default="1"/> |
102 | <member name="flags" type="U32" default="1"/> |
|
|
103 | </struct> |
|
|
104 | |
|
|
105 | <struct name="rules" class="KGS::Rules"> |
|
|
106 | <member name="ruleset" type="U8"/> |
|
|
107 | <member name="size" type="U8"/> |
|
|
108 | <member name="handicap" type="U8"/> |
|
|
109 | <member name="komi" type="komi16"/> |
|
|
110 | <member name="timesys" type="U8"/> |
|
|
111 | <member name="time" type="U32"/> |
|
|
112 | <member name="interval" type="U32"/> |
|
|
113 | byo-yomi time / canadian time |
|
|
114 | <member name="count" type="U16"/> |
|
|
115 | periods / moves |
102 | </struct> |
116 | </struct> |
103 | |
117 | |
104 | <h2>Structs used in send messages</h2> |
118 | <h2>Structs used in send messages</h2> |
105 | |
119 | |
106 | <message type="0000" name="login" send="yes"> |
120 | <message type="0000" name="login" send="yes"> |
… | |
… | |
279 | <member name="byo_periods" type="U32"/> |
293 | <member name="byo_periods" type="U32"/> |
280 | <member name="can_time" type="U32"/> |
294 | <member name="can_time" type="U32"/> |
281 | <member name="can_stones" type="U32"/> |
295 | <member name="can_stones" type="U32"/> |
282 | </struct> |
296 | </struct> |
283 | |
297 | |
284 | <struct name="rules" class="KGS::Rules"> |
|
|
285 | <member name="ruleset" type="U8"/> |
|
|
286 | <member name="size" type="U8"/> |
|
|
287 | <member name="handicap" type="U8"/> |
|
|
288 | <member name="komi" type="komi"/> |
|
|
289 | <member name="timesys" type="U8"/> |
|
|
290 | <member name="time" type="U32"/> |
|
|
291 | <member name="interval" type="U32"/> |
|
|
292 | byo-yomi time / canadian time |
|
|
293 | <member name="count" type="U16"/> |
|
|
294 | periods / moves |
|
|
295 | </struct> |
|
|
296 | |
|
|
297 | <struct name="challenge" class="KGS::Challenge"> |
298 | <struct name="challenge" class="KGS::Challenge"> |
298 | <member name="user1" type="user"/> |
299 | <member name="user1" type="user"/> |
299 | <member name="user2" type="user"/> |
300 | <member name="user2" type="user"/> |
300 | <member name="gametype" type="U32"/> |
301 | <member name="gametype" type="U32"/> |
301 | <member name="rules" type="rules"/> |
302 | <member name="rules" type="rules"/> |
… | |
… | |
312 | <member name="user3" type="user"/> |
313 | <member name="user3" type="user"/> |
313 | Owner |
314 | Owner |
314 | <member name="size" type="U32"/> |
315 | <member name="size" type="U32"/> |
315 | <member name="handicap" type="I32"/> |
316 | <member name="handicap" type="I32"/> |
316 | < 0 not fully setup |
317 | < 0 not fully setup |
317 | <member name="komi" type="komi"/> |
318 | <member name="komi" type="komi32"/> |
318 | <member name="moves" type="U16"/> |
319 | <member name="moves" type="U16"/> |
319 | <member name="flags" type="U16"/> |
320 | <member name="flags" type="U16"/> |
320 | <member name="observers" type="U32"/> |
321 | <member name="observers" type="U32"/> |
321 | <member name="saved" type="flag"/> |
322 | <member name="saved" type="flag"/> |
322 | <member name="notes" type="STRING" guard-member="handicap" guard-cond="< 0"/> |
323 | <member name="notes" type="STRING" guard-member="handicap" guard-cond="< 0"/> |
… | |
… | |
342 | <member name="score" type="score"/> |
343 | <member name="score" type="score"/> |
343 | <member name="territory" type="U32"/> |
344 | <member name="territory" type="U32"/> |
344 | <member name="captures" type="U32"/> |
345 | <member name="captures" type="U32"/> |
345 | <member name="i3" type="U32"/> |
346 | <member name="i3" type="U32"/> |
346 | <member name="f2" type="U32"/> |
347 | <member name="f2" type="U32"/> |
347 | <member name="komi" type="komi"/> |
348 | <member name="komi" type="komi32"/> |
348 | <member name="i4" type="U32"/> |
349 | <member name="i4" type="U32"/> |
349 | Apparently the i3, f2, i4 are zero. |
350 | Apparently the i3, f2, i4 are zero. |
350 | </struct> |
351 | </struct> |
351 | |
352 | |
352 | <h2>Receive messages</h2> |
353 | <h2>Receive messages</h2> |