diff --git a/OpenRA.Game/Graphics/WorldRenderer.cs b/OpenRA.Game/Graphics/WorldRenderer.cs index 668a1d7d1e..9727f51af7 100644 --- a/OpenRA.Game/Graphics/WorldRenderer.cs +++ b/OpenRA.Game/Graphics/WorldRenderer.cs @@ -78,6 +78,13 @@ namespace OpenRA.Graphics terrainRenderer.Draw(this, Game.viewport); + foreach (var a in world.Selection.Actors) + if (!a.Destroyed) + foreach (var t in a.TraitsImplementing()) + t.RenderBeforeWorld(this, a); + + Game.Renderer.Flush(); + if (world.OrderGenerator != null) world.OrderGenerator.RenderBeforeWorld(this, world); diff --git a/OpenRA.Game/Orders/GenericSelectTarget.cs b/OpenRA.Game/Orders/GenericSelectTarget.cs index 7999a2e196..4e7a446458 100644 --- a/OpenRA.Game/Orders/GenericSelectTarget.cs +++ b/OpenRA.Game/Orders/GenericSelectTarget.cs @@ -65,20 +65,9 @@ namespace OpenRA.Orders } } - public virtual void Tick(World world) { } - - public void RenderBeforeWorld(WorldRenderer wr, World world) - { - foreach (var a in world.Selection.Actors) - if (!a.Destroyed) - foreach (var t in a.TraitsImplementing()) - t.RenderBeforeWorld(wr, a); - - Game.Renderer.Flush(); - } - - public void RenderAfterWorld(WorldRenderer wr, World world) {} - + public virtual void Tick(World world) { } + public void RenderBeforeWorld(WorldRenderer wr, World world) { } + public void RenderAfterWorld(WorldRenderer wr, World world) { } public string GetCursor(World world, int2 xy, MouseInput mi) { return world.Map.IsInMap(xy) ? cursor : "generic-blocked"; } } diff --git a/OpenRA.Game/Orders/UnitOrderGenerator.cs b/OpenRA.Game/Orders/UnitOrderGenerator.cs index 2fdb69e477..342d4e5130 100644 --- a/OpenRA.Game/Orders/UnitOrderGenerator.cs +++ b/OpenRA.Game/Orders/UnitOrderGenerator.cs @@ -74,11 +74,6 @@ namespace OpenRA.Orders return; } - foreach (var a in world.Selection.Actors) - if (!a.Destroyed) - foreach (var t in a.TraitsImplementing()) - t.RenderBeforeWorld( wr, a ); - Game.Renderer.Flush(); }