+ TimePoint minThinkingTime = Options["Minimum Thinking Time"];
+ TimePoint moveOverhead = Options["Move Overhead"];
+ TimePoint slowMover = Options["Slow Mover"];
+ TimePoint npmsec = Options["nodestime"];
+ TimePoint hypMyTime;
+
+ // If we have to play in 'nodes as time' mode, then convert from time
+ // to nodes, and use resulting values in time management formulas.
+ // WARNING: to avoid time losses, the given npmsec (nodes per millisecond)
+ // must be much lower than the real engine speed.
+ if (npmsec)
+ {
+ if (!availableNodes) // Only once at game start
+ availableNodes = npmsec * limits.time[us]; // Time is in msec
+
+ // Convert from milliseconds to nodes
+ limits.time[us] = TimePoint(availableNodes);
+ limits.inc[us] *= npmsec;
+ limits.npmsec = npmsec;
+ }
+
+ startTime = limits.startTime;