From 1ae50e1a5b7261b3b8f0093900f808d81471f291 Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Fri, 27 Nov 2020 19:46:52 +0100 Subject: [PATCH] Fix piece drops for NNUE --- src/position.cpp | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/position.cpp b/src/position.cpp index 815ed83..3cebafe 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -1388,10 +1388,9 @@ void Position::do_move(Move m, StateInfo& newSt, bool givesCheck) { if (Eval::useNNUE) { // Add drop piece - dp.piece[dp.dirty_num] = pc; - dp.from[dp.dirty_num] = SQ_NONE; - dp.to[dp.dirty_num] = to; - dp.dirty_num++; + dp.piece[0] = pc; + dp.from[0] = SQ_NONE; + dp.to[0] = to; } drop_piece(make_piece(us, in_hand_piece_type(m)), pc, to); @@ -1433,7 +1432,8 @@ void Position::do_move(Move m, StateInfo& newSt, bool givesCheck) { if (type_of(pc) == PAWN) { // Set en-passant square if the moved pawn can be captured - if ( std::abs(int(to) - int(from)) == 2 * NORTH + if ( type_of(m) != DROP + && std::abs(int(to) - int(from)) == 2 * NORTH && (var->enPassantRegion & (to - pawn_push(us))) && (pawn_attacks_bb(us, to - pawn_push(us)) & pieces(them, PAWN))) { -- 1.7.0.4