From 7c085e49c777069216c73911321b71b9cb8c3cca Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Mon, 24 Jan 2022 17:28:15 +0100 Subject: [PATCH] Cache DetectCloaked traits in RenderDetectionCircle --- OpenRA.Mods.Common/Traits/Render/RenderDetectionCircle.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Render/RenderDetectionCircle.cs b/OpenRA.Mods.Common/Traits/Render/RenderDetectionCircle.cs index 517124c92a..53acef7fe0 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderDetectionCircle.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderDetectionCircle.cs @@ -44,11 +44,13 @@ namespace OpenRA.Mods.Common.Traits.Render class RenderDetectionCircle : ITick, IRenderAnnotationsWhenSelected { readonly RenderDetectionCircleInfo info; + readonly DetectCloaked[] detectCloaked; WAngle lineAngle; public RenderDetectionCircle(Actor self, RenderDetectionCircleInfo info) { this.info = info; + detectCloaked = self.TraitsImplementing().ToArray(); } IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) @@ -56,7 +58,7 @@ namespace OpenRA.Mods.Common.Traits.Render if (!self.Owner.IsAlliedWith(self.World.RenderPlayer)) yield break; - var range = self.TraitsImplementing() + var range = detectCloaked .Select(a => a.Range) .Append(WDist.Zero).Max();