bool square_is_weak(Square s, Color c) const;
// Doing and undoing moves
+ void setStartState(const StateInfo& st);
void do_move(Move m, StateInfo& st);
void undo_move(Move m);
void do_null_move(StateInfo& st);
static void init_piece_square_tables();
private:
+
+ enum {
+ Pinned = 1,
+ DcCandidates = 2
+ };
+
// Initialization helper functions (used while setting up a position)
void clear();
void put_piece(Piece p, Square s);
void allow_ooo(Color c);
// Helper functions for doing and undoing moves
- void init_new_state(StateInfo& newSt);
void do_capture_move(Move m, PieceType capture, Color them, Square to);
void do_castle_move(Move m);
void do_promotion_move(Move m);
void undo_promotion_move(Move m);
void undo_ep_move(Move m);
void find_checkers();
- void find_pinned();
+ void find_hidden_checks(Color us, unsigned int types);
+ void find_hidden_checks();
+ void update_hidden_checks(Square from, Square to);
template<PieceType Piece>
void update_checkers(Bitboard* pCheckersBB, Square ksq, Square from, Square to, Bitboard dcCandidates);