X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fpawns.cpp;h=37db2cf513e0babdc11b7235da701dfa3311c840;hp=d65b0418f0145f448c3d37dff8ecb7262c86fdaf;hb=549b5c478f0f455186945033559c4affe8f940ed;hpb=457ac26de5e2925c87bdc0169478d138074c50f8 diff --git a/src/pawns.cpp b/src/pawns.cpp index d65b0418..37db2cf5 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -99,7 +99,7 @@ namespace { Bitboard ourPawns = pos.pieces(Us, PAWN); Bitboard theirPawns = pos.pieces(Them, PAWN); - e->passedPawns[Us] = 0; + e->passedPawns[Us] = e->candidatePawns[Us] = 0; e->kingSquares[Us] = SQ_NONE; e->semiopenFiles[Us] = 0xFF; e->pawnAttacks[Us] = shift_bb(ourPawns) | shift_bb(ourPawns); @@ -179,7 +179,12 @@ namespace { value += ChainMember[f]; if (candidate) + { value += CandidatePassed[relative_rank(Us, s)]; + + if (!doubled) + e->candidatePawns[Us] |= s; + } } return value; @@ -222,7 +227,7 @@ Value Entry::shelter_storm(const Position& pos, Square ksq) { Rank rkUs, rkThem; File kf = std::max(FILE_B, std::min(FILE_G, file_of(ksq))); - for (int f = kf - 1; f <= kf + 1; f++) + for (int f = kf - 1; f <= kf + 1; ++f) { b = ourPawns & FileBB[f]; rkUs = b ? relative_rank(Us, backmost_sq(Us, b)) : RANK_1;