From 043c2fbc5e14c709bfd5c5e9ca61a6ff876310cb Mon Sep 17 00:00:00 2001 From: Regalis Date: Wed, 3 May 2017 19:15:43 +0300 Subject: [PATCH] Moved TotalElapsedTime from GameMain to the Timing class --- Subsurface/Source/GameMain.cs | 12 ++---------- Subsurface/Source/Items/Components/Machines/Radar.cs | 2 +- Subsurface/Source/Map/Lights/ConvexHull.cs | 6 +++--- Subsurface/Source/Map/Lights/LightSource.cs | 2 +- Subsurface/Source/Timing.cs | 9 +++++++++ 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Subsurface/Source/GameMain.cs b/Subsurface/Source/GameMain.cs index 7ca41b8b0..36bd37162 100644 --- a/Subsurface/Source/GameMain.cs +++ b/Subsurface/Source/GameMain.cs @@ -101,16 +101,7 @@ namespace Barotrauma get; private set; } - - /// - /// Total seconds elapsed after startup - /// - public double TotalElapsedTime - { - get; - private set; - } - + public GameMain() { GraphicsDeviceManager = new GraphicsDeviceManager(this); @@ -300,6 +291,7 @@ namespace Barotrauma /// Provides a snapshot of timing values. protected override void Update(GameTime gameTime) { + Timing.TotalTime = gameTime.TotalGameTime.TotalSeconds; Timing.Accumulator += gameTime.ElapsedGameTime.TotalSeconds; bool paused = true; diff --git a/Subsurface/Source/Items/Components/Machines/Radar.cs b/Subsurface/Source/Items/Components/Machines/Radar.cs index f42c92563..399407f68 100644 --- a/Subsurface/Source/Items/Components/Machines/Radar.cs +++ b/Subsurface/Source/Items/Components/Machines/Radar.cs @@ -140,7 +140,7 @@ namespace Barotrauma.Items.Components prevPingRadius = pingRadius; } - float passivePingRadius = (float)Math.Sin(GameMain.Instance.TotalElapsedTime*10); + float passivePingRadius = (float)Math.Sin(Timing.TotalTime * 10); if (passivePingRadius > 0.0f) { foreach (AITarget t in AITarget.List) diff --git a/Subsurface/Source/Map/Lights/ConvexHull.cs b/Subsurface/Source/Map/Lights/ConvexHull.cs index bbea0b1da..ab3296206 100644 --- a/Subsurface/Source/Map/Lights/ConvexHull.cs +++ b/Subsurface/Source/Map/Lights/ConvexHull.cs @@ -151,7 +151,7 @@ namespace Barotrauma.Lights { if (enabled == value) return; enabled = value; - LastVertexChangeTime = (float)GameMain.Instance.TotalElapsedTime; + LastVertexChangeTime = (float)Timing.TotalTime; } } @@ -264,7 +264,7 @@ namespace Barotrauma.Lights segments[i].End.Pos += amount; } - LastVertexChangeTime = (float)GameMain.Instance.TotalElapsedTime; + LastVertexChangeTime = (float)Timing.TotalTime; CalculateDimensions(); } @@ -273,7 +273,7 @@ namespace Barotrauma.Lights { Debug.Assert(points.Length == 4, "Only rectangular convex hulls are supported"); - LastVertexChangeTime = (float)GameMain.Instance.TotalElapsedTime; + LastVertexChangeTime = (float)Timing.TotalTime; for (int i = 0; i < 4; i++) { diff --git a/Subsurface/Source/Map/Lights/LightSource.cs b/Subsurface/Source/Map/Lights/LightSource.cs index e735fabe3..ef595d15e 100644 --- a/Subsurface/Source/Map/Lights/LightSource.cs +++ b/Subsurface/Source/Map/Lights/LightSource.cs @@ -549,7 +549,7 @@ namespace Barotrauma.Lights var verts = FindRaycastHits(); CalculateLightVertices(verts); - lastRecalculationTime = (float)GameMain.Instance.TotalElapsedTime; + lastRecalculationTime = (float)Timing.TotalTime; NeedsRecalculation = false; } diff --git a/Subsurface/Source/Timing.cs b/Subsurface/Source/Timing.cs index 19a8aa9bd..a2b21c62f 100644 --- a/Subsurface/Source/Timing.cs +++ b/Subsurface/Source/Timing.cs @@ -11,6 +11,8 @@ namespace Barotrauma { private static double alpha; + public static double TotalTime; + public static double Accumulator; public static double Step = 1.0 / 60.0; @@ -30,6 +32,13 @@ namespace Barotrauma return current * (float)alpha + previous * (1.0f - (float)alpha); } + public static float InterpolateRotation(float previous, float current) + { + float angleDiff = MathUtils.GetShortestAngle(previous, current); + + return previous + angleDiff * (float)alpha; + } + public static Vector2 Interpolate(Vector2 previous, Vector2 current) { return new Vector2(