From 6afcdaa928c4b7a9711b3df53d4cbb70616975f5 Mon Sep 17 00:00:00 2001 From: Tomasz Sobczyk Date: Sat, 3 Apr 2021 16:15:51 +0200 Subject: [PATCH] Add additional checks for en-passant possiblity when fixing the erroneus ep flag from a fen. --- src/extra/nnue_data_binpack_format.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/extra/nnue_data_binpack_format.h b/src/extra/nnue_data_binpack_format.h index dce53b83..b957fae6 100644 --- a/src/extra/nnue_data_binpack_format.h +++ b/src/extra/nnue_data_binpack_format.h @@ -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); }