]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Another attempt at fixing Chess960
[stockfish] / src / position.h
index 0a6ab136156577d577d840ad6b95694a514c155a..600c1648205f2d7cf9e6c4e8a7d7032c004de921 100644 (file)
@@ -134,11 +134,11 @@ public:
 
   // Constructors
   Position(const Position& pos, int threadID);
-  Position(const std::string& fen, int threadID);
+  Position(const std::string& fen, bool isChess960, int threadID);
 
   // Text input/output
-  void from_fen(const std::string& fen);
-  const std::string to_fen(bool isChess960) const;
+  void from_fen(const std::string& fen, bool isChess960);
+  const std::string to_fen() const;
   void print(Move m = MOVE_NONE) const;
 
   // Copying
@@ -258,6 +258,7 @@ public:
   // Other properties of the position
   bool opposite_colored_bishops() const;
   bool has_pawn_on_7th(Color c) const;
+  bool is_chess960() const;
 
   // Current thread ID searching on the position
   int thread() const;
@@ -322,6 +323,7 @@ private:
   int castleRightsMask[64];
   StateInfo startState;
   File initialKFile, initialKRFile, initialQRFile;
+  bool isChess960;
   int startPosPlyCounter;
   int threadID;
   int64_t nodes;
@@ -551,6 +553,10 @@ inline bool Position::has_pawn_on_7th(Color c) const {
   return pieces(PAWN, c) & relative_rank_bb(c, RANK_7);
 }
 
+inline bool Position::is_chess960() const {
+  return isChess960;
+}
+
 inline bool Position::move_is_capture(Move m) const {
 
   // Move must not be MOVE_NONE !