]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Change move_is_ok() and square_is_ok() in something useful
[stockfish] / src / position.h
index 0a6ab136156577d577d840ad6b95694a514c155a..91b341ad0ec428469415b424be6b67cce0d181d7 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;
@@ -454,12 +456,12 @@ inline Square Position::initial_qr_square(Color c) const {
 
 template<>
 inline Bitboard Position::attacks_from<PAWN>(Square s, Color c) const {
-  return StepAttackBB[piece_of_color_and_type(c, PAWN)][s];
+  return NonSlidingAttacksBB[piece_of_color_and_type(c, PAWN)][s];
 }
 
 template<PieceType Piece> // Knight and King and white pawns
 inline Bitboard Position::attacks_from(Square s) const {
-  return StepAttackBB[Piece][s];
+  return NonSlidingAttacksBB[Piece][s];
 }
 
 template<>
@@ -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 !