if (!RootNode)
{
// Step 2. Check for aborted search and immediate draw
- if (Signals.stop || (PvNode?pos.is_draw<false,false>():pos.is_draw<false,true>()) || ss->ply > MAX_PLY)
+ if (Signals.stop || pos.is_draw<false,true>() || ss->ply > MAX_PLY)
return DrawValue[pos.side_to_move()];
// Step 3. Mate distance pruning. Even if we mate at the next move our score
if (alpha >= beta)
return alpha;
}
+ else
+ {
+ if(pos.is_draw<false,false>()) return DrawValue[pos.side_to_move()];
+ }
// Step 4. Transposition table lookup
// We don't want the score of a partial search to overwrite a previous full search