]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Offset pv[] always from 0
[stockfish] / src / position.h
index 766a84518c3f5a1f3bac447a119cd4788f1a0d8d..676122c23d400efc87db144749d840323f7beb22 100644 (file)
@@ -100,7 +100,7 @@ enum Phase {
 
 struct StateInfo {
   Key pawnKey, materialKey;
-  int castleRights, rule50, gamePly, pliesFromNull;
+  int castleRights, rule50, ply, pliesFromNull;
   Square epSquare;
   Score value;
   Value npMaterial[2];
@@ -139,6 +139,9 @@ class Position {
   friend class MaterialInfo;
   friend class EndgameFunctions;
 
+  Position(); // No default or copy c'tor allowed
+  Position(const Position& pos);
+
 public:
   enum GamePhase {
       MidGame,
@@ -146,9 +149,9 @@ public:
   };
 
   // Constructors
-  Position();
-  explicit Position(const Position& pos);
-  explicit Position(const std::string& fen);
+  explicit Position(int threadID);
+  Position(const Position& pos, int threadID);
+  Position(const std::string& fen, int threadID);
 
   // Text input/output
   void from_fen(const std::string& fen);
@@ -271,8 +274,10 @@ 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 thread() const;
+  int ply() const;
+  void reset_ply();
 
   // Position consistency check, for debugging
   bool is_ok(int* failedStep = NULL) const;
@@ -327,6 +332,7 @@ private:
   int castleRightsMask[64];
   StateInfo startState;
   File initialKFile, initialKRFile, initialQRFile;
+  int threadID;
   StateInfo* st;
 
   // Static variables
@@ -556,4 +562,12 @@ inline PieceType Position::captured_piece() const {
   return st->capture;
 }
 
+inline int Position::thread() const {
+  return threadID;
+}
+
+inline int Position::ply() const {
+  return st->ply;
+}
+
 #endif // !defined(POSITION_H_INCLUDED)