From e80d0abb2c5030bb63be905efe9b1d8f62ce5a40 Mon Sep 17 00:00:00 2001 From: Peter Elliott Date: Tue, 18 Aug 2020 15:17:20 -0600 Subject: [PATCH] LibChess: Fix the ability to counter check with another check fixes #3187,#3171 --- Libraries/LibChess/Chess.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Libraries/LibChess/Chess.cpp b/Libraries/LibChess/Chess.cpp index 7220d7b6d5..58f8985670 100644 --- a/Libraries/LibChess/Chess.cpp +++ b/Libraries/LibChess/Chess.cpp @@ -334,11 +334,7 @@ bool Board::in_check(Colour colour) const bool check = false; Square::for_each([&](const Square& square) { - if (is_legal({ square, king_square }, opposing_colour(colour))) { - check = true; - return IterationDecision::Break; - } else if (get_piece(square) == Piece(opposing_colour(colour), Type::King) && is_legal_no_check({ square, king_square }, opposing_colour(colour))) { - // The King is a special case, because it would be in check if it put the opposing king in check. + if (is_legal_no_check({ square, king_square }, opposing_colour(colour))) { check = true; return IterationDecision::Break; }