From b953f4a40d1058fde4831e1fdb492e65ae31da20 Mon Sep 17 00:00:00 2001 From: Gustas <37534529+PunkPun@users.noreply.github.com> Date: Sat, 15 Mar 2025 08:11:14 +0200 Subject: [PATCH] Fix a potential crash when cancelling capture --- OpenRA.Mods.Common/Activities/CaptureActor.cs | 2 +- OpenRA.Mods.Common/Traits/CaptureManager.cs | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/OpenRA.Mods.Common/Activities/CaptureActor.cs b/OpenRA.Mods.Common/Activities/CaptureActor.cs index 7c03ee9eb6..dccc8e7362 100644 --- a/OpenRA.Mods.Common/Activities/CaptureActor.cs +++ b/OpenRA.Mods.Common/Activities/CaptureActor.cs @@ -152,7 +152,7 @@ namespace OpenRA.Mods.Common.Activities void CancelCapture() { - manager.CancelCapture(enterCaptureManager); + manager.CancelCapture(enterActor, enterCaptureManager); } } } diff --git a/OpenRA.Mods.Common/Traits/CaptureManager.cs b/OpenRA.Mods.Common/Traits/CaptureManager.cs index b9a40f8aa5..f57fe36841 100644 --- a/OpenRA.Mods.Common/Traits/CaptureManager.cs +++ b/OpenRA.Mods.Common/Traits/CaptureManager.cs @@ -189,7 +189,7 @@ namespace OpenRA.Mods.Common.Traits if (target != currentTarget) { if (currentTargetManager != null) - CancelCapture(currentTargetManager); + CancelCapture(currentTarget, currentTargetManager); targetManager.currentCaptors.Add(self); currentTarget = target; @@ -239,12 +239,11 @@ namespace OpenRA.Mods.Common.Traits /// This method revokes the capturing conditions on the captor and target /// and resets any capturing progress. /// - public void CancelCapture(CaptureManager targetManager) + public void CancelCapture(Actor target, CaptureManager targetManager) { if (currentTarget == null) return; - var target = targetManager.self; foreach (var w in progressWatchers) w.Update(self, self, target, 0, 0);