diff --git a/src/position.cpp b/src/position.cpp index f1222a66f..218be153d 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -819,13 +819,10 @@ void Position::do_move(Move m, st->epSquare = SQ_NONE; } - // Update castling rights if needed - if (st->castlingRights && (castlingRightsMask[from] | castlingRightsMask[to])) - { - k ^= Zobrist::castling[st->castlingRights]; - st->castlingRights &= ~(castlingRightsMask[from] | castlingRightsMask[to]); - k ^= Zobrist::castling[st->castlingRights]; - } + // Update castling rights. + k ^= Zobrist::castling[st->castlingRights]; + st->castlingRights &= ~(castlingRightsMask[from] | castlingRightsMask[to]); + k ^= Zobrist::castling[st->castlingRights]; // Move the piece. The tricky Chess960 castling is handled earlier if (m.type_of() != CASTLING)