Add remark on royal-on-hill winning condition in ini file
[fairymax.git] / fairymax.c
index 418c926..2046aaa 100644 (file)
@@ -276,7 +276,7 @@ int k,q,l,e,E,z,n;      /* (q,l)=window, e=current eval. score, E=e.p. sqr.*/
         )t+=flag&4;                            /* fake capt. for nonsliding*/\r
       else if(flag&64)t=flag&128?0:t,flag&=63;else F=y; /* enable e.p.     */\r
       if(s&&flag&8&&!(y=rg&1?y-r:y,t=0)        /* hoppers go to next phase */\r
-         ||!(flag&S)&&--rg<0)                  /* zig-zag piece? (w. delay)*/\r
+         ||!(flag&S)&&!rg--)                   /* zig-zag piece? (w. delay)*/\r
        r=v,flag^=flag>>4&15;                   /* alternate vector & mode  */\r
      }W(!t);                                   /* if not capt. continue ray*/\r
    }}\r
@@ -503,7 +503,7 @@ void LoadGame(char *name)
         /* We have found variant, or if none specified, are at beginning of file */\r
         if(fscanf(f, "%dx%d", &BW, &BH)!=2 || BW>12 || BH!=8)\r
         { printf("telluser unsupported board size %dx%d\n",BW,BH); exit(0); }\r
-        makruk = 0; if(fscanf(f, "=%d", &i)) makruk=64; // new method to indicate deviant zone depth (for now assumes 3)\r
+        makruk = 0; if(fscanf(f, "=%d", &i)) makruk=67-i; // new method to indicate deviant zone depth (for now assumes 3)\r
 \r
         for(i=0; i<BW; i++) fscanf(f, "%d", oo+i);\r
         for(i=0; i<BW; i++) fscanf(f, "%d", oo+i+16);\r
@@ -539,6 +539,7 @@ void LoadGame(char *name)
         }\r
        while(fscanf(f, " # %[^\n]", pieceToChar)) printf("piece %s\n", pieceToChar);\r
         fclose(f);\r
+       if(makruk != 64) makruk = 0; // 66 was kludge to interpret "=1" suffix in asean for setting up 3rd-rank Pawns\r
 }\r
 \r
 int main(int argc, char **argv)\r