A promotion move is not considered a possible evasion as it could be.
Bug introduced by patch
Convert also generate_pawn_blocking_evasions() to new API (7/5/2009)
Bug spotted by Kenny Dail.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Bitboard blockSquares, MoveStack* mlist) {
// Calculate our parametrized parameters at compile time
Bitboard blockSquares, MoveStack* mlist) {
// Calculate our parametrized parameters at compile time
- const Bitboard TRank8BB = (Us == WHITE ? Rank8BB : Rank1BB);
+ const Rank TRANK_8 = (Us == WHITE ? RANK_8 : RANK_1);
const Bitboard TRank3BB = (Us == WHITE ? Rank3BB : Rank6BB);
const SquareDelta TDELTA_N = (Us == WHITE ? DELTA_N : DELTA_S);
const Bitboard TRank3BB = (Us == WHITE ? Rank3BB : Rank6BB);
const SquareDelta TDELTA_N = (Us == WHITE ? DELTA_N : DELTA_S);
assert(pos.piece_on(to) == EMPTY);
assert(pos.piece_on(to) == EMPTY);
- if (square_rank(to) == TRank8BB)
+ if (square_rank(to) == TRANK_8)
{
(*mlist++).move = make_promotion_move(to - TDELTA_N, to, QUEEN);
(*mlist++).move = make_promotion_move(to - TDELTA_N, to, ROOK);
{
(*mlist++).move = make_promotion_move(to - TDELTA_N, to, QUEEN);
(*mlist++).move = make_promotion_move(to - TDELTA_N, to, ROOK);