From 5abe8a0816ee924952a44c738d747eb86c805ced Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 18 Oct 2008 13:58:07 +0200 Subject: [PATCH] generate_checks: fix a bug in black double pawn push It was written pos.black_pawn_attacks(ksq) instead of pos.white_pawn_attacks(ksq) Updated to the undrlying pos.pawn_attacks(WHITE, ksq) Signed-off-by: Marco Costalba --- src/movegen.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/movegen.cpp b/src/movegen.cpp index 99b6076c..cfcaf3de 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -152,19 +152,19 @@ int generate_checks(const Position& pos, MoveStack* mlist, Bitboard dc) { // Direct checks. These are possible only for pawns on neighboring files // of the enemy king - b1 &= (~dc & neighboring_files_bb(ksq)); + b1 &= (~dc & neighboring_files_bb(ksq)); // FIXME why ~dc ?? // Direct checks, single pawn pushes b2 = (b1 << 8) & empty; - b3 = b2 & pos.black_pawn_attacks(ksq); - while(b3) + b3 = b2 & pos.pawn_attacks(BLACK, ksq); + while (b3) { to = pop_1st_bit(&b3); mlist[n++].move = make_move(to - DELTA_N, to); } // Direct checks, double pawn pushes - b3 = ((b2 & Rank3BB) << 8) & empty & pos.black_pawn_attacks(ksq); + b3 = ((b2 & Rank3BB) << 8) & empty & pos.pawn_attacks(BLACK, ksq); while (b3) { to = pop_1st_bit(&b3); @@ -203,7 +203,7 @@ int generate_checks(const Position& pos, MoveStack* mlist, Bitboard dc) { // Direct checks, single pawn pushes: b2 = (b1 >> 8) & empty; - b3 = b2 & pos.white_pawn_attacks(ksq); + b3 = b2 & pos.pawn_attacks(WHITE, ksq); while (b3) { to = pop_1st_bit(&b3); @@ -211,7 +211,7 @@ int generate_checks(const Position& pos, MoveStack* mlist, Bitboard dc) { } // Direct checks, double pawn pushes - b3 = ((b2 & Rank6BB) >> 8) & empty & pos.black_pawn_attacks(ksq); + b3 = ((b2 & Rank6BB) >> 8) & empty & pos.pawn_attacks(WHITE, ksq); while (b3) { to = pop_1st_bit(&b3); -- 2.39.2