Time magic.

This commit is contained in:
jaynus 2015-05-09 22:53:20 -07:00
parent d87797d83d
commit b3833c665d
2 changed files with 35 additions and 0 deletions

View File

@ -312,6 +312,15 @@ if (hasInterface) then {
}, 0, []] call cba_fnc_addPerFrameHandler;
};
// Time handling
ACE_time = diag_tickTime;
ACE_realTime = diag_tickTime;
ACE_virtualTime = diag_tickTime;
ACE_gameTime = time;
PREP(timePFH);
[FUNC(timePFH), 0, []] call cba_fnc_addPerFrameHandler;
// Init toHex
[0] call FUNC(toHex);

View File

@ -0,0 +1,26 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp"
private["_lastTime", "_lastRealTime", "_lastVirtualTime", "_lastGameTime", "_delta"];
_lastTime = ACE_time;
_lastRealTime = ACE_realTime;
_lastVirtualTime = ACE_virtualTime;
_lastGameTime = ACE_gameTime;
_lastPausedTime = ACE_pausedTime;
_lastVirtualPausedTime = ACE_virtualPausedTime;
ACE_gameTime = time;
ACE_realTime = diag_tickTime;
_delta = ACE_realTime - _lastRealTime;
if(time <= _lastGameTime) then {
// Game is paused or not running
ACE_pausedTime = ACE_pausedTime + _delta;
ACE_virtualPausedTime = ACE_pausedTime + (_delta * accTime);
} else {
// Time is updating
ACE_virtualTime = _lastVirtualTime + (_delta * accTime);
ACE_time = ACE_realTime + _delta;
};