X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fposition.h;h=579b5308a82e6bea721cdec7ff5233a6a7b6ae93;hb=08d615cc9500713d89bd20dd0963258932abf627;hp=738fe8c9968272de24ec578a636eba5c032d37df;hpb=239d7b3fd144d2b493bb47ea97a436cec8ae5990;p=stockfish diff --git a/src/position.h b/src/position.h index 738fe8c9..579b5308 100644 --- a/src/position.h +++ b/src/position.h @@ -30,7 +30,7 @@ /// The checkInfo struct is initialized at c'tor time and keeps info used /// to detect if a move gives check. class Position; -class Thread; +struct Thread; struct CheckInfo { @@ -122,7 +122,6 @@ public: Square castle_rook_square(Color c, CastlingSide s) const; // Checking - bool in_check() const; Bitboard checkers() const; Bitboard discovered_check_candidates() const; Bitboard pinned_pieces() const; @@ -137,7 +136,6 @@ public: // Properties of moves bool move_gives_check(Move m, const CheckInfo& ci) const; - bool move_is_legal(const Move m) const; bool pl_move_is_legal(Move m, Bitboard pinned) const; bool is_pseudo_legal(const Move m) const; bool is_capture(Move m) const; @@ -156,7 +154,8 @@ public: void do_move(Move m, StateInfo& st); void do_move(Move m, StateInfo& st, const CheckInfo& ci, bool moveIsCheck); void undo_move(Move m); - template void do_null_move(StateInfo& st); + void do_null_move(StateInfo& st); + void undo_null_move(); // Static exchange evaluation int see(Move m) const; @@ -180,7 +179,7 @@ public: Thread* this_thread() const; int64_t nodes_searched() const; void set_nodes_searched(int64_t n); - template bool is_draw() const; + template bool is_draw() const; // Position consistency check, for debugging bool pos_is_ok(int* failedStep = NULL) const; @@ -192,8 +191,8 @@ private: void put_piece(Piece p, Square s); void set_castle_right(Color c, Square rfrom); - // Helper template functions - template void do_castle_move(Move m); + // Helper functions + void do_castle(Square kfrom, Square kto, Square rfrom, Square rto); template Bitboard hidden_checkers() const; // Computing hash keys from scratch (for initialization and debugging) @@ -331,10 +330,6 @@ inline Bitboard Position::checkers() const { return st->checkersBB; } -inline bool Position::in_check() const { - return st->checkersBB != 0; -} - inline Bitboard Position::discovered_check_candidates() const { return hidden_checkers(); }