X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fposition.h;h=b526bfe7e6e39c039f0b95d93f365b651057492c;hb=c6630abe0d6f229af7d6ae788643a0e8fa1737f7;hp=8e2ecf6019b812eb5872e2f7db27d36d65ea2528;hpb=2c955f25de9d4c263b6e6d37fef06b378eec49a0;p=stockfish diff --git a/src/position.h b/src/position.h index 8e2ecf60..b526bfe7 100644 --- a/src/position.h +++ b/src/position.h @@ -82,7 +82,7 @@ enum CastleRights { struct UndoInfo { int castleRights; Square epSquare; - Bitboard checkersBB; + Bitboard checkersBB, pinners[2], pinned[2], dcCandidates[2]; Key key, pawnKey, materialKey; int rule50; Move lastMove; @@ -197,6 +197,7 @@ public: // Bitboards for pinned pieces and discovered check candidates Bitboard discovered_check_candidates(Color c) const; + Bitboard pinned_pieces(Color c, Bitboard& p) const; Bitboard pinned_pieces(Color c) const; // Checking pieces @@ -215,13 +216,11 @@ public: template Bitboard piece_attacks_square(Square f, Square t) const; // Dispatch at compile-time - bool piece_attacks_square(Square f, Square t) const; // Dispatch at run-time + bool piece_attacks_square(Piece p, Square f, Square t) const; // Dispatch at run-time // Properties of moves bool pl_move_is_legal(Move m) const; - bool pl_move_is_legal(Move m, Bitboard pinned) const; bool move_is_check(Move m) const; - bool move_is_check(Move m, Bitboard dcCandidates) const; bool move_is_capture(Move m) const; bool move_is_deep_pawn_push(Move m) const; bool move_is_pawn_push_to_7th(Move m) const; @@ -312,7 +311,7 @@ private: void update_checkers(Bitboard* pCheckersBB, Square ksq, Square from, Square to, Bitboard dcCandidates); template - Bitboard hidden_checks(Color c, Square ksq) const; + Bitboard hidden_checks(Color c, Square ksq, Bitboard& pinners) const; // Computing hash keys from scratch (for initialization and debugging) Key compute_key() const; @@ -329,6 +328,7 @@ private: // Bitboards Bitboard byColorBB[2], byTypeBB[8]; Bitboard checkersBB; + mutable Bitboard pinners[2], pinned[2], dcCandidates[2]; // Board Piece board[64];