Fix crash when unloading cargo from units with multiple cloaks.

This commit is contained in:
Paul Chote
2017-02-05 17:52:19 +00:00
parent b018c3d837
commit 7a22de268d

View File

@@ -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<Cargo>();
cloak = self.TraitOrDefault<Cloak>();
cloaks = self.TraitsImplementing<Cloak>().ToArray();
this.unloadAll = unloadAll;
}
@@ -60,7 +60,8 @@ namespace OpenRA.Mods.Common.Activities
if (IsCanceled || cargo.IsEmpty(self))
return NextActivity;
if (cloak != null && cloak.Info.UncloakOn.HasFlag(UncloakType.Unload))
foreach (var cloak in cloaks)
if (cloak.Info.UncloakOn.HasFlag(UncloakType.Unload))
cloak.Uncloak();
var actor = cargo.Peek(self);