From: Marco Costalba Date: Thu, 5 Jan 2012 08:27:50 +0000 (+0100) Subject: Retire generate_discovered_checks X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=d655147e8c;hp=3c675db3d0c2ddf41036c3481f0891d208d4b6f5 Retire generate_discovered_checks Signed-off-by: Marco Costalba --- diff --git a/src/movegen.cpp b/src/movegen.cpp index d76441b3..7cbd157a 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -252,21 +252,6 @@ namespace { } - template - inline MoveStack* generate_discovered_checks(const Position& pos, MoveStack* mlist, Square from) { - - assert(Pt != QUEEN && Pt != PAWN); - - Bitboard b = pos.attacks_from(from) & pos.empty_squares(); - - if (Pt == KING) - b &= ~QueenPseudoAttacks[pos.king_square(flip(pos.side_to_move()))]; - - SERIALIZE_MOVES(b); - return mlist; - } - - template inline MoveStack* generate_direct_checks(const Position& pos, MoveStack* mlist, Color us, Bitboard dc, Square ksq) { @@ -408,6 +393,7 @@ MoveStack* generate(const Position& pos, MoveStack* mlist) Bitboard b, dc; Square from; + PieceType pt; Color us = pos.side_to_move(); Square ksq = pos.king_square(flip(us)); @@ -419,15 +405,17 @@ MoveStack* generate(const Position& pos, MoveStack* mlist) while (b) { from = pop_1st_bit(&b); - switch (type_of(pos.piece_on(from))) - { - case PAWN: /* Will be generated togheter with pawns direct checks */ break; - case KNIGHT: mlist = generate_discovered_checks(pos, mlist, from); break; - case BISHOP: mlist = generate_discovered_checks(pos, mlist, from); break; - case ROOK: mlist = generate_discovered_checks(pos, mlist, from); break; - case KING: mlist = generate_discovered_checks(pos, mlist, from); break; - default: assert(false); break; - } + pt = type_of(pos.piece_on(from)); + + if (pt == PAWN) + continue; // Will be generated togheter with direct checks + + b = pos.attacks_from(Piece(pt), from) & pos.empty_squares(); + + if (pt == KING) + b &= ~QueenPseudoAttacks[ksq]; + + SERIALIZE_MOVES(b); } // Direct non-capture checks