Get rid of cxx/rxx in favor of COL/ROW_NAME.
[gnushogi.git] / gnushogi / commondsp.c
index 1c51387..90a3ca0 100644 (file)
@@ -50,8 +50,8 @@
 #include "gnushogi.h"
 
 char mvstr[4][6];
-char *InPtr;
-int InBackground = false;
+int mycnt1, mycnt2;
+static char *InPtr;
 struct display *dsp = &raw_display;
 
 
@@ -94,20 +94,20 @@ movealgbr(short m, char *s)
         s++;
         *s = '*';
         s++;
-        *s = cxx[column(t)];
+        *s = COL_NAME(column(t));
         s++;
-        *s = rxx[row(t)];
+        *s = ROW_NAME(row(t));
         s++;
     }
     else
     {
-        *s = cxx[column(f)];
+        *s = COL_NAME(column(f));
         s++;
-        *s = rxx[row(f)];
+        *s = ROW_NAME(row(f));
         s++;
-        *s = cxx[column(t)];
+        *s = COL_NAME(column(t));
         s++;
-        *s = rxx[row(t)];
+        *s = ROW_NAME(row(t));
         s++;
 
         if (flag & promote)
@@ -138,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
@@ -179,8 +182,8 @@ algbr(short f, short t, short flag)
 
         mvstr[0][0] = pxx[piece];
         mvstr[0][1] = '*';
-        mvstr[0][2] = cxx[column(t)];
-        mvstr[0][3] = rxx[row(t)];
+        mvstr[0][2] = COL_NAME(column(t));
+        mvstr[0][3] = ROW_NAME(row(t));
         mvstr[0][4] = '\0';
         strcpy(mvstr[1], mvstr[0]);
         strcpy(mvstr[2], mvstr[0]);
@@ -188,20 +191,27 @@ algbr(short f, short t, short flag)
     }
     else if ((f != 0) || (t != 0))
     {
-        /* algebraic 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';
+        /* pure coordinates notation */
+        mvstr[0][0] = COL_NAME(column(f));
+        mvstr[0][1] = ROW_NAME(row(f));
+        mvstr[0][2] = COL_NAME(column(t));
+        mvstr[0][3] = ROW_NAME(row(t));
+        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];
 
@@ -1315,58 +1325,6 @@ Undo(void)
 }
 
 
-void
-FlagString(unsigned short flags, char *s)
-{
-    short l, piece;
-    *s = '\0';
-
-    if (flags & promote)
-        strcat(s, " promote");
-
-    if (flags & dropmask)
-        strcat(s, " drop:");
-
-    if ((piece = (flags & pmask)))
-    {
-        l = strlen(s);
-
-        if (is_promoted[piece])
-            s[l++] = '+';
-
-        s[l++] = pxx[piece];
-        s[l] = '\0';
-    }
-
-    if (flags & capture)
-        strcat(s, " capture");
-
-    if (flags & exact)
-        strcat(s, " exact");
-
-    if (flags & tesuji)
-        strcat(s, " tesuji");
-
-    if (flags & check)
-        strcat(s, " check");
-
-    if (flags & draw)
-        strcat(s, " draw");
-
-    if (flags & stupid)
-        strcat(s, " stupid");
-
-    if (flags & questionable)
-        strcat(s, " questionable");
-
-    if (flags & kingattack)
-        strcat(s, " kingattack");
-
-    if (flags & book)
-        strcat(s, " book");
-}
-
-
 static void
 TestSpeed(void(*f)(short side, short ply,
                    short in_check, short blockable),
@@ -2014,42 +1972,5 @@ InputCommand(char *command)
             printf("%d. %s %ld\n",
                    ++mycnt2, s, TimeControl.clock[player] * 10);
         }
-
-#ifdef notdef /* optional pass best line to frontend with move */
-        if (flag.post && !flag.mate)
-        {
-            int i;
-
-            printf(" %6d ", MSCORE);
-
-            for (i = 1; MV[i] > 0; i++)
-            {
-                algbr((short) (MV[i] >> 8), (short) (MV[i] & 0xFF), false);
-                printf("%5s ", mvstr[0]);
-            }
-        }
-        printf("\n");
-#endif
-    }
-}
-
-
-void
-SetTimeControl(void)
-{
-    if (TCflag)
-    {
-        TimeControl.moves[black] = TimeControl.moves[white] = TCmoves;
-        TimeControl.clock[black] += 6000L * TCminutes + TCseconds * 100;
-        TimeControl.clock[white] += 6000L * TCminutes + TCseconds * 100;
     }
-    else
-    {
-        TimeControl.moves[black] = TimeControl.moves[white] = 0;
-        TimeControl.clock[black] = TimeControl.clock[white] = 0;
-    }
-
-    flag.onemove = (TCmoves == 1);
-    et = 0;
-    ElapsedTime(COMPUTE_AND_INIT_MODE);
 }