X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fpawns.cpp;h=f71e2a3970f8cbd520e8567ec7d6729126b05eb8;hp=6897969cb08398414470f902b839a9e67faec84b;hb=9793fa1906cc204fc2a520ebb8dd3093f7fc7e40;hpb=f59323b56a0920676c2589a36356a44fc42c8f40 diff --git a/src/pawns.cpp b/src/pawns.cpp index 6897969c..f71e2a39 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -104,8 +104,8 @@ PawnEntry* PawnTable::probe(const Position& pos) { e->kingSquares[WHITE] = e->kingSquares[BLACK] = SQ_NONE; e->halfOpenFiles[WHITE] = e->halfOpenFiles[BLACK] = 0xFF; - Bitboard wPawns = pos.pieces(PAWN, WHITE); - Bitboard bPawns = pos.pieces(PAWN, BLACK); + Bitboard wPawns = pos.pieces(WHITE, PAWN); + Bitboard bPawns = pos.pieces(BLACK, PAWN); e->pawnAttacks[WHITE] = ((wPawns & ~FileHBB) << 9) | ((wPawns & ~FileABB) << 7); e->pawnAttacks[BLACK] = ((bPawns & ~FileHBB) >> 7) | ((bPawns & ~FileABB) >> 9); @@ -260,6 +260,12 @@ template Score PawnEntry::update_safety(const Position& pos, Square ksq) { kingSquares[Us] = ksq; + castleRights[Us] = pos.can_castle(Us); + minKPdistance[Us] = 0; + + Bitboard pawns = pos.pieces(Us, PAWN); + if (pawns) + while (!(DistanceRingsBB[ksq][minKPdistance[Us]++] & pawns)) {} if (relative_rank(Us, ksq) > RANK_4) return kingSafety[Us] = SCORE_ZERO;