]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Do not pass discovery check candidates in Position::do_move()
[stockfish] / src / position.h
index ceebce1c61c79e47683338ce7d913c6e8b1bb38c..94b7003373d817fe6f40be5b13701b4197c6fd20 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
@@ -219,9 +220,7 @@ public:
 
   // 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;
@@ -245,7 +244,6 @@ public:
   void backup(UndoInfo &u) const;
   void restore(const UndoInfo &u);
   void do_move(Move m, UndoInfo &u);
-  void do_move(Move m, UndoInfo &u, Bitboard dcCandidates);
   void undo_move(Move m, const UndoInfo &u);
   void do_null_move(UndoInfo &u);
   void undo_null_move(const UndoInfo &u);
@@ -312,7 +310,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 +327,7 @@ private:
   // Bitboards
   Bitboard byColorBB[2], byTypeBB[8];
   Bitboard checkersBB;
+  mutable Bitboard pinners[2], pinned[2], dcCandidates[2];
 
   // Board
   Piece board[64];