X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=91b341ad0ec428469415b424be6b67cce0d181d7;hp=0a6ab136156577d577d840ad6b95694a514c155a;hb=5fc8f86a4f37de0e919c163c81f04b8717a70d3f;hpb=22ede4442cd285d7365b9497c3be65fb2c66b4be diff --git a/src/position.h b/src/position.h index 0a6ab136..91b341ad 100644 --- a/src/position.h +++ b/src/position.h @@ -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(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 // 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 !