+ else if (nullDrivenIID)
+ {
+ // The null move failed low due to a suspicious capture. Perhaps we
+ // are facing a null capture artifact due to the side to move change
+ // and this position should fail high. So do a normal search with a
+ // reduced depth to get a good ttMove to use in the following full
+ // depth search.
+ Move tm = ss[ply].threatMove;
+
+ assert(tm != MOVE_NONE);
+ assert(ttMove == MOVE_NONE);
+
+ search(pos, ss, beta, depth/2, ply, false, threadID);
+ ttMove = ss[ply].pv[ply];
+ ss[ply].threatMove = tm;
+ }