// Copied when making a move
Key materialKey;
+ Key pawnKey;
Value nonPawnMaterial[COLOR_NB];
int castlingRights;
int rule50;
Key key() const;
Key key_after(Move m) const;
Key material_key() const;
+ Key pawn_key() const;
// Other properties of the position
Color side_to_move() const;
return st->rule50 < 14 - AfterMove ? k : k ^ make_key((st->rule50 - (14 - AfterMove)) / 8);
}
+inline Key Position::pawn_key() const { return st->pawnKey; }
+
inline Key Position::material_key() const { return st->materialKey; }
inline Value Position::non_pawn_material(Color c) const { return st->nonPawnMaterial[c]; }