X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=a40687e7797afe35afbcdc2fec61cd98eaaf2a82;hp=34e2f7eef16d0fdb9df11f043087801f3b33aa3d;hb=2af2c67650c4ac2531e6ab2753830f91c0999876;hpb=9afa1d73306cb98e95acec5daf4efd65e592ceff diff --git a/src/position.h b/src/position.h index 34e2f7ee..a40687e7 100644 --- a/src/position.h +++ b/src/position.h @@ -52,7 +52,7 @@ struct StateInfo { Piece capturedPiece; StateInfo* previous; Bitboard blockersForKing[COLOR_NB]; - Bitboard pinnersForKing[COLOR_NB]; + Bitboard pinners[COLOR_NB]; Bitboard checkSquares[PIECE_TYPE_NB]; }; @@ -105,8 +105,7 @@ public: // Checking Bitboard checkers() const; - Bitboard discovered_check_candidates() const; - Bitboard pinned_pieces(Color c) const; + Bitboard blockers_for_king(Color c) const; Bitboard check_squares(PieceType pt) const; // Attacks to/from a given square @@ -153,6 +152,8 @@ public: bool is_chess960() const; Thread* this_thread() const; bool is_draw(int ply) const; + bool has_game_cycle(int ply) const; + bool has_repeated() const; int rule50_count() const; Score psq_score() const; Value non_pawn_material(Color c) const; @@ -296,12 +297,8 @@ inline Bitboard Position::checkers() const { return st->checkersBB; } -inline Bitboard Position::discovered_check_candidates() const { - return st->blockersForKing[~sideToMove] & pieces(sideToMove); -} - -inline Bitboard Position::pinned_pieces(Color c) const { - return st->blockersForKing[c] & pieces(c); +inline Bitboard Position::blockers_for_king(Color c) const { + return st->blockersForKing[c]; } inline Bitboard Position::check_squares(PieceType pt) const { @@ -410,10 +407,10 @@ inline void Position::move_piece(Piece pc, Square from, Square to) { // index[from] is not updated and becomes stale. This works as long as index[] // is accessed just by known occupied squares. - Bitboard from_to_bb = SquareBB[from] ^ SquareBB[to]; - byTypeBB[ALL_PIECES] ^= from_to_bb; - byTypeBB[type_of(pc)] ^= from_to_bb; - byColorBB[color_of(pc)] ^= from_to_bb; + Bitboard fromTo = SquareBB[from] ^ SquareBB[to]; + byTypeBB[ALL_PIECES] ^= fromTo; + byTypeBB[type_of(pc)] ^= fromTo; + byColorBB[color_of(pc)] ^= fromTo; board[from] = NO_PIECE; board[to] = pc; index[to] = index[from];