diff --git a/Assets/Scripts/SysCalls.cs b/Assets/Scripts/SysCalls.cs index ba6da75..2bf1b4b 100644 --- a/Assets/Scripts/SysCalls.cs +++ b/Assets/Scripts/SysCalls.cs @@ -9,14 +9,12 @@ public class SysCalls: CallbackHandler private const int MaxFileHandles = 50; private readonly UniQuake uq; - private readonly double startTime; private readonly FileStream[] fileHandles = new FileStream[MaxFileHandles]; public SysCalls(UniQuake uniQuake) { uq = uniQuake; - startTime = Time.timeAsDouble; var callbacks = new Callbacks { @@ -129,7 +127,7 @@ public class SysCalls: CallbackHandler private double FloatTime() { - return Time.timeAsDouble - startTime; + return uq.CurrentTime; } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] diff --git a/Assets/Scripts/UniQuake.cs b/Assets/Scripts/UniQuake.cs index 1933449..a6f61d7 100644 --- a/Assets/Scripts/UniQuake.cs +++ b/Assets/Scripts/UniQuake.cs @@ -12,6 +12,12 @@ public class UniQuake: MonoBehaviour private ModCalls modCalls; private bool initialized = false; + private double startTime; + + /// + /// Time since startup for this particular instance of Quake + /// + public double CurrentTime => Time.timeAsDouble - startTime; void Start() { @@ -35,6 +41,8 @@ public class UniQuake: MonoBehaviour sysCalls = new SysCalls(this); modCalls = new ModCalls(this); + startTime = Time.timeAsDouble; + try { UniQuake_Init(quakeParms, sysCalls.ToIntPtr, modCalls.ToIntPtr);