X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.cpp;h=2f3c62f552ac8fec90ef1e1bb3fa1d8f7600702e;hp=d141b4881dc9a622b4218b79ef9c927cdb9628ae;hb=dd4e5db2be2eb5631d739af634cb33bea2f3fddd;hpb=5f2bf91ad18069e77e5c0e32c387b2200abd94d9;ds=sidebyside diff --git a/src/position.cpp b/src/position.cpp index d141b488..2f3c62f5 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -633,14 +633,11 @@ bool Position::gives_check(Move m, const CheckInfo& ci) const { if (ci.checkSq[pt] & to) return true; - // Discovery check ? - if (unlikely(ci.dcCandidates) && (ci.dcCandidates & from)) - { - // For pawn and king moves we need to verify also direction - if ( (pt != PAWN && pt != KING) - || !aligned(from, to, king_square(~sideToMove))) - return true; - } + // Discovered check ? + if ( unlikely(ci.dcCandidates) + && (ci.dcCandidates & from) + && !aligned(from, to, king_square(~sideToMove))) + return true; // Can we skip the ugly special cases ? if (type_of(m) == NORMAL)