From 7a22de268dde7d6f6388d31e0bdeb09ba94cdacd Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 5 Feb 2017 17:52:19 +0000 Subject: [PATCH] Fix crash when unloading cargo from units with multiple cloaks. --- OpenRA.Mods.Common/Activities/UnloadCargo.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/OpenRA.Mods.Common/Activities/UnloadCargo.cs b/OpenRA.Mods.Common/Activities/UnloadCargo.cs index b3ef062501..4698ae632d 100644 --- a/OpenRA.Mods.Common/Activities/UnloadCargo.cs +++ b/OpenRA.Mods.Common/Activities/UnloadCargo.cs @@ -23,14 +23,14 @@ namespace OpenRA.Mods.Common.Activities { readonly Actor self; readonly Cargo cargo; - readonly Cloak cloak; + readonly Cloak[] cloaks; readonly bool unloadAll; public UnloadCargo(Actor self, bool unloadAll) { this.self = self; cargo = self.Trait(); - cloak = self.TraitOrDefault(); + cloaks = self.TraitsImplementing().ToArray(); this.unloadAll = unloadAll; } @@ -60,8 +60,9 @@ namespace OpenRA.Mods.Common.Activities if (IsCanceled || cargo.IsEmpty(self)) return NextActivity; - if (cloak != null && cloak.Info.UncloakOn.HasFlag(UncloakType.Unload)) - cloak.Uncloak(); + foreach (var cloak in cloaks) + if (cloak.Info.UncloakOn.HasFlag(UncloakType.Unload)) + cloak.Uncloak(); var actor = cargo.Peek(self); var spawn = self.CenterPosition;