X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fbitboard.h;h=c957a40fe23d61296a0e094bf36bd44581cda5d6;hp=e4ccc3595df098da7aaae2cd7249f720f21b0cc1;hb=ae979416282d43793a49944ed007119673853555;hpb=d8f683760c9eb6d2c4714ec83e717dd2143de55c diff --git a/src/bitboard.h b/src/bitboard.h index e4ccc359..c957a40f 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -66,7 +66,6 @@ extern Bitboard FileBB[FILE_NB]; extern Bitboard RankBB[RANK_NB]; extern Bitboard AdjacentFilesBB[FILE_NB]; extern Bitboard InFrontBB[COLOR_NB][RANK_NB]; -extern Bitboard StepAttacksBB[PIECE_NB][SQUARE_NB]; extern Bitboard BetweenBB[SQUARE_NB][SQUARE_NB]; extern Bitboard LineBB[SQUARE_NB][SQUARE_NB]; extern Bitboard DistanceRingBB[SQUARE_NB][8]; @@ -74,6 +73,7 @@ extern Bitboard ForwardBB[COLOR_NB][SQUARE_NB]; extern Bitboard PassedPawnMask[COLOR_NB][SQUARE_NB]; extern Bitboard PawnAttackSpan[COLOR_NB][SQUARE_NB]; extern Bitboard PseudoAttacks[PIECE_TYPE_NB][SQUARE_NB]; +extern Bitboard PawnAttacks[COLOR_NB][SQUARE_NB]; /// Overloads of bitwise operators between a Bitboard and a Square for testing @@ -164,7 +164,7 @@ inline Bitboard in_front_bb(Color c, Rank r) { /// forward_bb() returns a bitboard representing all the squares along the line /// in front of the given one, from the point of view of the given color: -/// ForwardBB[c][s] = in_front_bb(c, s) & file_bb(s) +/// ForwardBB[c][s] = in_front_bb(c, rank_of(s)) & file_bb(s) inline Bitboard forward_bb(Color c, Square s) { return ForwardBB[c][s]; @@ -174,7 +174,7 @@ inline Bitboard forward_bb(Color c, Square s) { /// pawn_attack_span() returns a bitboard representing all the squares that can be /// attacked by a pawn of the given color when it moves along its file, starting /// from the given square: -/// PawnAttackSpan[c][s] = in_front_bb(c, s) & adjacent_files_bb(s); +/// PawnAttackSpan[c][s] = in_front_bb(c, rank_of(s)) & adjacent_files_bb(s); inline Bitboard pawn_attack_span(Color c, Square s) { return PawnAttackSpan[c][s]; @@ -246,14 +246,16 @@ inline Bitboard attacks_bb(Square s, Bitboard occupied) { return (Pt == ROOK ? RookAttacks : BishopAttacks)[s][magic_index(s, occupied)]; } -inline Bitboard attacks_bb(Piece pc, Square s, Bitboard occupied) { +inline Bitboard attacks_bb(PieceType pt, Square s, Bitboard occupied) { - switch (type_of(pc)) + assert(pt != PAWN); + + switch (pt) { case BISHOP: return attacks_bb(s, occupied); case ROOK : return attacks_bb(s, occupied); case QUEEN : return attacks_bb(s, occupied) | attacks_bb(s, occupied); - default : return StepAttacksBB[pc][s]; + default : return PseudoAttacks[pt][s]; } }