X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fpawns.cpp;h=135633a3ab9f74d8f1e6654983df16d781a92365;hp=e1952b60260d8a8a55666450f923f4d41a8d73ce;hb=404c4122ce8f5dd55593668fc87ae46236a71b92;hpb=cd782c11ec8e765e3a323e422cea19d7d053a07c diff --git a/src/pawns.cpp b/src/pawns.cpp index e1952b60..135633a3 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -17,6 +17,7 @@ along with this program. If not, see . */ +#include #include #include "bitboard.h" @@ -134,7 +135,7 @@ namespace { // be backward. If there are friendly pawns behind on adjacent files // or if can capture an enemy pawn it cannot be backward either. if ( !(passed | isolated | chain) - && !(ourPawns & attack_span_mask(Them, s)) + && !(ourPawns & pawn_attack_span(Them, s)) && !(pos.attacks_from(s, Us) & theirPawns)) { // We now know that there are no friendly pawns beside or behind this @@ -153,15 +154,15 @@ namespace { backward = (b | shift_bb(b)) & theirPawns; } - assert(opposed | passed | (attack_span_mask(Us, s) & theirPawns)); + assert(opposed | passed | (pawn_attack_span(Us, s) & theirPawns)); // A not passed pawn is a candidate to become passed if it is free to // advance and if the number of friendly pawns beside or behind this // pawn on adjacent files is higher or equal than the number of // enemy pawns in the forward direction on the adjacent files. candidate = !(opposed | passed | backward | isolated) - && (b = attack_span_mask(Them, s + pawn_push(Us)) & ourPawns) != 0 - && popcount(b) >= popcount(attack_span_mask(Us, s) & theirPawns); + && (b = pawn_attack_span(Them, s + pawn_push(Us)) & ourPawns) != 0 + && popcount(b) >= popcount(pawn_attack_span(Us, s) & theirPawns); // Passed pawns will be properly scored in evaluation because we need // full attack info to evaluate passed pawns. Only the frontmost passed @@ -220,7 +221,7 @@ Value Entry::shelter_storm(const Position& pos, Square ksq) { const Color Them = (Us == WHITE ? BLACK : WHITE); Value safety = MaxSafetyBonus; - Bitboard b = pos.pieces(PAWN) & (in_front_bb(Us, ksq) | rank_bb(ksq)); + Bitboard b = pos.pieces(PAWN) & (in_front_bb(Us, rank_of(ksq)) | rank_bb(ksq)); Bitboard ourPawns = b & pos.pieces(Us) & ~rank_bb(ksq); Bitboard theirPawns = b & pos.pieces(Them); Rank rkUs, rkThem;