From: Marco Costalba Date: Sat, 18 Jul 2009 10:28:09 +0000 (+0100) Subject: Correctly set mateThreat in search() X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=1cc44bcaaecf254063138f801271629a81566ee4 Correctly set mateThreat in search() We do not accept null search returned mate values, but we always do a full search in those cases. So the variable mateThreat that is set only if null move search returns a mate value is always false. Restore the functionality of mateThreat moving the assignement where it can be triggered. After 999 games at 1+0 Mod vs Orig +253 =517 -229 51.20% +8 ELO Bug reported by xiaozhi Signed-off-by: Marco Costalba --- diff --git a/src/search.cpp b/src/search.cpp index de343144..75b6bd0c 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1251,6 +1251,9 @@ namespace { if (value_is_mate(nullValue)) { + if (nullValue == value_mated_in(ply + 2)) + mateThreat = true; + /* Do not return unproven mates */ } else if (nullValue >= beta) @@ -1269,9 +1272,6 @@ namespace { // move which was reduced. If a connection is found, return a fail // low score (which will cause the reduced move to fail high in the // parent node, which will trigger a re-search with full depth). - if (nullValue == value_mated_in(ply + 2)) - mateThreat = true; - ss[ply].threatMove = ss[ply + 1].currentMove; if ( depth < ThreatDepth && ss[ply - 1].reduction