Add additional checks for en-passant possiblity when fixing the erroneus ep flag from a fen.

This commit is contained in:
Tomasz Sobczyk
2021-04-03 16:15:51 +02:00
committed by nodchip
parent 876902070d
commit 6afcdaa928

View File

@@ -6115,6 +6115,26 @@ namespace chess
return false;
}
if (pieceAt(epSquare) != Piece::none())
{
return false;
}
const auto forward =
sideToMove == chess::Color::White
? FlatSquareOffset(0, 1)
: FlatSquareOffset(0, -1);
if (pieceAt(epSquare + forward) != Piece::none())
{
return false;
}
if (pieceAt(epSquare + -forward) != Piece(PieceType::Pawn, !sideToMove))
{
return false;
}
return isEpPossibleColdPath(epSquare, pawnsAttackingEpSquare, sideToMove);
}