}
template<Color Us>
- Score king_safety(const Position& pos, Square ksq) {
- return kingSquares[Us] == ksq && castlingRights[Us] == pos.can_castle(Us)
- ? kingSafety[Us] : (kingSafety[Us] = do_king_safety<Us>(pos, ksq));
+ Score king_safety(const Position& pos) {
+ return kingSquares[Us] == pos.square<KING>(Us) && castlingRights[Us] == pos.can_castle(Us)
+ ? kingSafety[Us] : (kingSafety[Us] = do_king_safety<Us>(pos));
}
template<Color Us>
- Score do_king_safety(const Position& pos, Square ksq);
+ Score do_king_safety(const Position& pos);
template<Color Us>
- Value shelter_storm(const Position& pos, Square ksq);
+ Value evaluate_shelter(const Position& pos, Square ksq);
Key key;
Score scores[COLOR_NB];