Key key, pawnKey, materialKey;
int rule50;
Move lastMove;
- PieceType capture;
Value mgValue, egValue;
+ PieceType capture;
};
void undo_ep_move(Move m);
void find_checkers();
+ template<PieceType Piece>
+ void update_checkers(Bitboard* pCheckersBB, Square ksq, Square from, Square to, Bitboard dcCandidates);
+
template<PieceType Piece, bool FindPinned>
Bitboard hidden_checks(Color c, Square ksq) const;
return StepAttackBB[pawn_of_color(c)][s];
}
+template<>
+inline Bitboard Position::piece_attacks<PAWN>(Square s) const {
+ return StepAttackBB[pawn_of_color(opposite_color(sideToMove))][s];
+}
+
template<>
inline Bitboard Position::piece_attacks<KNIGHT>(Square s) const {
return StepAttackBB[KNIGHT][s];