X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftimeman.cpp;h=d545269ca31a963a39df29fef6614f707e720a59;hp=9ca46c93313c7bf86f75f747ae7ed53923feeaaa;hb=4124c94583c8f618738e4e357d86bc8579a5cde5;hpb=a56322fde813094afd8ffa60d12761f94e0bd3ef diff --git a/src/timeman.cpp b/src/timeman.cpp index 9ca46c93..d545269c 100644 --- a/src/timeman.cpp +++ b/src/timeman.cpp @@ -83,7 +83,7 @@ void TimeManager::pv_instability(int curChanges, int prevChanges) { } -void TimeManager::init(const Search::LimitsType& limits, int currentPly) +void TimeManager::init(const Search::LimitsType& limits, int currentPly, Color us) { /* We support four different kind of time controls: @@ -111,15 +111,15 @@ void TimeManager::init(const Search::LimitsType& limits, int currentPly) // Initialize to maximum values but unstablePVExtraTime that is reset unstablePVExtraTime = 0; - optimumSearchTime = maximumSearchTime = limits.time; + optimumSearchTime = maximumSearchTime = limits.times[us]; // We calculate optimum time usage for different hypothetic "moves to go"-values and choose the // minimum of calculated search time values. Usually the greatest hypMTG gives the minimum values. - for (hypMTG = 1; hypMTG <= (limits.movesToGo ? std::min(limits.movesToGo, MoveHorizon) : MoveHorizon); hypMTG++) + for (hypMTG = 1; hypMTG <= (limits.movestogo ? std::min(limits.movestogo, MoveHorizon) : MoveHorizon); hypMTG++) { // Calculate thinking time for hypothetic "moves to go"-value - hypMyTime = limits.time - + limits.increment * (hypMTG - 1) + hypMyTime = limits.times[us] + + limits.incs[us] * (hypMTG - 1) - emergencyBaseTime - emergencyMoveTime * std::min(hypMTG, emergencyMoveHorizon);