return (int) IllegalMove;\r
\r
result = LegalityTest(boards[yyboardindex],\r
- PosFlags(yyboardindex), EP_UNKNOWN,\r
+ PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: might think we can e.p.!\r
+ EP_UNKNOWN,\r
initialRights, /* [HGM] assume all castlings allowed */\r
currentMoveString[1] - ONE,\r
currentMoveString[0] - AAA,\r
return 0;\r
\r
result = LegalityTest(boards[yyboardindex],\r
- PosFlags(yyboardindex), EP_UNKNOWN,\r
+ PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: might think we can e.p.!\r
+ EP_UNKNOWN,\r
initialRights, /* [HGM] assume all castlings allowed */\r
currentMoveString[1] - ONE,\r
currentMoveString[0] - AAA,\r
if (WhiteOnMove(yyboardindex)) {\r
if (yytext[2+skip] == ONE) return (int) ImpossibleMove;\r
currentMoveString[1] = yytext[2+skip] - 1;\r
+ if(boards[yyboardindex][currentMoveString[1]-ONE][currentMoveString[0]-AAA] != WhitePawn) \r
+ return ImpossibleMove;\r
} else {\r
currentMoveString[1] = currentMoveString[3] + 1;\r
if (currentMoveString[3] == ONE+BOARD_HEIGHT-1) return (int) ImpossibleMove;\r
+ if(boards[yyboardindex][currentMoveString[1]-ONE][currentMoveString[0]-AAA] != BlackPawn) \r
+ return ImpossibleMove;\r
}\r
if (yyleng-skip > 3) {\r
if (yytext[yyleng-1] == ')')\r
}\r
\r
result = LegalityTest(boards[yyboardindex],\r
- PosFlags(yyboardindex), EP_UNKNOWN,\r
+ PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: might think we can e.p.!\r
+ EP_UNKNOWN,\r
initialRights, /* [HGM] assume all castlings allowed */\r
currentMoveString[1] - ONE,\r
currentMoveString[0] - AAA,\r
}\r
\r
result = LegalityTest(boards[yyboardindex],\r
- PosFlags(yyboardindex), EP_UNKNOWN,\r
+ PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: might think we can e.p.!\r
+ EP_UNKNOWN,\r
initialRights, /* [HGM] assume all castlings allowed */\r
currentMoveString[1] - ONE,\r
currentMoveString[0] - AAA,\r
fprintf(debugFP, "long castling %d %d\n", ff, ft);\r
}\r
return (int) LegalityTest(boards[yyboardindex],\r
- PosFlags(yyboardindex), EP_UNKNOWN,\r
+ PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: e.p.!\r
+ EP_UNKNOWN,\r
castlingRights[yyboardindex], /* [HGM] use true castling rights */\r
rf, ff, rt, ft, NULLCHAR);\r
}\r
}\r
\r
return (int) LegalityTest(boards[yyboardindex],\r
- PosFlags(yyboardindex), EP_UNKNOWN,\r
+ PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: e.p.!\r
+ EP_UNKNOWN,\r
castlingRights[yyboardindex], /* [HGM] use true castling rights */\r
rf, ff, rt, ft, NULLCHAR);\r
}\r