From 0f48768c5ecbc705f4a92096598ad748eaccc7f6 Mon Sep 17 00:00:00 2001 From: gbtami Date: Wed, 7 Aug 2019 13:58:05 +0200 Subject: [PATCH] Fix updating gates on castling move --- src/position.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/position.cpp b/src/position.cpp index def94c0..1eede29 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -1296,8 +1296,8 @@ void Position::do_move(Move m, StateInfo& newSt, bool givesCheck) { { if (is_ok(from) && (gates(us) & from)) st->gatesBB[us] ^= from; - if (type_of(m) == CASTLING) - st->gatesBB[us] ^= to; + if (type_of(m) == CASTLING && (gates(us) & to_sq(m))) + st->gatesBB[us] ^= to_sq(m); if (gates(them) & to) st->gatesBB[them] ^= to; if (!count_in_hand(us, ALL_PIECES) && !captures_to_hand()) -- 1.7.0.4