Skip to content

Commit

Permalink
chore: editor with local timers (#1794)
Browse files Browse the repository at this point in the history
* (Tested): As overall, the editor can rely on MillisecondsUtc (local timing) without having to worry about server timing synchronization, this is because the editor it's all about animations, mapping, Winforms UI timers, etc.
  • Loading branch information
Arufonsu authored May 6, 2023
1 parent 4e3eef9 commit 2f08c03
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 21 deletions.
4 changes: 2 additions & 2 deletions Intersect.Editor/Content/Texture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ public void LoadTexture()

public void ResetAccessTime()
{
mLastAccessTime = Timing.Global.Milliseconds + 15000;
mLastAccessTime = Timing.Global.MillisecondsUtc + 15000;
}

public int GetWidth()
Expand Down Expand Up @@ -187,7 +187,7 @@ public void Update()
return;
}

if (mLastAccessTime >= Timing.Global.Milliseconds)
if (mLastAccessTime >= Timing.Global.MillisecondsUtc)
{
return;
}
Expand Down
4 changes: 2 additions & 2 deletions Intersect.Editor/Core/Graphics.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1831,8 +1831,8 @@ private static void DrawFog(RenderTarget2D target)

// Calculate elapsed time since the last update and set maximum value for elapsedTime to
// prevent large jumps in fog intensity (1 second maximum).
float elapsedTime = Math.Min(Timing.Global.Milliseconds - sFogUpdateTime, 1000);
sFogUpdateTime = Timing.Global.Milliseconds;
float elapsedTime = Math.Min(Timing.Global.MillisecondsUtc - sFogUpdateTime, 1000);
sFogUpdateTime = Timing.Global.MillisecondsUtc;

// Calculate the number of times the fog texture needs to be drawn to cover the map area.
var xCount = Globals.MapEditorWindow.picMap.Width * Options.TileWidth / fogTex.Width;
Expand Down
20 changes: 10 additions & 10 deletions Intersect.Editor/Core/Main.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace Intersect.Editor.Core
public static partial class Main
{

private static long sAnimationTimer = Timing.Global.Milliseconds;
private static long sAnimationTimer = Timing.Global.MillisecondsUtc;

private static int sFps;

Expand All @@ -30,7 +30,7 @@ public static partial class Main

private static FrmProgress sProgressForm;

private static long sWaterfallTimer = Timing.Global.Milliseconds;
private static long sWaterfallTimer = Timing.Global.MillisecondsUtc;

public static void StartLoop()
{
Expand Down Expand Up @@ -75,29 +75,29 @@ public static void DrawFrame()
public static void RunFrame()
{
//Shooting for 30fps
var startTime = Timing.Global.Milliseconds;
var startTime = Timing.Global.MillisecondsUtc;
sMyForm.Update();

if (sWaterfallTimer < Timing.Global.Milliseconds)
if (sWaterfallTimer < Timing.Global.MillisecondsUtc)
{
Globals.WaterfallFrame++;
if (Globals.WaterfallFrame == 3)
{
Globals.WaterfallFrame = 0;
}

sWaterfallTimer = Timing.Global.Milliseconds + 500;
sWaterfallTimer = Timing.Global.MillisecondsUtc + 500;
}

if (sAnimationTimer < Timing.Global.Milliseconds)
if (sAnimationTimer < Timing.Global.MillisecondsUtc)
{
Globals.AutotileFrame++;
if (Globals.AutotileFrame == 3)
{
Globals.AutotileFrame = 0;
}

sAnimationTimer = Timing.Global.Milliseconds + 600;
sAnimationTimer = Timing.Global.MillisecondsUtc + 600;
}

DrawFrame();
Expand All @@ -107,15 +107,15 @@ public static void RunFrame()
Application.DoEvents(); // handle form events

sFpsCount++;
if (sFpsTime < Timing.Global.Milliseconds)
if (sFpsTime < Timing.Global.MillisecondsUtc)
{
sFps = sFpsCount;
sMyForm.toolStripLabelFPS.Text = Strings.MainForm.fps.ToString(sFps);
sFpsCount = 0;
sFpsTime = Timing.Global.Milliseconds + 1000;
sFpsTime = Timing.Global.MillisecondsUtc + 1000;
}

Thread.Sleep(Math.Max(1, (int) (1000 / 60f - (Timing.Global.Milliseconds - startTime))));
Thread.Sleep(Math.Max(1, (int) (1000 / 60f - (Timing.Global.MillisecondsUtc - startTime))));
}

private static void UpdateMaps()
Expand Down
12 changes: 6 additions & 6 deletions Intersect.Editor/Entities/Animation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ public Animation(AnimationBase animBase, bool loopForever)
MyBase = animBase;
mLowerLoop = animBase.Lower.LoopCount;
mUpperLoop = animBase.Upper.LoopCount;
mLowerTimer = Timing.Global.Milliseconds + animBase.Lower.FrameSpeed;
mUpperTimer = Timing.Global.Milliseconds + animBase.Upper.FrameSpeed;
mLowerTimer = Timing.Global.MillisecondsUtc + animBase.Lower.FrameSpeed;
mUpperTimer = Timing.Global.MillisecondsUtc + animBase.Upper.FrameSpeed;
mInfiniteLoop = loopForever;
}

Expand Down Expand Up @@ -158,7 +158,7 @@ public void SetPosition(float x, float y, int dir)

public void Update()
{
if (mLowerTimer < Timing.Global.Milliseconds && mShowLower)
if (mLowerTimer < Timing.Global.MillisecondsUtc && mShowLower)
{
mLowerFrame++;
if (mLowerFrame >= MyBase.Lower.FrameCount)
Expand All @@ -178,10 +178,10 @@ public void Update()
}
}

mLowerTimer = Timing.Global.Milliseconds + MyBase.Lower.FrameSpeed;
mLowerTimer = Timing.Global.MillisecondsUtc + MyBase.Lower.FrameSpeed;
}

if (mUpperTimer < Timing.Global.Milliseconds && mShowUpper)
if (mUpperTimer < Timing.Global.MillisecondsUtc && mShowUpper)
{
mUpperFrame++;
if (mUpperFrame >= MyBase.Upper.FrameCount)
Expand All @@ -201,7 +201,7 @@ public void Update()
}
}

mUpperTimer = Timing.Global.Milliseconds + MyBase.Upper.FrameSpeed;
mUpperTimer = Timing.Global.MillisecondsUtc + MyBase.Upper.FrameSpeed;
}
}

Expand Down
2 changes: 1 addition & 1 deletion Intersect.Editor/Forms/frmLogin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ private void tmrSocket_Tick(object sender, EventArgs e)
}
else
{
var seconds = (Globals.ReconnectTime - Timing.Global.Milliseconds) / 1000;
var seconds = (Globals.ReconnectTime - Timing.Global.MillisecondsUtc) / 1000;
statusString = Strings.Login.failedtoconnect.ToString(seconds.ToString("0"));
}

Expand Down

0 comments on commit 2f08c03

Please sign in to comment.