diff --git a/src/search.cpp b/src/search.cpp index 7eab970a..b9ff56fb 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -958,10 +958,9 @@ moves_loop: // When in check and at SpNode search starts from here [pos.piece_on(to_sq(move))][to_sq(move)] <= VALUE_ZERO)) ss->reduction += ONE_PLY; - if ( move == countermove - || ( History[pos.piece_on(to_sq(move))][to_sq(move)] > VALUE_ZERO + if ( History[pos.piece_on(to_sq(move))][to_sq(move)] > VALUE_ZERO && CounterMovesHistory[pos.piece_on(prevMoveSq)][prevMoveSq] - [pos.piece_on(to_sq(move))][to_sq(move)] > VALUE_ZERO)) + [pos.piece_on(to_sq(move))][to_sq(move)] > VALUE_ZERO) ss->reduction = std::max(DEPTH_ZERO, ss->reduction - ONE_PLY); // Decrease reduction for moves that escape a capture