diff --git a/OpenRA.Game/Graphics/WorldRenderer.cs b/OpenRA.Game/Graphics/WorldRenderer.cs index 312e53021f..8ca852a7db 100644 --- a/OpenRA.Game/Graphics/WorldRenderer.cs +++ b/OpenRA.Game/Graphics/WorldRenderer.cs @@ -21,10 +21,6 @@ namespace OpenRA.Graphics public static readonly Func RenderableScreenZPositionComparisonKey = r => ZPosition(r.Pos, r.ZOffset); - const int RangeCircleSegments = 32; - static readonly int[][] RangeCircleStartRotations = Exts.MakeArray(RangeCircleSegments, i => WRot.FromFacing(8 * i).AsMatrix()); - static readonly int[][] RangeCircleEndRotations = Exts.MakeArray(RangeCircleSegments, i => WRot.FromFacing(8 * i + 6).AsMatrix()); - public readonly Size TileSize; public readonly World World; public readonly Theater Theater; @@ -214,17 +210,6 @@ namespace OpenRA.Graphics new SelectionBarsRenderable(unit, true, true).Render(this); } - public void DrawRangeCircle(WPos pos, WDist range, Color c) - { - var offset = new WVec(range.Length, 0, 0); - for (var i = 0; i < RangeCircleSegments; i++) - { - var pa = pos + offset.Rotate(RangeCircleStartRotations[i]); - var pb = pos + offset.Rotate(RangeCircleEndRotations[i]); - Game.Renderer.WorldLineRenderer.DrawLine(ScreenPosition(pa), ScreenPosition(pb), c); - } - } - public void DrawTargetMarker(Color c, float2 location) { var tl = new float2(-1 / Viewport.Zoom, -1 / Viewport.Zoom); diff --git a/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs b/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs index dceb3511d4..784188b35a 100644 --- a/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs +++ b/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs @@ -12,6 +12,7 @@ using System; using System.Drawing; using OpenRA.Graphics; using OpenRA.Mods.Common.Effects; +using OpenRA.Mods.Common.Graphics; using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits @@ -48,7 +49,8 @@ namespace OpenRA.Mods.Common.Traits return; if (healthInfo != null) - wr.DrawRangeCircle(self.CenterPosition, healthInfo.Radius, Color.Red); + RangeCircleRenderable.DrawRangeCircle(wr, self.CenterPosition, healthInfo.Radius, + 1, Color.Red, 0, Color.Red); var wlr = Game.Renderer.WorldLineRenderer; diff --git a/OpenRA.Mods.Common/Traits/World/WarheadDebugOverlay.cs b/OpenRA.Mods.Common/Traits/World/WarheadDebugOverlay.cs index 18e1c954bf..6d1a6b7b00 100644 --- a/OpenRA.Mods.Common/Traits/World/WarheadDebugOverlay.cs +++ b/OpenRA.Mods.Common/Traits/World/WarheadDebugOverlay.cs @@ -11,6 +11,7 @@ using System.Collections.Generic; using System.Drawing; using OpenRA.Graphics; +using OpenRA.Mods.Common.Graphics; using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits @@ -66,7 +67,8 @@ namespace OpenRA.Mods.Common.Traits var alpha = 255.0f * i.Time / info.DisplayDuration; var rangeStep = alpha / i.Range.Length; - wr.DrawRangeCircle(i.CenterPosition, i.OuterRange, Color.FromArgb((int)alpha, i.Color)); + RangeCircleRenderable.DrawRangeCircle(wr, i.CenterPosition, i.OuterRange, + 1, Color.FromArgb((int)alpha, i.Color), 0, i.Color); foreach (var r in i.Range) {