Merge pull request #5324 from Squiggles211/apc_load_crash
Fixes #4790 Fixes #5270
This commit is contained in:
@@ -32,6 +32,9 @@ namespace OpenRA.Mods.Cnc
|
|||||||
{
|
{
|
||||||
if (--poisonTicks > 0) return;
|
if (--poisonTicks > 0) return;
|
||||||
|
|
||||||
|
// Prevents harming infantry in cargo.
|
||||||
|
if (!self.IsInWorld) return;
|
||||||
|
|
||||||
var rl = self.World.WorldActor.Trait<ResourceLayer>();
|
var rl = self.World.WorldActor.Trait<ResourceLayer>();
|
||||||
var r = rl.GetResource(self.Location);
|
var r = rl.GetResource(self.Location);
|
||||||
if (r == null) return;
|
if (r == null) return;
|
||||||
|
|||||||
@@ -41,8 +41,14 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
if (!cells.Contains(self.Location))
|
if (!cells.Contains(self.Location))
|
||||||
return NextActivity;
|
return NextActivity;
|
||||||
|
|
||||||
cargo.Load(transport, self);
|
self.World.AddFrameEndTask(w =>
|
||||||
self.World.AddFrameEndTask(w => w.Remove(self));
|
{
|
||||||
|
if (self.IsDead() || transport.IsDead() || !cargo.CanLoad(transport, self))
|
||||||
|
return;
|
||||||
|
|
||||||
|
cargo.Load(transport, self);
|
||||||
|
w.Remove(self);
|
||||||
|
});
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user