From fb27a25e5291282ef5b6f44f849f0ed68d56c6cc Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Tue, 2 Jun 2020 11:57:11 +0200 Subject: [PATCH] Fix a crash with support powers and units without selection decorations --- .../Traits/SupportPowers/ChronoshiftPower.cs | 10 ++++++---- .../SupportPowers/GrantExternalConditionPower.cs | 5 +++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/OpenRA.Mods.Cnc/Traits/SupportPowers/ChronoshiftPower.cs b/OpenRA.Mods.Cnc/Traits/SupportPowers/ChronoshiftPower.cs index c30da5e12b..3dabafa4d6 100644 --- a/OpenRA.Mods.Cnc/Traits/SupportPowers/ChronoshiftPower.cs +++ b/OpenRA.Mods.Cnc/Traits/SupportPowers/ChronoshiftPower.cs @@ -192,8 +192,9 @@ namespace OpenRA.Mods.Cnc.Traits if (unit.CanBeViewedByPlayer(manager.Self.Owner)) { var decorations = unit.TraitsImplementing().FirstEnabledTraitOrDefault(); - foreach (var d in decorations.RenderSelectionAnnotations(unit, wr, Color.Red)) - yield return d; + if (decorations != null) + foreach (var d in decorations.RenderSelectionAnnotations(unit, wr, Color.Red)) + yield return d; } } } @@ -318,8 +319,9 @@ namespace OpenRA.Mods.Cnc.Traits if (unit.CanBeViewedByPlayer(manager.Self.Owner)) { var decorations = unit.TraitsImplementing().FirstEnabledTraitOrDefault(); - foreach (var d in decorations.RenderSelectionAnnotations(unit, wr, Color.Red)) - yield return d; + if (decorations != null) + foreach (var d in decorations.RenderSelectionAnnotations(unit, wr, Color.Red)) + yield return d; } } } diff --git a/OpenRA.Mods.Common/Traits/SupportPowers/GrantExternalConditionPower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/GrantExternalConditionPower.cs index 64f28ad94b..8540234a09 100644 --- a/OpenRA.Mods.Common/Traits/SupportPowers/GrantExternalConditionPower.cs +++ b/OpenRA.Mods.Common/Traits/SupportPowers/GrantExternalConditionPower.cs @@ -155,8 +155,9 @@ namespace OpenRA.Mods.Common.Traits foreach (var unit in power.UnitsInRange(xy)) { var decorations = unit.TraitsImplementing().FirstEnabledTraitOrDefault(); - foreach (var d in decorations.RenderSelectionAnnotations(unit, wr, Color.Red)) - yield return d; + if (decorations != null) + foreach (var d in decorations.RenderSelectionAnnotations(unit, wr, Color.Red)) + yield return d; } }