X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmovegen.cpp;h=2d96ec4c605339f23afb971ed3dfec483c651f1a;hp=7bddeb6e8aa27a2d16b70b2596737961ed884894;hb=6845397c5cbec26f3a0442091e6a48d356719c3c;hpb=f74f42b2982e25e180417948771843e8bb6bd4b7 diff --git a/src/movegen.cpp b/src/movegen.cpp index 7bddeb6e..2d96ec4c 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -253,7 +253,7 @@ MoveStack* generate_evasions(const Position& pos, MoveStack* mlist, Bitboard pin } // Generate evasions for king - Bitboard b1 = pos.piece_attacks(ksq) & ~pos.pieces_of_color(us) & ~checkersAttacks; + Bitboard b1 = pos.piece_attacks_from(ksq) & ~pos.pieces_of_color(us) & ~checkersAttacks; while (b1) { to = pop_1st_bit(&b1); @@ -275,7 +275,7 @@ MoveStack* generate_evasions(const Position& pos, MoveStack* mlist, Bitboard pin // Generate captures of the checking piece // Pawn captures - b1 = pos.pawn_attacks(checksq, them) & pos.pieces(PAWN, us) & ~pinned; + b1 = pos.pawn_attacks_from(checksq, them) & pos.pieces(PAWN, us) & ~pinned; while (b1) { from = pop_1st_bit(&b1); @@ -290,9 +290,9 @@ MoveStack* generate_evasions(const Position& pos, MoveStack* mlist, Bitboard pin } // Pieces captures - b1 = ( (pos.piece_attacks(checksq) & pos.pieces(KNIGHT, us)) - | (pos.piece_attacks(checksq) & pos.pieces(BISHOP, QUEEN, us)) - | (pos.piece_attacks(checksq) & pos.pieces(ROOK, QUEEN, us)) ) & ~pinned; + b1 = ( (pos.piece_attacks_from(checksq) & pos.pieces(KNIGHT, us)) + | (pos.piece_attacks_from(checksq) & pos.pieces(BISHOP, QUEEN, us)) + | (pos.piece_attacks_from(checksq) & pos.pieces(ROOK, QUEEN, us)) ) & ~pinned; while (b1) { @@ -326,7 +326,7 @@ MoveStack* generate_evasions(const Position& pos, MoveStack* mlist, Bitboard pin if (pos.ep_square() != SQ_NONE && (checkers & pos.pieces(PAWN, them))) { to = pos.ep_square(); - b1 = pos.pawn_attacks(to, them) & pos.pieces(PAWN, us); + b1 = pos.pawn_attacks_from(to, them) & pos.pieces(PAWN, us); // The checking pawn cannot be a discovered (bishop) check candidate // otherwise we were in check also before last double push move. @@ -557,7 +557,7 @@ bool move_is_legal(const Position& pos, const Move m, Bitboard pinned) { } // Luckly we can handle all the other pieces in one go - return ( bit_is_set(pos.piece_attacks(pc, from), to) + return ( bit_is_set(pos.piece_attacks_from(pc, from), to) && pos.pl_move_is_legal(m, pinned) && !move_is_promotion(m)); } @@ -598,7 +598,7 @@ namespace { for (int i = 0, e = pos.piece_count(us, Piece); i < e; i++) { from = pos.piece_list(us, Piece, i); - b = pos.piece_attacks(from) & target; + b = pos.piece_attacks_from(from) & target; SERIALIZE_MOVES(b); } return mlist; @@ -616,7 +616,7 @@ namespace { if (pinned && bit_is_set(pinned, from)) continue; - b = pos.piece_attacks(from) & target; + b = pos.piece_attacks_from(from) & target; SERIALIZE_MOVES(b); } return mlist; @@ -628,7 +628,7 @@ namespace { Bitboard b; Square from = pos.king_square(us); - b = pos.piece_attacks(from) & target; + b = pos.piece_attacks_from(from) & target; SERIALIZE_MOVES(b); return mlist; } @@ -700,7 +700,7 @@ namespace { assert(Us != WHITE || square_rank(pos.ep_square()) == RANK_6); assert(Us != BLACK || square_rank(pos.ep_square()) == RANK_3); - Bitboard b1 = pawns & pos.pawn_attacks(pos.ep_square(), Them); + Bitboard b1 = pawns & pos.pawn_attacks_from(pos.ep_square(), Them); assert(b1 != EmptyBoardBB); while (b1) @@ -819,11 +819,11 @@ namespace { // Direct checks, single pawn pushes Bitboard empty = pos.empty_squares(); b2 = move_pawns(b1) & empty; - b3 = b2 & pos.pawn_attacks(ksq, Them); + b3 = b2 & pos.pawn_attacks_from(ksq, Them); SERIALIZE_MOVES_D(b3, -TDELTA_N); // Direct checks, double pawn pushes - b3 = move_pawns(b2 & TRank3BB) & empty & pos.pawn_attacks(ksq, Them); + b3 = move_pawns(b2 & TRank3BB) & empty & pos.pawn_attacks_from(ksq, Them); SERIALIZE_MOVES_D(b3, -TDELTA_N -TDELTA_N); return mlist; } @@ -839,7 +839,7 @@ namespace { while (b) { Square from = pop_1st_bit(&b); - Bitboard bb = pos.piece_attacks(from) & pos.empty_squares(); + Bitboard bb = pos.piece_attacks_from(from) & pos.empty_squares(); if (Piece == KING) bb &= ~QueenPseudoAttacks[ksq]; @@ -850,7 +850,7 @@ namespace { b = target & ~dc; if (Piece != KING || b) { - Bitboard checkSqs = pos.piece_attacks(ksq) & pos.empty_squares(); + Bitboard checkSqs = pos.piece_attacks_from(ksq) & pos.empty_squares(); if (!checkSqs) return mlist; @@ -862,7 +862,7 @@ namespace { || (Piece == BISHOP && !(BishopPseudoAttacks[from] & checkSqs))) continue; - Bitboard bb = pos.piece_attacks(from) & checkSqs; + Bitboard bb = pos.piece_attacks_from(from) & checkSqs; SERIALIZE_MOVES(bb); } }