Added "PERF: Avoid LINQ." comments.

This commit is contained in:
RoosterDragon
2015-12-12 21:05:13 +00:00
parent d0c23ef2dd
commit 21292061f9
5 changed files with 10 additions and 0 deletions

View File

@@ -324,6 +324,7 @@ namespace OpenRA
public IEnumerable<string> GetAllTargetTypes() public IEnumerable<string> GetAllTargetTypes()
{ {
// PERF: Avoid LINQ.
foreach (var targetable in Targetables) foreach (var targetable in Targetables)
foreach (var targetType in targetable.TargetTypes) foreach (var targetType in targetable.TargetTypes)
yield return targetType; yield return targetType;
@@ -331,6 +332,7 @@ namespace OpenRA
public IEnumerable<string> GetEnabledTargetTypes() public IEnumerable<string> GetEnabledTargetTypes()
{ {
// PERF: Avoid LINQ.
foreach (var targetable in Targetables) foreach (var targetable in Targetables)
if (targetable.IsTraitEnabled()) if (targetable.IsTraitEnabled())
foreach (var targetType in targetable.TargetTypes) foreach (var targetType in targetable.TargetTypes)
@@ -339,6 +341,7 @@ namespace OpenRA
public bool IsTargetableBy(Actor byActor) public bool IsTargetableBy(Actor byActor)
{ {
// PERF: Avoid LINQ.
foreach (var targetable in Targetables) foreach (var targetable in Targetables)
if (targetable.IsTraitEnabled() && targetable.TargetableBy(this, byActor)) if (targetable.IsTraitEnabled() && targetable.TargetableBy(this, byActor))
return true; return true;

View File

@@ -132,6 +132,7 @@ namespace OpenRA.GameRules
if (!IsValidTarget(targetTypes)) if (!IsValidTarget(targetTypes))
return false; return false;
// PERF: Avoid LINQ.
foreach (var warhead in Warheads) foreach (var warhead in Warheads)
if (warhead.IsValidAgainst(victim, firedBy)) if (warhead.IsValidAgainst(victim, firedBy))
return true; return true;

View File

@@ -159,6 +159,7 @@ namespace OpenRA
public bool CanTargetActor(Actor a) public bool CanTargetActor(Actor a)
{ {
// PERF: Avoid LINQ.
if (HasFogVisibility) if (HasFogVisibility)
foreach (var fogVisibility in fogVisibilities) foreach (var fogVisibility in fogVisibilities)
if (fogVisibility.IsVisible(a)) if (fogVisibility.IsVisible(a))
@@ -171,6 +172,7 @@ namespace OpenRA
{ {
get get
{ {
// PERF: Avoid LINQ.
foreach (var fogVisibility in fogVisibilities) foreach (var fogVisibility in fogVisibilities)
if (fogVisibility.HasFogVisibility()) if (fogVisibility.HasFogVisibility())
return true; return true;

View File

@@ -96,6 +96,7 @@ namespace OpenRA.Traits
if (actor == null) if (actor == null)
return false; return false;
// PERF: Avoid LINQ.
var isTargetable = false; var isTargetable = false;
foreach (var targetable in actor.Targetables) foreach (var targetable in actor.Targetables)
{ {

View File

@@ -189,6 +189,7 @@ namespace OpenRA.Mods.Common.Traits
if (Info.AttackRequiresEnteringCell && !positionable.Value.CanEnterCell(t.Actor.Location, null, false)) if (Info.AttackRequiresEnteringCell && !positionable.Value.CanEnterCell(t.Actor.Location, null, false))
return false; return false;
// PERF: Avoid LINQ.
foreach (var armament in Armaments) foreach (var armament in Armaments)
if (armament.Weapon.IsValidAgainst(t, self.World, self)) if (armament.Weapon.IsValidAgainst(t, self.World, self))
return true; return true;
@@ -201,6 +202,7 @@ namespace OpenRA.Mods.Common.Traits
if (IsTraitDisabled) if (IsTraitDisabled)
return WDist.Zero; return WDist.Zero;
// PERF: Avoid LINQ.
var min = WDist.MaxValue; var min = WDist.MaxValue;
foreach (var armament in Armaments) foreach (var armament in Armaments)
{ {
@@ -219,6 +221,7 @@ namespace OpenRA.Mods.Common.Traits
if (IsTraitDisabled) if (IsTraitDisabled)
return WDist.Zero; return WDist.Zero;
// PERF: Avoid LINQ.
var max = WDist.Zero; var max = WDist.Zero;
foreach (var armament in Armaments) foreach (var armament in Armaments)
{ {