}
// Check for legality only before to do the move
- if (!pos.pl_move_is_legal(move, ci.pinned))
+ if (!RootNode && !SpNode && !pos.pl_move_is_legal(move, ci.pinned))
{
moveCount--;
continue;
if (futilityValue < beta)
{
- if (futilityValue > bestValue)
- bestValue = futilityValue;
-
+ bestValue = std::max(bestValue, futilityValue);
continue;
}
if ( futilityBase < beta
&& depth < DEPTH_ZERO
&& pos.see(move) <= 0)
+ {
+ bestValue = std::max(bestValue, futilityBase);
continue;
+ }
}
// Detect non-capture evasions that are candidate to be pruned