diff --git a/OpenRA.Game/Traits/Mobile.cs b/OpenRA.Game/Traits/Mobile.cs index ebc462ccf8..0fc3f342f0 100644 --- a/OpenRA.Game/Traits/Mobile.cs +++ b/OpenRA.Game/Traits/Mobile.cs @@ -185,6 +185,7 @@ namespace OpenRA.Traits if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new MoveFlash(self.World, order.TargetLocation)); var line = self.TraitOrDefault(); if (line != null) @@ -350,6 +351,7 @@ namespace OpenRA.Traits if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; var line = self.TraitOrDefault(); if (line != null) line.SetTargetSilently(self, Target.FromCell(moveTo.Value), Color.Green); diff --git a/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs b/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs index af4941bbba..99d5e1ce66 100644 --- a/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs +++ b/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs @@ -196,7 +196,8 @@ namespace OpenRA.Mods.Cnc { var b = cargo.Unload(a); world.AddFrameEndTask(w2 => - { + { + if (b.Destroyed) return; w2.Add(b); b.TraitsImplementing().FirstOrDefault().SetPosition(b, a.Location); b.QueueActivity(new Move(unload, 2)); diff --git a/OpenRA.Mods.Cnc/TiberiumRefineryDockAction.cs b/OpenRA.Mods.Cnc/TiberiumRefineryDockAction.cs index 88832a1e81..3eace07818 100644 --- a/OpenRA.Mods.Cnc/TiberiumRefineryDockAction.cs +++ b/OpenRA.Mods.Cnc/TiberiumRefineryDockAction.cs @@ -56,7 +56,8 @@ namespace OpenRA.Mods.Cnc harv.QueueActivity( new Move(harvester.LastHarvestedCell, 5) ); if (harv.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask( w => - { + { + if (harv.Destroyed) return; var line = harv.TraitOrDefault(); if (line != null) line.SetTargetSilently(harv, Target.FromCell(harvester.LastHarvestedCell), Color.Green); diff --git a/OpenRA.Mods.RA/Activities/UnloadCargo.cs b/OpenRA.Mods.RA/Activities/UnloadCargo.cs index 66cd235e2c..01fd871ff2 100644 --- a/OpenRA.Mods.RA/Activities/UnloadCargo.cs +++ b/OpenRA.Mods.RA/Activities/UnloadCargo.cs @@ -65,6 +65,7 @@ namespace OpenRA.Mods.RA.Activities self.World.AddFrameEndTask(w => { + if (actor.Destroyed) return; w.Add(actor); actor.TraitsImplementing().FirstOrDefault().SetPosition(actor, self.Location); actor.CancelActivity(); diff --git a/OpenRA.Mods.RA/AttackBase.cs b/OpenRA.Mods.RA/AttackBase.cs index b185ab4fdd..8e548c91a1 100644 --- a/OpenRA.Mods.RA/AttackBase.cs +++ b/OpenRA.Mods.RA/AttackBase.cs @@ -217,6 +217,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; if (order.TargetActor != null) w.Add(new FlashTarget(order.TargetActor)); diff --git a/OpenRA.Mods.RA/AttackMove.cs b/OpenRA.Mods.RA/AttackMove.cs index 4a02936a96..0418af233f 100644 --- a/OpenRA.Mods.RA/AttackMove.cs +++ b/OpenRA.Mods.RA/AttackMove.cs @@ -47,6 +47,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; if (order.TargetActor != null) w.Add(new FlashTarget(order.TargetActor)); diff --git a/OpenRA.Mods.RA/C4Demolition.cs b/OpenRA.Mods.RA/C4Demolition.cs index dc49fb6652..7c8e91d0fb 100644 --- a/OpenRA.Mods.RA/C4Demolition.cs +++ b/OpenRA.Mods.RA/C4Demolition.cs @@ -46,6 +46,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new FlashTarget(order.TargetActor)); var line = self.TraitOrDefault(); if (line != null) diff --git a/OpenRA.Mods.RA/DemoTruck.cs b/OpenRA.Mods.RA/DemoTruck.cs index c45adfde19..6ec8589ddc 100644 --- a/OpenRA.Mods.RA/DemoTruck.cs +++ b/OpenRA.Mods.RA/DemoTruck.cs @@ -39,6 +39,7 @@ namespace OpenRA.Mods.RA self.World.AddFrameEndTask( w => { + if (self.Destroyed) return; Combat.DoExplosion(self, info.PrimaryWeapon, self.CenterLocation, altitude); // Remove from world diff --git a/OpenRA.Mods.RA/EngineerCapture.cs b/OpenRA.Mods.RA/EngineerCapture.cs index 850778d4c7..2e9b0d9a8b 100644 --- a/OpenRA.Mods.RA/EngineerCapture.cs +++ b/OpenRA.Mods.RA/EngineerCapture.cs @@ -50,6 +50,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new FlashTarget(order.TargetActor)); var line = self.TraitOrDefault(); if (line != null) diff --git a/OpenRA.Mods.RA/EngineerRepair.cs b/OpenRA.Mods.RA/EngineerRepair.cs index 90a7001b65..9bc3c955f8 100644 --- a/OpenRA.Mods.RA/EngineerRepair.cs +++ b/OpenRA.Mods.RA/EngineerRepair.cs @@ -48,7 +48,8 @@ namespace OpenRA.Mods.RA { if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => - { + { + if (self.Destroyed) return; w.Add(new FlashTarget(order.TargetActor)); var line = self.TraitOrDefault(); if (line != null) diff --git a/OpenRA.Mods.RA/Harvester.cs b/OpenRA.Mods.RA/Harvester.cs index e4d58519cd..4e27072c6c 100644 --- a/OpenRA.Mods.RA/Harvester.cs +++ b/OpenRA.Mods.RA/Harvester.cs @@ -126,6 +126,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new MoveFlash(self.World, order.TargetLocation)); var line = self.TraitOrDefault(); if (line != null) @@ -152,6 +153,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new FlashTarget(order.TargetActor)); var line = self.TraitOrDefault(); if (line != null) diff --git a/OpenRA.Mods.RA/Helicopter.cs b/OpenRA.Mods.RA/Helicopter.cs index 6f30730742..09f21ff772 100644 --- a/OpenRA.Mods.RA/Helicopter.cs +++ b/OpenRA.Mods.RA/Helicopter.cs @@ -80,6 +80,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new MoveFlash(self.World, order.TargetLocation)); var line = self.TraitOrDefault(); if (line != null) @@ -109,6 +110,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new FlashTarget(order.TargetActor)); var line = self.TraitOrDefault(); if (line != null) diff --git a/OpenRA.Mods.RA/OreRefineryDockAction.cs b/OpenRA.Mods.RA/OreRefineryDockAction.cs index d25275399a..579bc56d9e 100644 --- a/OpenRA.Mods.RA/OreRefineryDockAction.cs +++ b/OpenRA.Mods.RA/OreRefineryDockAction.cs @@ -45,6 +45,7 @@ namespace OpenRA.Mods.RA if (harv.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask( w => { + if (harv.Destroyed) return; var line = harv.TraitOrDefault(); if (line != null) line.SetTargetSilently(harv, Target.FromCell(harvester.LastHarvestedCell), Color.Green); diff --git a/OpenRA.Mods.RA/Passenger.cs b/OpenRA.Mods.RA/Passenger.cs index c30c759813..cd1596ab16 100644 --- a/OpenRA.Mods.RA/Passenger.cs +++ b/OpenRA.Mods.RA/Passenger.cs @@ -80,6 +80,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new FlashTarget(order.TargetActor)); var line = self.TraitOrDefault(); if (line != null) diff --git a/OpenRA.Mods.RA/Plane.cs b/OpenRA.Mods.RA/Plane.cs index 2c283a3c7a..8ff30d804c 100644 --- a/OpenRA.Mods.RA/Plane.cs +++ b/OpenRA.Mods.RA/Plane.cs @@ -93,6 +93,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new MoveFlash(self.World, order.TargetLocation)); var line = self.TraitOrDefault(); if (line != null) @@ -114,6 +115,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new FlashTarget(order.TargetActor)); var line = self.TraitOrDefault(); if (line != null) diff --git a/OpenRA.Mods.RA/Repairable.cs b/OpenRA.Mods.RA/Repairable.cs index 57c1e1029b..bfafb4ed18 100644 --- a/OpenRA.Mods.RA/Repairable.cs +++ b/OpenRA.Mods.RA/Repairable.cs @@ -77,6 +77,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => { + if (self.Destroyed) return; w.Add(new FlashTarget(order.TargetActor)); var line = self.TraitOrDefault(); if (line != null) diff --git a/OpenRA.Mods.RA/RepairableNear.cs b/OpenRA.Mods.RA/RepairableNear.cs index aa167ee703..55769aede8 100644 --- a/OpenRA.Mods.RA/RepairableNear.cs +++ b/OpenRA.Mods.RA/RepairableNear.cs @@ -68,6 +68,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask( w => { + if (self.Destroyed) return; var line = self.TraitOrDefault(); if (line != null) line.SetTargetSilently(self, Target.FromActor(order.TargetActor), Color.Green); diff --git a/OpenRA.Mods.RA/Spy.cs b/OpenRA.Mods.RA/Spy.cs index 8460914d21..f873c4a142 100644 --- a/OpenRA.Mods.RA/Spy.cs +++ b/OpenRA.Mods.RA/Spy.cs @@ -43,6 +43,7 @@ namespace OpenRA.Mods.RA if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask( w => { + if (self.Destroyed) return; var line = self.TraitOrDefault(); if (line != null) line.SetTargetSilently(self, Target.FromActor(order.TargetActor), Color.Green);