Fix phantom castlings in Spartan Chess
[fairymax.git] / fairymax.c
index c135fb6..30396a2 100644 (file)
@@ -18,7 +18,7 @@
      /*****************************************************************/\r
 \r
 #define MULTIPATH\r
-#define VERSION "4.8P"\r
+#define VERSION "4.8Q"\r
 \r
 #include <stdio.h>\r
 #include <stdlib.h>\r
@@ -412,7 +412,7 @@ void CopyBoard(int s)
                                          \r
 void PrintVariants(int combo)\r
 {\r
-        int i, j, count=0, total=0; char c, buf[80];\r
+        int i, j, count=0, total=0; char c=EOF+1, buf[80];\r
         FILE *f;\r
 \r
         f = fopen(INI_FILE, "r");\r
@@ -866,6 +866,7 @@ int main(int argc, char **argv)
                 else { int i=-1;\r
                     if(b[L] && (b[L]&16) == Side && w[b[L]&15] < 0) // capture own King: castling\r
                     { i=K; K = L; L = i>L ? i-1 : i+2; }\r
+                   if(w[GT&15] < -1) pl[GT&31]++, J+=89729; // promotion to royal piece\r
                     if(b[K]&32) GT = 0; // non-virgin mover => true promotion rather than gating\r
                     if(D(Side,-I,I,Q,O,LL|S,3)!=I) {\r
                         /* did have move syntax, but illegal move */\r