… | |
… | |
21 | Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 | Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 | --> |
22 | --> |
23 | </head> |
23 | </head> |
24 | <body> |
24 | <body> |
25 | |
25 | |
26 | <h1>$Revision: 1.41 $</h1> |
26 | <h1>$Revision: 1.42 $</h1> |
27 | |
27 | |
28 | <h1>KGS Protocol Description</h1> |
28 | <h1>KGS Protocol Description</h1> |
29 | |
29 | |
30 | <p>This XML document describes the KGS protocol. It is also used |
30 | <p>This XML document describes the KGS protocol. It is also used |
31 | to automatically generate the perl parser for all the messages and |
31 | to automatically generate the perl parser for all the messages and |
… | |
… | |
710 | <struct name="game_record" class="KGS::GameRecord"> |
710 | <struct name="game_record" class="KGS::GameRecord"> |
711 | <p>A single game record entry, as seen in <ref ref="userinfo"/>.</p> |
711 | <p>A single game record entry, as seen in <ref ref="userinfo"/>.</p> |
712 | |
712 | |
713 | <member name="timestamp" type="timestamp"/> |
713 | <member name="timestamp" type="timestamp"/> |
714 | Time this game was played. |
714 | Time this game was played. |
715 | <member name="type" type="U8"/> |
715 | <member name="flags1" type="U8"/> |
716 | <p>Low four bits are handicap, high bits are gametype.</p> |
716 | <p>0:3 == handicap, 4:7 == gametype:0:4</p> |
717 | <member name="user1" type="user"/> |
717 | <member name="user1" type="user"/> |
718 | White, flags contain low 8 bits of revision (bits 16-23). |
718 | White, flags contain low 8 bits of revision (bits 16-23). |
719 | <member name="user2" type="user"/> |
719 | <member name="user2" type="user"/> |
720 | Black, flags contain high 8 bits of revision (bits 16-23). |
720 | Black, flags contain high 8 bits of revision (bits 16-23). |
721 | <member name="user3" type="user"/> |
721 | <member name="user3" type="user"/> |
… | |
… | |
724 | |
724 | |
725 | <p>The bits 16-24 of user1.flags and user2.flags give the high and |
725 | <p>The bits 16-24 of user1.flags and user2.flags give the high and |
726 | low bits of a revision number in case there are multiple similar |
726 | low bits of a revision number in case there are multiple similar |
727 | games.</p></p> |
727 | games.</p></p> |
728 | |
728 | |
729 | <member name="komi" type="komi16"/> |
729 | <member name="flags2" type="U16"/> |
|
|
730 | <p>0:11 == komi / 2, 12:14 == high 3 bits of gametype, 15: == sign bit</p> |
730 | <member name="score" type="score16"/> |
731 | <member name="score" type="score16"/> |
731 | <member name="status" type="U8"/> |
732 | <member name="flags3" type="U8"/> |
732 | |
733 | |
733 | <p>Low 6 bits seem to be boardsize; bit 6: no idea; bit 7: inplay?</p> |
734 | <p>0:5 == boardsize; 6: == no idea; 7: == inplay?</p> |
734 | |
735 | |
735 | </struct> |
736 | </struct> |
736 | |
737 | |
737 | <h2>Server-generated messages</h2> |
738 | <h2>Server-generated messages</h2> |
738 | |
739 | |