X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fcommondsp.c;h=ab11cffcb7bf848f588da1842f39148ded84cf81;hb=c6beba819538b3d4e08faf55796e01deb3675e00;hp=86217bb33f91d8ca8752fb56cf2c661f31447f56;hpb=7b316f96d850ca6807fb2a6e86f0c35a0c7d9858;p=gnushogi.git diff --git a/gnushogi/commondsp.c b/gnushogi/commondsp.c index 86217bb..ab11cff 100644 --- a/gnushogi/commondsp.c +++ b/gnushogi/commondsp.c @@ -50,7 +50,8 @@ #include "gnushogi.h" char mvstr[4][6]; -char *InPtr; +int mycnt1, mycnt2; +static char *InPtr; struct display *dsp = &raw_display; @@ -137,7 +138,10 @@ movealgbr(short m, char *s) * - NO_SQUARES <= f NO_SQUARES + 2*NO_PIECES dropped piece modulo NO_PIECES * - t & 0x7f target square * - t & 0x80 promotion flag - * - flag FIXME: must be zero ? + * - flag + * - if flag & dropmask, piece type encoded in flag & pmask + * + * FIXME: that makes 2 ways to specify drops and promotions, why ? * * OUTPUT: * - GLOBAL mvstr @@ -187,20 +191,27 @@ algbr(short f, short t, short flag) } else if ((f != 0) || (t != 0)) { - /* algebraic notation */ + /* pure coordinates notation */ mvstr[0][0] = cxx[column(f)]; mvstr[0][1] = rxx[row(f)]; mvstr[0][2] = cxx[column(t)]; mvstr[0][3] = rxx[row(t)]; - mvstr[0][4] = mvstr[3][0] = '\0'; + mvstr[0][4] = '\0'; + + /* algebraic notation without disambiguation */ mvstr[1][0] = pxx[board[f]]; + mvstr[1][1] = mvstr[0][2]; /* to column */ + mvstr[1][2] = mvstr[0][3]; /* to row */ + mvstr[1][3] = '\0'; + /* algebraic notation with row disambiguation */ mvstr[2][0] = mvstr[1][0]; mvstr[2][1] = mvstr[0][1]; + mvstr[2][2] = mvstr[0][2]; /* to column */ + mvstr[2][3] = mvstr[0][3]; /* to row */ + mvstr[2][4] = '\0'; - mvstr[2][2] = mvstr[1][1] = mvstr[0][2]; /* to column */ - mvstr[2][3] = mvstr[1][2] = mvstr[0][3]; /* to row */ - mvstr[2][4] = mvstr[1][3] = '\0'; + /* algebraic notation with column disambiguation */ strcpy(mvstr[3], mvstr[2]); mvstr[3][1] = mvstr[0][0];