]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Replace Position::copy()
[stockfish] / src / position.h
index 2db3d9653cafb86ca88d994d94c537d4ba081b11..946608c657672b743edfa3c39c4dd337a7b4acb6 100644 (file)
@@ -87,11 +87,12 @@ class Position {
 public:
   Position() {}
   Position(const Position& p) { *this = p; }
-  Position(const std::string& f, bool c960) { from_fen(f, c960); }
-  Position& operator=(const Position&);
+  Position(const Position& p, Thread* t) { *this = p; thisThread = t; }
+  Position(const std::string& f, bool c960, Thread* t) { from_fen(f, c960, t); }
+  void operator=(const Position&);
 
   // Text input/output
-  void from_fen(const std::string& fen, bool isChess960);
+  void from_fen(const std::string& fen, bool isChess960, Thread* th);
   const std::string to_fen() const;
   void print(Move m = MOVE_NONE) const;
 
@@ -171,6 +172,7 @@ public:
   Color side_to_move() const;
   int startpos_ply_counter() const;
   bool is_chess960() const;
+  Thread* this_thread() const;
   int64_t nodes_searched() const;
   void set_nodes_searched(int64_t n);
   template<bool SkipRepetition> bool is_draw() const;
@@ -218,6 +220,7 @@ private:
   int64_t nodes;
   int startPosPly;
   Color sideToMove;
+  Thread* thisThread;
   StateInfo* st;
   int chess960;
 
@@ -427,4 +430,8 @@ inline PieceType Position::captured_piece_type() const {
   return st->capturedType;
 }
 
+inline Thread* Position::this_thread() const {
+  return thisThread;
+}
+
 #endif // !defined(POSITION_H_INCLUDED)