X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fposition.h;h=cc816910a3d0320f8e866f12b041dca0d5549ce4;hb=f148a8f6ccbb57c440910ecfd4845c7f497b5404;hp=6472d73551c4ac272dfa12ee79d14c9b6681871a;hpb=6c27bf18808889ae4aef73d03c6d6a8f7a6107b5;p=stockfish diff --git a/src/position.h b/src/position.h index 6472d735..cc816910 100644 --- a/src/position.h +++ b/src/position.h @@ -100,7 +100,7 @@ enum Phase { struct StateInfo { Key pawnKey, materialKey; - int castleRights, rule50, pliesFromNull; + int castleRights, rule50, ply, pliesFromNull; Square epSquare; Score value; Value npMaterial[2]; @@ -271,8 +271,9 @@ public: bool opposite_colored_bishops() const; bool has_pawn_on_7th(Color c) const; - // Reset the gamePly variable to 0 - void reset_game_ply(); + // Game ply information + int ply() const; + void reset_ply(); // Position consistency check, for debugging bool is_ok(int* failedStep = NULL) const; @@ -290,7 +291,7 @@ private: void allow_ooo(Color c); // Helper functions for doing and undoing moves - void do_capture_move(Bitboard& key, PieceType capture, Color them, Square to, bool ep); + void do_capture_move(Key& key, PieceType capture, Color them, Square to, bool ep); void do_castle_move(Move m); void undo_castle_move(Move m); void find_checkers(); @@ -323,7 +324,6 @@ private: // Other info Color sideToMove; - int gamePly; Key history[MaxGameLength]; int castleRightsMask[64]; StateInfo startState; @@ -334,7 +334,6 @@ private: static Key zobrist[2][8][64]; static Key zobEp[64]; static Key zobCastle[16]; - static Key zobMaterial[2][8][16]; static Key zobSideToMove; static Score PieceSquareTable[16][64]; static Key zobExclusion; @@ -483,7 +482,7 @@ inline bool Position::pawn_is_passed(Color c, Square s) const { } inline bool Position::square_is_weak(Square s, Color c) const { - return !(pieces(PAWN, opposite_color(c)) & outpost_mask(c, s)); + return !(pieces(PAWN, opposite_color(c)) & attack_span_mask(c, s)); } inline Key Position::get_key() const { @@ -558,4 +557,8 @@ inline PieceType Position::captured_piece() const { return st->capture; } +inline int Position::ply() const { + return st->ply; +} + #endif // !defined(POSITION_H_INCLUDED)