-inline Square Position::initial_kr_square(Color c) const {
- return relative_square(c, make_square(initialKRFile, RANK_1));
-}
-
-inline Square Position::initial_qr_square(Color c) const {
- return relative_square(c, make_square(initialQRFile, RANK_1));
-}
-
-inline Bitboard Position::pawn_attacks(Square s, Color c) const {
- return StepAttackBB[piece_of_color_and_type(c, PAWN)][s];
-}
-
-template<PieceType Piece> // Knight and King
-inline Bitboard Position::piece_attacks(Square s) const {
- return StepAttackBB[Piece][s];
+template<>
+inline Bitboard Position::attacks_from<PAWN>(Square s, Color c) const {
+ return StepAttacksBB[make_piece(c, PAWN)][s];