struct StateInfo {
Key pawnKey, materialKey;
- int castleRights, rule50, gamePly, pliesFromNull;
- Square epSquare;
- Score value;
Value npMaterial[2];
+ int castleRights, rule50, pliesFromNull;
+ Score value;
+ Square epSquare;
Key key;
Bitboard checkersBB;
bool is_mate() const;
template<bool SkipRepetition> bool is_draw() const;
- // Number of plies from starting position
- int game_ply() const;
+ // Plies from start position to the beginning of search
+ int startpos_ply_counter() const;
// Other properties of the position
bool opposite_colored_bishops() const;
Square castleRookSquare[16]; // [castleRight]
StateInfo startState;
int64_t nodes;
+ int startPosPly;
Color sideToMove;
int threadID;
StateInfo* st;
&& pawn_is_passed(c, move_to(m));
}
-inline int Position::game_ply() const {
- return st->gamePly;
+inline int Position::startpos_ply_counter() const {
+ return startPosPly + st->pliesFromNull; // HACK
}
inline bool Position::opposite_colored_bishops() const {