diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index ce7623ea38..a9476a3765 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -321,6 +321,8 @@ ACE_realTime = diag_tickTime; ACE_virtualTime = diag_tickTime; ACE_diagTime = diag_tickTime; ACE_gameTime = time; +ACE_pausedTime = 0; +ACE_virtualPausedTime = 0; PREP(timePFH); [FUNC(timePFH), 0, []] call cba_fnc_addPerFrameHandler; diff --git a/addons/common/functions/fnc_timePFH.sqf b/addons/common/functions/fnc_timePFH.sqf index 6385c4d05e..40fef519a8 100644 --- a/addons/common/functions/fnc_timePFH.sqf +++ b/addons/common/functions/fnc_timePFH.sqf @@ -1,25 +1,26 @@ //#define DEBUG_MODE_FULL #include "script_component.hpp" -private["_lastRealTime", "_lastGameTime", "_delta"]; +private["_lastTickTime", "_lastGameTime", "_delta"]; -_lastRealTime = ACE_realTime; +_lastTickTime = ACE_diagTime; _lastGameTime = ACE_gameTime; ACE_gameTime = time; ACE_diagTime = diag_tickTime; -_delta = ACE_diagTime - _lastRealTime; +_delta = ACE_diagTime - _lastTickTime; if(ACE_gameTime <= _lastGameTime) then { + TRACE_1("paused",_delta); ACE_paused = true; // Game is paused or not running ACE_pausedTime = ACE_pausedTime + _delta; ACE_virtualPausedTime = ACE_pausedTime + (_delta * accTime); } else { + TRACE_1("live",_delta); ACE_paused = false; // Time is updating ACE_realTime = ACE_realTime + _delta; ACE_virtualTime = ACE_virtualTime + (_delta * accTime); ACE_time = ACE_virtualTime; }; -