X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=2106414ba2dd4f3475bf5cb42e2149539e939abf;hp=1078e03ed75fa5a4aa42bed002f0d7f820517c09;hb=4ae5a7b45a430aea5f4b21f9455b4db74ed1c44a;hpb=3b46df546dd8b17963abae887acff6e91e2b945e diff --git a/src/position.h b/src/position.h index 1078e03e..2106414b 100644 --- a/src/position.h +++ b/src/position.h @@ -46,6 +46,7 @@ struct StateInfo { Square epSquare; // Not copied when making a move (will be recomputed anyhow) + int repetition; Key key; Bitboard checkersBB; Piece capturedPiece; @@ -95,7 +96,7 @@ public: template int count() const; template const Square* squares(Color c) const; template Square square(Color c) const; - int semiopen_file(Color c, File f) const; + bool is_on_semiopen_file(Color c, Square s) const; // Castling int castling_rights(Color c) const; @@ -107,6 +108,7 @@ public: Bitboard checkers() const; Bitboard blockers_for_king(Color c) const; Bitboard check_squares(PieceType pt) const; + bool is_discovery_check_on_king(Color c, Move m) const; // Attacks to/from a given square Bitboard attackers_to(Square s) const; @@ -262,8 +264,8 @@ inline Square Position::ep_square() const { return st->epSquare; } -inline int Position::semiopen_file(Color c, File f) const { - return !(pieces(c, PAWN) & file_bb(f)); +inline bool Position::is_on_semiopen_file(Color c, Square s) const { + return !(pieces(c, PAWN) & file_bb(s)); } inline bool Position::can_castle(CastlingRight cr) const { @@ -315,13 +317,17 @@ inline Bitboard Position::check_squares(PieceType pt) const { return st->checkSquares[pt]; } +inline bool Position::is_discovery_check_on_king(Color c, Move m) const { + return st->blockersForKing[c] & from_sq(m); +} + inline bool Position::pawn_passed(Color c, Square s) const { return !(pieces(~c, PAWN) & passed_pawn_span(c, s)); } inline bool Position::advanced_pawn_push(Move m) const { return type_of(moved_piece(m)) == PAWN - && relative_rank(sideToMove, from_sq(m)) > RANK_4; + && relative_rank(sideToMove, to_sq(m)) > RANK_5; } inline int Position::pawns_on_same_color_squares(Color c, Square s) const {