From 487727c9d09635559f6ec3779703cc66156b6c03 Mon Sep 17 00:00:00 2001 From: RoosterDragon Date: Sat, 17 Oct 2015 00:57:17 +0100 Subject: [PATCH] Optimize AutoTarget.ScanForTarget. The currentTarget parameter is null at the only call site. Inlining it allows us to make some simplifications to the logic. --- OpenRA.Mods.Common/Traits/AutoTarget.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/AutoTarget.cs b/OpenRA.Mods.Common/Traits/AutoTarget.cs index 9120e2abcc..52fba3d7a1 100644 --- a/OpenRA.Mods.Common/Traits/AutoTarget.cs +++ b/OpenRA.Mods.Common/Traits/AutoTarget.cs @@ -135,24 +135,21 @@ namespace OpenRA.Mods.Common.Traits --nextScanTime; } - public Actor ScanForTarget(Actor self, Actor currentTarget, bool allowMove) + public Actor ScanForTarget(Actor self, bool allowMove) { if (nextScanTime <= 0) { + nextScanTime = self.World.SharedRandom.Next(info.MinimumScanTimeInterval, info.MaximumScanTimeInterval); var range = info.ScanRadius > 0 ? WDist.FromCells(info.ScanRadius) : attack.GetMaximumRange(); - if (self.IsIdle || currentTarget == null || !Target.FromActor(currentTarget).IsInRange(self.CenterPosition, range)) - { - nextScanTime = self.World.SharedRandom.Next(info.MinimumScanTimeInterval, info.MaximumScanTimeInterval); - return ChooseTarget(self, range, allowMove); - } + return ChooseTarget(self, range, allowMove); } - return currentTarget; + return null; } public void ScanAndAttack(Actor self, bool allowMove) { - var targetActor = ScanForTarget(self, null, allowMove); + var targetActor = ScanForTarget(self, allowMove); if (targetActor != null) Attack(self, targetActor, allowMove); }