X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fposition.h;h=3fabf64c8156ddac239390d58fcb79bb10f81eb8;hb=5f142ec2098531bac1780f67579dedbd12d18dcc;hp=8e2ecf6019b812eb5872e2f7db27d36d65ea2528;hpb=2c955f25de9d4c263b6e6d37fef06b378eec49a0;p=stockfish diff --git a/src/position.h b/src/position.h index 8e2ecf60..3fabf64c 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,7 +216,7 @@ 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; @@ -312,7 +313,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 +330,7 @@ private: // Bitboards Bitboard byColorBB[2], byTypeBB[8]; Bitboard checkersBB; + mutable Bitboard pinners[2], pinned[2], dcCandidates[2]; // Board Piece board[64];