From e09a7f57f31c6b8e18ab8ceae7294702bc651580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 21 Apr 2013 18:13:56 +0200 Subject: [PATCH] Undock harvesters when refinery is destroyed or not in world fixes #2029 --- OpenRA.Mods.Cnc/Activities/HarvesterDockSequence.cs | 2 +- OpenRA.Mods.RA/Activities/RAHarvesterDockSequence.cs | 2 +- OpenRA.Mods.RA/Harvester.cs | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/OpenRA.Mods.Cnc/Activities/HarvesterDockSequence.cs b/OpenRA.Mods.Cnc/Activities/HarvesterDockSequence.cs index ebe1db626d..59999add0e 100644 --- a/OpenRA.Mods.Cnc/Activities/HarvesterDockSequence.cs +++ b/OpenRA.Mods.Cnc/Activities/HarvesterDockSequence.cs @@ -56,7 +56,7 @@ namespace OpenRA.Mods.Cnc state = State.Wait; return this; case State.Loop: - if (harv.TickUnload(self, proc)) + if (!proc.IsInWorld || proc.IsDead() || harv.TickUnload(self, proc)) state = State.Undock; return this; case State.Undock: diff --git a/OpenRA.Mods.RA/Activities/RAHarvesterDockSequence.cs b/OpenRA.Mods.RA/Activities/RAHarvesterDockSequence.cs index 904684ccef..cac6e85bb7 100644 --- a/OpenRA.Mods.RA/Activities/RAHarvesterDockSequence.cs +++ b/OpenRA.Mods.RA/Activities/RAHarvesterDockSequence.cs @@ -49,7 +49,7 @@ namespace OpenRA.Mods.RA state = State.Wait; return this; case State.Loop: - if (harv.TickUnload(self, proc)) + if (!proc.IsInWorld || proc.IsDead() || harv.TickUnload(self, proc)) state = State.Undock; return this; case State.Undock: diff --git a/OpenRA.Mods.RA/Harvester.cs b/OpenRA.Mods.RA/Harvester.cs index da5a7ec35d..c8b6db7f46 100644 --- a/OpenRA.Mods.RA/Harvester.cs +++ b/OpenRA.Mods.RA/Harvester.cs @@ -212,9 +212,6 @@ namespace OpenRA.Mods.RA // Returns true when unloading is complete public bool TickUnload(Actor self, Actor proc) { - if (!proc.IsInWorld) - return false; // fail to deliver if there is no proc. - // Wait until the next bale is ready if (--currentUnloadTicks > 0) return false;