Piece capturedPiece;
StateInfo* previous;
Bitboard blockersForKing[COLOR_NB];
- Bitboard pinnersForKing[COLOR_NB];
+ Bitboard pinners[COLOR_NB];
Bitboard checkSquares[PIECE_TYPE_NB];
};
// 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
Bitboard attacks_from(PieceType pt, Square s) const;
template<PieceType> Bitboard attacks_from(Square s) const;
template<PieceType> Bitboard attacks_from(Square s, Color c) const;
- template<Color> Bitboard pawn_attacks(Bitboard b) const;
Bitboard slider_blockers(Bitboard sliders, Square s, Bitboard& pinners) const;
// Properties of moves
return attacks_bb(pt, s, byTypeBB[ALL_PIECES]);
}
-template<Color c>
-inline Bitboard Position::pawn_attacks(Bitboard b) const {
- return c == WHITE ? shift<NORTH_WEST>(b) | shift<NORTH_EAST>(b)
- : shift<SOUTH_WEST>(b) | shift<SOUTH_EAST>(b);
-}
-
inline Bitboard Position::attackers_to(Square s) const {
return attackers_to(s, byTypeBB[ALL_PIECES]);
}
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 {