mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 09:06:45 +08:00
Get rid of some locals in do_castle_move()
Rewrite the logic to get rid of kBefore and rBefore. No functional change.
This commit is contained in:
@@ -1052,30 +1052,24 @@ void Position::do_castle_move(Move m) {
|
||||
assert(is_ok(m));
|
||||
assert(type_of(m) == CASTLE);
|
||||
|
||||
Square kto, kfrom, rfrom, rto, kAfter, rAfter;
|
||||
|
||||
Color us = sideToMove;
|
||||
Square kBefore = from_sq(m);
|
||||
Square rBefore = to_sq(m);
|
||||
Square kfrom, kto, rfrom, rto;
|
||||
|
||||
// Find after-castle squares for king and rook
|
||||
if (rBefore > kBefore) // O-O
|
||||
bool kingSide = to_sq(m) > from_sq(m);
|
||||
kfrom = kto = from_sq(m);
|
||||
rfrom = rto = to_sq(m);
|
||||
|
||||
if (Do)
|
||||
{
|
||||
kAfter = relative_square(us, SQ_G1);
|
||||
rAfter = relative_square(us, SQ_F1);
|
||||
kto = relative_square(us, kingSide ? SQ_G1 : SQ_C1);
|
||||
rto = relative_square(us, kingSide ? SQ_F1 : SQ_D1);
|
||||
}
|
||||
else // O-O-O
|
||||
else
|
||||
{
|
||||
kAfter = relative_square(us, SQ_C1);
|
||||
rAfter = relative_square(us, SQ_D1);
|
||||
kfrom = relative_square(us, kingSide ? SQ_G1 : SQ_C1);
|
||||
rfrom = relative_square(us, kingSide ? SQ_F1 : SQ_D1);
|
||||
}
|
||||
|
||||
kfrom = Do ? kBefore : kAfter;
|
||||
rfrom = Do ? rBefore : rAfter;
|
||||
|
||||
kto = Do ? kAfter : kBefore;
|
||||
rto = Do ? rAfter : rBefore;
|
||||
|
||||
assert(piece_on(kfrom) == make_piece(us, KING));
|
||||
assert(piece_on(rfrom) == make_piece(us, ROOK));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user