The null-move reduction is aken one ply less after the first (check, evasion)
pair in a branch, to prevent spite checks pushing unavoidable mates over
the null-search horizon.
}
} else if(curEval >= beta && f.checker == CK_NONE) {
int nullDepth = depth - 3;
+ int eva = (ff->checker != CK_NONE) && !oldAna && nullDepth >= 0; // first evasion in branch, and depth of null-move search was higher before the check
+ nullDepth += eva; // reduce one less than normal after first evasion, to make sure we see same threats after spite check
if(nullDepth < 0) nullDepth = 0;
f.mutation = -2; // kludge to suppress testing for discovered check
f.newEval = f.pstEval;