X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fpawns.cpp;h=4ca1bb0efcc71c58013a1d124472d383e4254990;hp=d05e8af0cd3cf6783410339c3bfff14ca5bf059a;hb=b88bc7b7667fc6ddbfc7412fb2c0bfc13e3bf11c;hpb=5ea984ac3515946d952bd3c9cfe8e8baef7cc85d diff --git a/src/pawns.cpp b/src/pawns.cpp index d05e8af0..4ca1bb0e 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -93,7 +93,7 @@ namespace { Rank r; bool passed, isolated, doubled, opposed, chain, backward, candidate; Score value = SCORE_ZERO; - const Square* pl = pos.piece_list(Us, PAWN); + const Square* pl = pos.list(Us); Bitboard ourPawns = pos.pieces(Us, PAWN); Bitboard theirPawns = pos.pieces(Them, PAWN); @@ -103,7 +103,7 @@ namespace { e->semiopenFiles[Us] = 0xFF; e->pawnAttacks[Us] = shift_bb(ourPawns) | shift_bb(ourPawns); e->pawnsOnSquares[Us][BLACK] = popcount(ourPawns & BlackSquares); - e->pawnsOnSquares[Us][WHITE] = pos.piece_count(Us, PAWN) - e->pawnsOnSquares[Us][BLACK]; + e->pawnsOnSquares[Us][WHITE] = pos.count(Us) - e->pawnsOnSquares[Us][BLACK]; // Loop through all pawns of the current color and score each pawn while ((s = *pl++) != SQ_NONE) @@ -134,7 +134,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 +153,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 +220,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;