Assume input FEN string is correct in from_fen()
[stockfish] / src / timeman.cpp
index f07f27e71b1e4a2e393294ef4532676867a3c5dc..70d35929d77cd326386d4473401deb6505ed6269 100644 (file)
@@ -72,7 +72,7 @@ namespace {
   enum TimeType { OptimumTime, MaxTime };
 
   template<TimeType>
-  int remaining(int myTime, int movesToGo, int currentPly);
+  int remaining(int myTime, int movesToGo, int fullMoveNumber);
 }
 
 
@@ -83,7 +83,7 @@ void TimeManager::pv_instability(int curChanges, int prevChanges) {
 }
 
 
-void TimeManager::init(const SearchLimits& limits, int currentPly)
+void TimeManager::init(const SearchLimits& limits, int fullMoveNumber)
 {
   /* We support four different kind of time controls:
 
@@ -124,8 +124,8 @@ void TimeManager::init(const SearchLimits& limits, int currentPly)
 
       hypMyTime = Max(hypMyTime, 0);
 
-      t1 = minThinkingTime + remaining<OptimumTime>(hypMyTime, hypMTG, currentPly);
-      t2 = minThinkingTime + remaining<MaxTime>(hypMyTime, hypMTG, currentPly);
+      t1 = minThinkingTime + remaining<OptimumTime>(hypMyTime, hypMTG, fullMoveNumber);
+      t2 = minThinkingTime + remaining<MaxTime>(hypMyTime, hypMTG, fullMoveNumber);
 
       optimumSearchTime = Min(optimumSearchTime, t1);
       maximumSearchTime = Min(maximumSearchTime, t2);
@@ -142,11 +142,12 @@ void TimeManager::init(const SearchLimits& limits, int currentPly)
 namespace {
 
   template<TimeType T>
-  int remaining(int myTime, int movesToGo, int currentPly)
+  int remaining(int myTime, int movesToGo, int fullMoveNumber)
   {
     const float TMaxRatio   = (T == OptimumTime ? 1 : MaxRatio);
     const float TStealRatio = (T == OptimumTime ? 0 : StealRatio);
 
+    int currentPly = 2 * fullMoveNumber;
     int thisMoveImportance = move_importance(currentPly);
     int otherMovesImportance = 0;