X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpawns.cpp;h=d2ef33e61e499cef4a466d91a1d076de7d36830d;hb=f7cc0026e3291cd281d2e3975a5f01f63be162aa;hp=7b3dd8181ef9fc602b6868a4eba4a1d1a81bef77;hpb=73e8daa150173efd393a6b1987a4ca320664a397;p=stockfish diff --git a/src/pawns.cpp b/src/pawns.cpp index 7b3dd818..d2ef33e6 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -236,7 +236,8 @@ Entry* probe(const Position& pos) { template Value Entry::shelter_storm(const Position& pos, Square ksq) { - constexpr Color Them = (Us == WHITE ? BLACK : WHITE); + constexpr Color Them = (Us == WHITE ? BLACK : WHITE); + constexpr Direction Down = (Us == WHITE ? SOUTH : NORTH); enum { BlockedByKing, Unopposed, BlockedByPawn, Unblocked }; @@ -257,9 +258,9 @@ Value Entry::shelter_storm(const Position& pos, Square ksq) { int d = std::min(f, ~f); safety -= ShelterWeakness[f == file_of(ksq)][d][rkUs] + StormDanger - [f == file_of(ksq) && rkThem == relative_rank(Us, ksq) + 1 ? BlockedByKing : - rkUs == RANK_1 ? Unopposed : - rkThem == rkUs + 1 ? BlockedByPawn : Unblocked] + [(shift(b) & ksq) ? BlockedByKing : + rkUs == RANK_1 ? Unopposed : + rkThem == (rkUs + 1) ? BlockedByPawn : Unblocked] [d][rkThem]; }