Remember promotion char in game history
[fairymax.git] / fairymax.c
index 8d6a125..bb842da 100644 (file)
@@ -68,10 +68,10 @@ int StartKey;
 #endif\r
 \r
 /* make unique integer from engine move representation */\r
-#define PACK_MOVE 256*K + L;\r
+#define PACK_MOVE 256*K + L + (PromPiece << 16);\r
 \r
 /* convert intger argument back to engine move representation */\r
-#define UNPACK_MOVE(A) K = (A)>>8 & 255; L = (A) & 255;\r
+#define UNPACK_MOVE(A) K = (A)>>8 & 255; L = (A) & 255; PromPiece = (A)>>16 & 255;\r
 \r
 /* Global variables visible to engine. Normally they */\r
 /* would be replaced by the names under which these  */\r
@@ -838,6 +838,7 @@ int main(int argc, char **argv)
                        setupPosition[128] = Side;\r
                        setupPosition[129] = R;\r
                        for(i=0; i<32; i++) setupPosition[i+130] = pl[i];\r
+                       Computer = EMPTY; // after edit: force mode!\r
                        continue;\r
                }\r
                 /* command not recognized, assume input move */\r