]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Do not pass pinned argument in Position::move_is_check()
[stockfish] / src / position.h
index 8e2ecf6019b812eb5872e2f7db27d36d65ea2528..b526bfe7e6e39c039f0b95d93f365b651057492c 100644 (file)
@@ -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<PieceType>
   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<PieceType Piece, bool FindPinned>
-  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];