From e8bae2e50af2311433e9f097d43ea82c99584aa4 Mon Sep 17 00:00:00 2001 From: Vapre Date: Thu, 19 Aug 2021 19:56:20 +0200 Subject: [PATCH] Crash on capture fix. #19482. --- OpenRA.Mods.Common/Traits/CaptureManager.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/CaptureManager.cs b/OpenRA.Mods.Common/Traits/CaptureManager.cs index 5864b74404..c5cef7883c 100644 --- a/OpenRA.Mods.Common/Traits/CaptureManager.cs +++ b/OpenRA.Mods.Common/Traits/CaptureManager.cs @@ -254,20 +254,25 @@ namespace OpenRA.Mods.Common.Traits foreach (var w in progressWatchers) w.Update(self, self, target, 0, 0); - foreach (var w in targetManager.progressWatchers) - w.Update(target, self, target, 0, 0); + if (targetManager != null) + foreach (var w in targetManager.progressWatchers) + w.Update(target, self, target, 0, 0); if (capturingToken != Actor.InvalidConditionToken) capturingToken = self.RevokeCondition(capturingToken); - if (targetManager.beingCapturedToken != Actor.InvalidConditionToken) - targetManager.beingCapturedToken = target.RevokeCondition(targetManager.beingCapturedToken); + if (targetManager != null) + { + if (targetManager.beingCapturedToken != Actor.InvalidConditionToken) + targetManager.beingCapturedToken = target.RevokeCondition(targetManager.beingCapturedToken); + + targetManager.currentCaptors.Remove(self); + } currentTarget = null; currentTargetManager = null; currentTargetDelay = 0; enteringCurrentTarget = false; - targetManager.currentCaptors.Remove(self); } void ITick.Tick(Actor self)