From b1e2ee9b79501e4d99e111d09f98a683e3956dfb Mon Sep 17 00:00:00 2001 From: RoosterDragon Date: Thu, 4 Jan 2018 20:08:08 +0000 Subject: [PATCH] ScreenMap should TickRender, rather than just Tick. This is as FrozenUnderFog.TickRender queues an update to the screen map. If this is not processed in the same tick, this results in screen bounds for the frozen actor being 1 tick behind. By making ScreenMap TickRender, it ensures changes from both Tick and TickRender traits are processed, rather than just Tick traits. --- OpenRA.Game/Traits/World/ScreenMap.cs | 2 +- OpenRA.Game/World.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenRA.Game/Traits/World/ScreenMap.cs b/OpenRA.Game/Traits/World/ScreenMap.cs index 2dc7393a7e..7225629497 100644 --- a/OpenRA.Game/Traits/World/ScreenMap.cs +++ b/OpenRA.Game/Traits/World/ScreenMap.cs @@ -245,7 +245,7 @@ namespace OpenRA.Traits return rect; } - public void Tick() + public void TickRender() { foreach (var a in addOrUpdateActors) { diff --git a/OpenRA.Game/World.cs b/OpenRA.Game/World.cs index d09a04de98..8716d783de 100644 --- a/OpenRA.Game/World.cs +++ b/OpenRA.Game/World.cs @@ -353,7 +353,6 @@ namespace OpenRA ActorsWithTrait().DoTimed(x => x.Trait.Tick(x.Actor), "Trait"); effects.DoTimed(e => e.Tick(this), "Effect"); - ScreenMap.Tick(); } while (frameEndActions.Count != 0) @@ -364,6 +363,7 @@ namespace OpenRA public void TickRender(WorldRenderer wr) { ActorsWithTrait().DoTimed(x => x.Trait.TickRender(wr, x.Actor), "Render"); + ScreenMap.TickRender(); } public IEnumerable Actors { get { return actors.Values; } }