X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fposition.cpp;h=5a42792eb8a97bc105883a0436cf6cc42f903de5;hb=4e151f7e0d70b9a61ac5adba269a80555133cb73;hp=2ede62feecd8d7b201baaa9044bf3c59d5241f1a;hpb=b35e59355134e34b00108c2ad58ea46df60eb301;p=stockfish diff --git a/src/position.cpp b/src/position.cpp index 2ede62fe..5a42792e 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -599,19 +599,17 @@ bool Position::move_is_check(Move m, Bitboard dcCandidates) const { case BISHOP: return (dcCandidates && bit_is_set(dcCandidates, from)) - || ( direction_between_squares(ksq, to) != DIR_NONE - && bit_is_set(piece_attacks(ksq), to)); + || (direction_is_diagonal(ksq, to) && bit_is_set(piece_attacks(ksq), to)); case ROOK: return (dcCandidates && bit_is_set(dcCandidates, from)) - || ( direction_between_squares(ksq, to) != DIR_NONE - && bit_is_set(piece_attacks(ksq), to)); + || (direction_is_straight(ksq, to) && bit_is_set(piece_attacks(ksq), to)); case QUEEN: // Discovered checks are impossible! assert(!bit_is_set(dcCandidates, from)); - return ( direction_between_squares(ksq, to) != DIR_NONE - && bit_is_set(piece_attacks(ksq), to)); + return ( (direction_is_straight(ksq, to) && bit_is_set(piece_attacks(ksq), to)) + || (direction_is_diagonal(ksq, to) && bit_is_set(piece_attacks(ksq), to))); case KING: // Discovered check?