From df6956867afb8e99961983a8db416ce1e56f45f1 Mon Sep 17 00:00:00 2001 From: RoosterDragon Date: Thu, 8 Jan 2015 00:51:44 +0000 Subject: [PATCH] Adjust UpgradeOverlay.ModifyRender to be more efficient. When IsTraitDisabled is set, ModifyRender doesn't actually alter the sequence, so we can just return it directly and avoid adding another layer of enumerable. If it is unset, then the modifying enumerable has one less condition to check inside the loop. --- OpenRA.Mods.Common/Traits/Modifiers/UpgradeOverlay.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Modifiers/UpgradeOverlay.cs b/OpenRA.Mods.Common/Traits/Modifiers/UpgradeOverlay.cs index e7e5af7a6c..8feefc12f3 100644 --- a/OpenRA.Mods.Common/Traits/Modifiers/UpgradeOverlay.cs +++ b/OpenRA.Mods.Common/Traits/Modifiers/UpgradeOverlay.cs @@ -29,12 +29,19 @@ namespace OpenRA.Mods.Common.Traits : base(info) { } public IEnumerable ModifyRender(Actor self, WorldRenderer wr, IEnumerable r) + { + if (IsTraitDisabled) + return r; + return ModifiedRender(self, wr, r); + } + + IEnumerable ModifiedRender(Actor self, WorldRenderer wr, IEnumerable r) { foreach (var a in r) { yield return a; - if (!IsTraitDisabled && !a.IsDecoration) + if (!a.IsDecoration) yield return a.WithPalette(wr.Palette(Info.Palette)) .WithZOffset(a.ZOffset + 1) .AsDecoration();