X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fposition.h;h=579b5308a82e6bea721cdec7ff5233a6a7b6ae93;hb=5f58db8c9971d8709093ca3c97cecdc99c61303e;hp=e575c3ef9a7127cec8e95d73f75ee0e12d112e12;hpb=3b49aeb4f22569c2b5d5ca830858c4dd584fae7f;p=stockfish diff --git a/src/position.h b/src/position.h index e575c3ef..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; @@ -155,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; @@ -179,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; @@ -191,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) @@ -330,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(); }