mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 01:03:09 +00:00
Retire generate_discovered_checks
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
3c675db3d0
commit
d655147e8c
1 changed files with 12 additions and 24 deletions
|
@ -252,21 +252,6 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<PieceType Pt>
|
|
||||||
inline MoveStack* generate_discovered_checks(const Position& pos, MoveStack* mlist, Square from) {
|
|
||||||
|
|
||||||
assert(Pt != QUEEN && Pt != PAWN);
|
|
||||||
|
|
||||||
Bitboard b = pos.attacks_from<Pt>(from) & pos.empty_squares();
|
|
||||||
|
|
||||||
if (Pt == KING)
|
|
||||||
b &= ~QueenPseudoAttacks[pos.king_square(flip(pos.side_to_move()))];
|
|
||||||
|
|
||||||
SERIALIZE_MOVES(b);
|
|
||||||
return mlist;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<PieceType Pt>
|
template<PieceType Pt>
|
||||||
inline MoveStack* generate_direct_checks(const Position& pos, MoveStack* mlist, Color us,
|
inline MoveStack* generate_direct_checks(const Position& pos, MoveStack* mlist, Color us,
|
||||||
Bitboard dc, Square ksq) {
|
Bitboard dc, Square ksq) {
|
||||||
|
@ -408,6 +393,7 @@ MoveStack* generate<MV_NON_CAPTURE_CHECK>(const Position& pos, MoveStack* mlist)
|
||||||
|
|
||||||
Bitboard b, dc;
|
Bitboard b, dc;
|
||||||
Square from;
|
Square from;
|
||||||
|
PieceType pt;
|
||||||
Color us = pos.side_to_move();
|
Color us = pos.side_to_move();
|
||||||
Square ksq = pos.king_square(flip(us));
|
Square ksq = pos.king_square(flip(us));
|
||||||
|
|
||||||
|
@ -419,15 +405,17 @@ MoveStack* generate<MV_NON_CAPTURE_CHECK>(const Position& pos, MoveStack* mlist)
|
||||||
while (b)
|
while (b)
|
||||||
{
|
{
|
||||||
from = pop_1st_bit(&b);
|
from = pop_1st_bit(&b);
|
||||||
switch (type_of(pos.piece_on(from)))
|
pt = type_of(pos.piece_on(from));
|
||||||
{
|
|
||||||
case PAWN: /* Will be generated togheter with pawns direct checks */ break;
|
if (pt == PAWN)
|
||||||
case KNIGHT: mlist = generate_discovered_checks<KNIGHT>(pos, mlist, from); break;
|
continue; // Will be generated togheter with direct checks
|
||||||
case BISHOP: mlist = generate_discovered_checks<BISHOP>(pos, mlist, from); break;
|
|
||||||
case ROOK: mlist = generate_discovered_checks<ROOK>(pos, mlist, from); break;
|
b = pos.attacks_from(Piece(pt), from) & pos.empty_squares();
|
||||||
case KING: mlist = generate_discovered_checks<KING>(pos, mlist, from); break;
|
|
||||||
default: assert(false); break;
|
if (pt == KING)
|
||||||
}
|
b &= ~QueenPseudoAttacks[ksq];
|
||||||
|
|
||||||
|
SERIALIZE_MOVES(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Direct non-capture checks
|
// Direct non-capture checks
|
||||||
|
|
Loading…
Add table
Reference in a new issue