diff --git a/OpenRA.Game/Activities/Activity.cs b/OpenRA.Game/Activities/Activity.cs index d83acfac46..36f9d8a847 100644 --- a/OpenRA.Game/Activities/Activity.cs +++ b/OpenRA.Game/Activities/Activity.cs @@ -16,7 +16,7 @@ using OpenRA.Traits; namespace OpenRA.Activities { - public enum ActivityState { Queued, Active, Done, Canceled } + public enum ActivityState { Queued, Active, Canceling, Done } /* * Activities are actions carried out by actors during each tick. @@ -99,7 +99,7 @@ namespace OpenRA.Activities { get { - return childActivity != null && childActivity.State != ActivityState.Done ? childActivity : null; + return childActivity != null && childActivity.State < ActivityState.Done ? childActivity : null; } set @@ -153,7 +153,7 @@ namespace OpenRA.Activities } public bool IsInterruptible { get; protected set; } - public bool IsCanceled { get { return State == ActivityState.Canceled; } } + public bool IsCanceling { get { return State == ActivityState.Canceling; } } public Activity() { @@ -179,8 +179,7 @@ namespace OpenRA.Activities if (ParentActivity != null && ParentActivity != ret) ParentActivity.ChildActivity = ret; - if (State != ActivityState.Canceled) - State = ActivityState.Done; + State = ActivityState.Done; OnLastRun(self); } @@ -220,16 +219,16 @@ namespace OpenRA.Activities public virtual bool Cancel(Actor self, bool keepQueue = false) { + if (!keepQueue) + NextInQueue = null; + if (!IsInterruptible) return false; - if (ChildActivity != null && !ChildActivity.Cancel(self)) - return false; + if (ChildActivity != null) + ChildActivity.Cancel(self); - if (!keepQueue) - NextActivity = null; - - State = ActivityState.Canceled; + State = ActivityState.Canceling; return true; } diff --git a/OpenRA.Mods.Cnc/Activities/LayMines.cs b/OpenRA.Mods.Cnc/Activities/LayMines.cs index db361ac377..7b3c289607 100644 --- a/OpenRA.Mods.Cnc/Activities/LayMines.cs +++ b/OpenRA.Mods.Cnc/Activities/LayMines.cs @@ -39,7 +39,7 @@ namespace OpenRA.Mods.Cnc.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) return NextActivity; if (rearmableInfo != null && ammoPools.Any(p => p.Info.Name == info.AmmoPoolName && !p.HasAmmo())) diff --git a/OpenRA.Mods.Cnc/Activities/LeapAttack.cs b/OpenRA.Mods.Cnc/Activities/LeapAttack.cs index 9141cd070a..a2f2ea7aaf 100644 --- a/OpenRA.Mods.Cnc/Activities/LeapAttack.cs +++ b/OpenRA.Mods.Cnc/Activities/LeapAttack.cs @@ -66,7 +66,7 @@ namespace OpenRA.Mods.Cnc.Activities return this; } - if (IsCanceled) + if (IsCanceling) return NextActivity; bool targetIsHiddenActor; diff --git a/OpenRA.Mods.Cnc/Traits/Attack/AttackTDGunboatTurreted.cs b/OpenRA.Mods.Cnc/Traits/Attack/AttackTDGunboatTurreted.cs index 89aa71ef8e..4779732bd7 100644 --- a/OpenRA.Mods.Cnc/Traits/Attack/AttackTDGunboatTurreted.cs +++ b/OpenRA.Mods.Cnc/Traits/Attack/AttackTDGunboatTurreted.cs @@ -48,7 +48,7 @@ namespace OpenRA.Mods.Cnc.Traits public override Activity Tick(Actor self) { - if (IsCanceled || !target.IsValidFor(self)) + if (IsCanceling || !target.IsValidFor(self)) return NextActivity; if (attack.IsTraitDisabled) diff --git a/OpenRA.Mods.Cnc/Traits/Attack/AttackTesla.cs b/OpenRA.Mods.Cnc/Traits/Attack/AttackTesla.cs index 25c97167fa..34eda126ec 100644 --- a/OpenRA.Mods.Cnc/Traits/Attack/AttackTesla.cs +++ b/OpenRA.Mods.Cnc/Traits/Attack/AttackTesla.cs @@ -91,7 +91,7 @@ namespace OpenRA.Mods.Cnc.Traits public override Activity Tick(Actor self) { - if (IsCanceled || !attack.CanAttack(self, target)) + if (IsCanceling || !attack.CanAttack(self, target)) return NextActivity; if (attack.charges == 0) @@ -120,7 +120,7 @@ namespace OpenRA.Mods.Cnc.Traits public override Activity Tick(Actor self) { - if (IsCanceled || !attack.CanAttack(self, target)) + if (IsCanceling || !attack.CanAttack(self, target)) return NextActivity; if (attack.charges == 0) diff --git a/OpenRA.Mods.Common/Activities/Air/Fly.cs b/OpenRA.Mods.Common/Activities/Air/Fly.cs index 6301cf8362..6e41c4aded 100644 --- a/OpenRA.Mods.Common/Activities/Air/Fly.cs +++ b/OpenRA.Mods.Common/Activities/Air/Fly.cs @@ -77,7 +77,7 @@ namespace OpenRA.Mods.Common.Activities if (aircraft.ForceLanding) Cancel(self); - if (IsCanceled) + if (IsCanceling) return NextActivity; bool targetIsHiddenActor; diff --git a/OpenRA.Mods.Common/Activities/Air/FlyAttack.cs b/OpenRA.Mods.Common/Activities/Air/FlyAttack.cs index 7c49a47ebb..7c9c06a493 100644 --- a/OpenRA.Mods.Common/Activities/Air/FlyAttack.cs +++ b/OpenRA.Mods.Common/Activities/Air/FlyAttack.cs @@ -53,7 +53,7 @@ namespace OpenRA.Mods.Common.Activities if (aircraft.ForceLanding) Cancel(self); - if (IsCanceled) + if (IsCanceling) return NextActivity; bool targetIsHiddenActor; diff --git a/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs b/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs index 90771cb6ad..1176449a87 100644 --- a/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs +++ b/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs @@ -39,7 +39,7 @@ namespace OpenRA.Mods.Common.Activities return NextActivity; } - if (IsCanceled) + if (IsCanceling) return NextActivity; if (remainingTicks > 0) diff --git a/OpenRA.Mods.Common/Activities/Air/FlyFollow.cs b/OpenRA.Mods.Common/Activities/Air/FlyFollow.cs index 202b1f1119..3eb5c3632f 100644 --- a/OpenRA.Mods.Common/Activities/Air/FlyFollow.cs +++ b/OpenRA.Mods.Common/Activities/Air/FlyFollow.cs @@ -51,7 +51,7 @@ namespace OpenRA.Mods.Common.Activities if (aircraft.ForceLanding) Cancel(self); - if (IsCanceled) + if (IsCanceling) return NextActivity; bool targetIsHiddenActor; diff --git a/OpenRA.Mods.Common/Activities/Air/FlyOffMap.cs b/OpenRA.Mods.Common/Activities/Air/FlyOffMap.cs index 2aae5003cc..8645ca50af 100644 --- a/OpenRA.Mods.Common/Activities/Air/FlyOffMap.cs +++ b/OpenRA.Mods.Common/Activities/Air/FlyOffMap.cs @@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.Activities return NextActivity; } - if (IsCanceled || !self.World.Map.Contains(self.Location)) + if (IsCanceling || !self.World.Map.Contains(self.Location)) return NextActivity; Fly.FlyToward(self, aircraft, aircraft.Facing, aircraft.Info.CruiseAltitude); diff --git a/OpenRA.Mods.Common/Activities/Air/FlyTimed.cs b/OpenRA.Mods.Common/Activities/Air/FlyTimed.cs index 272d491cf7..62dcffcdca 100644 --- a/OpenRA.Mods.Common/Activities/Air/FlyTimed.cs +++ b/OpenRA.Mods.Common/Activities/Air/FlyTimed.cs @@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.Activities return NextActivity; } - if (IsCanceled || remainingTicks-- == 0) + if (IsCanceling || remainingTicks-- == 0) return NextActivity; Fly.FlyToward(self, aircraft, aircraft.Facing, cruiseAltitude); diff --git a/OpenRA.Mods.Common/Activities/Air/HeliAttack.cs b/OpenRA.Mods.Common/Activities/Air/HeliAttack.cs index 899046eda8..4dd90df45e 100644 --- a/OpenRA.Mods.Common/Activities/Air/HeliAttack.cs +++ b/OpenRA.Mods.Common/Activities/Air/HeliAttack.cs @@ -51,7 +51,7 @@ namespace OpenRA.Mods.Common.Activities if (aircraft.ForceLanding) Cancel(self); - if (IsCanceled) + if (IsCanceling) return NextActivity; bool targetIsHiddenActor; diff --git a/OpenRA.Mods.Common/Activities/Air/HeliFly.cs b/OpenRA.Mods.Common/Activities/Air/HeliFly.cs index f05355b629..95b554a9db 100644 --- a/OpenRA.Mods.Common/Activities/Air/HeliFly.cs +++ b/OpenRA.Mods.Common/Activities/Air/HeliFly.cs @@ -73,7 +73,7 @@ namespace OpenRA.Mods.Common.Activities if (aircraft.ForceLanding) Cancel(self); - if (IsCanceled) + if (IsCanceling) return NextActivity; bool targetIsHiddenActor; @@ -156,7 +156,7 @@ namespace OpenRA.Mods.Common.Activities { var activity = base.Tick(self); - if (activity == null && !IsCanceled && info.LandWhenIdle) + if (activity == null && !IsCanceling && info.LandWhenIdle) { if (info.TurnToLand) self.QueueActivity(new Turn(self, info.InitialFacing)); diff --git a/OpenRA.Mods.Common/Activities/Air/HeliFlyCircle.cs b/OpenRA.Mods.Common/Activities/Air/HeliFlyCircle.cs index 9f2b4a9af2..d116900014 100644 --- a/OpenRA.Mods.Common/Activities/Air/HeliFlyCircle.cs +++ b/OpenRA.Mods.Common/Activities/Air/HeliFlyCircle.cs @@ -34,7 +34,7 @@ namespace OpenRA.Mods.Common.Activities return NextActivity; } - if (IsCanceled) + if (IsCanceling) return NextActivity; if (HeliFly.AdjustAltitude(self, aircraft, aircraft.Info.CruiseAltitude)) diff --git a/OpenRA.Mods.Common/Activities/Air/HeliLand.cs b/OpenRA.Mods.Common/Activities/Air/HeliLand.cs index 4c9e664eaa..7edb0d88e4 100644 --- a/OpenRA.Mods.Common/Activities/Air/HeliLand.cs +++ b/OpenRA.Mods.Common/Activities/Air/HeliLand.cs @@ -34,7 +34,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) return NextActivity; if (requireSpace && !aircraft.CanLand(self.Location)) diff --git a/OpenRA.Mods.Common/Activities/Air/HeliReturnToBase.cs b/OpenRA.Mods.Common/Activities/Air/HeliReturnToBase.cs index ad9f8d4b49..054375f9af 100644 --- a/OpenRA.Mods.Common/Activities/Air/HeliReturnToBase.cs +++ b/OpenRA.Mods.Common/Activities/Air/HeliReturnToBase.cs @@ -44,7 +44,7 @@ namespace OpenRA.Mods.Common.Activities if (aircraft.ForceLanding) return NextActivity; - if (IsCanceled) + if (IsCanceling) return NextActivity; if (dest == null || dest.IsDead || !Reservable.IsAvailableFor(dest, self)) diff --git a/OpenRA.Mods.Common/Activities/Air/Land.cs b/OpenRA.Mods.Common/Activities/Air/Land.cs index 87b1e95b35..4b0e88fb2b 100644 --- a/OpenRA.Mods.Common/Activities/Air/Land.cs +++ b/OpenRA.Mods.Common/Activities/Air/Land.cs @@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Activities if (!target.IsValidFor(self)) Cancel(self); - if (IsCanceled) + if (IsCanceling) return NextActivity; if (!soundPlayed && aircraft.Info.LandingSounds.Length > 0 && !self.IsAtGroundLevel()) diff --git a/OpenRA.Mods.Common/Activities/Air/ResupplyAircraft.cs b/OpenRA.Mods.Common/Activities/Air/ResupplyAircraft.cs index 7d11169b38..3d2d5296f3 100644 --- a/OpenRA.Mods.Common/Activities/Air/ResupplyAircraft.cs +++ b/OpenRA.Mods.Common/Activities/Air/ResupplyAircraft.cs @@ -51,11 +51,8 @@ namespace OpenRA.Mods.Common.Activities } // Conditional fixes being able to stop aircraft from resupplying. - if (IsCanceled && NextInQueue == null) - { - OnFirstRun(self); - return this; - } + if (IsCanceling && NextInQueue == null) + return new ResupplyAircraft(self); return NextActivity; } diff --git a/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs b/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs index 73baa2477d..089c62798a 100644 --- a/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs +++ b/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs @@ -124,7 +124,7 @@ namespace OpenRA.Mods.Common.Activities if (aircraft.ForceLanding) return NextActivity; - if (IsCanceled || self.IsDead) + if (IsCanceling || self.IsDead) return NextActivity; if (!isCalculated) diff --git a/OpenRA.Mods.Common/Activities/Attack.cs b/OpenRA.Mods.Common/Activities/Attack.cs index 5c313e27f6..e454b80dc4 100644 --- a/OpenRA.Mods.Common/Activities/Attack.cs +++ b/OpenRA.Mods.Common/Activities/Attack.cs @@ -73,7 +73,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) return NextActivity; bool targetIsHiddenActor; @@ -145,7 +145,7 @@ namespace OpenRA.Mods.Common.Activities protected virtual AttackStatus TickAttack(Actor self, AttackFrontal attack) { - if (IsCanceled) + if (IsCanceling) return AttackStatus.UnableToAttack; if (!target.IsValidFor(self)) diff --git a/OpenRA.Mods.Common/Activities/DeliverUnit.cs b/OpenRA.Mods.Common/Activities/DeliverUnit.cs index 511f6c6c39..2f12a1f5c5 100644 --- a/OpenRA.Mods.Common/Activities/DeliverUnit.cs +++ b/OpenRA.Mods.Common/Activities/DeliverUnit.cs @@ -83,7 +83,7 @@ namespace OpenRA.Mods.Common.Activities return this; } - if (IsCanceled) + if (IsCanceling) return NextActivity; if ((carryall.State == Carryall.CarryallState.Idle || carryall.Carryable.IsDead) && state != DeliveryState.TakeOff) @@ -208,8 +208,8 @@ namespace OpenRA.Mods.Common.Activities public override bool Cancel(Actor self, bool keepQueue = false) { - if (!IsCanceled && innerActivity != null && !innerActivity.Cancel(self)) - return false; + if (!IsCanceling && innerActivity != null) + innerActivity.Cancel(self); return base.Cancel(self); } diff --git a/OpenRA.Mods.Common/Activities/DeployForGrantedCondition.cs b/OpenRA.Mods.Common/Activities/DeployForGrantedCondition.cs index e77169e832..ef1428cdf6 100644 --- a/OpenRA.Mods.Common/Activities/DeployForGrantedCondition.cs +++ b/OpenRA.Mods.Common/Activities/DeployForGrantedCondition.cs @@ -43,7 +43,7 @@ namespace OpenRA.Mods.Common.Activities } // Without this, turn for facing deploy angle will be canceled and immediately deploy! - if (IsCanceled) + if (IsCanceling) return NextActivity; if (IsInterruptible) diff --git a/OpenRA.Mods.Common/Activities/Enter.cs b/OpenRA.Mods.Common/Activities/Enter.cs index 3040da5a8a..15fca2a977 100644 --- a/OpenRA.Mods.Common/Activities/Enter.cs +++ b/OpenRA.Mods.Common/Activities/Enter.cs @@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Activities useLastVisibleTarget = targetIsHiddenActor || !target.IsValidFor(self); // Cancel immediately if the target died while we were entering it - if (!IsCanceled && useLastVisibleTarget && lastState == EnterState.Entering) + if (!IsCanceling && useLastVisibleTarget && lastState == EnterState.Entering) Cancel(self, true); TickInner(self, target, useLastVisibleTarget); @@ -101,7 +101,7 @@ namespace OpenRA.Mods.Common.Activities { // NOTE: We can safely cancel in this case because we know the // actor has finished any in-progress move activities - if (IsCanceled) + if (IsCanceling) return NextActivity; // Lost track of the target @@ -134,7 +134,7 @@ namespace OpenRA.Mods.Common.Activities // Subclasses can cancel the activity during TryStartEnter // Return immediately to avoid an extra tick's delay - if (IsCanceled) + if (IsCanceling) return NextActivity; lastState = EnterState.Waiting; @@ -145,7 +145,7 @@ namespace OpenRA.Mods.Common.Activities { // Check that we reached the requested position var targetPos = target.Positions.PositionClosestTo(self.CenterPosition); - if (!IsCanceled && self.CenterPosition == targetPos && target.Type == TargetType.Actor) + if (!IsCanceling && self.CenterPosition == targetPos && target.Type == TargetType.Actor) OnEnterComplete(self, target.Actor); lastState = EnterState.Exiting; @@ -164,8 +164,8 @@ namespace OpenRA.Mods.Common.Activities { OnCancel(self); - if (!IsCanceled && moveActivity != null && !moveActivity.Cancel(self)) - return false; + if (!IsCanceling && moveActivity != null) + moveActivity.Cancel(self); return base.Cancel(self, keepQueue); } diff --git a/OpenRA.Mods.Common/Activities/EnterTransport.cs b/OpenRA.Mods.Common/Activities/EnterTransport.cs index 7499f06961..6648b3728a 100644 --- a/OpenRA.Mods.Common/Activities/EnterTransport.cs +++ b/OpenRA.Mods.Common/Activities/EnterTransport.cs @@ -105,7 +105,7 @@ namespace OpenRA.Mods.Common.Activities } // Try and find a new transport nearby - if (IsCanceled || string.IsNullOrEmpty(type)) + if (IsCanceling || string.IsNullOrEmpty(type)) return NextActivity; Func isValidTransport = a => @@ -135,8 +135,8 @@ namespace OpenRA.Mods.Common.Activities public override bool Cancel(Actor self, bool keepQueue = false) { - if (!IsCanceled && enterTransport != null && !enterTransport.Cancel(self)) - return false; + if (!IsCanceling && enterTransport != null) + enterTransport.Cancel(self); return base.Cancel(self, keepQueue); } diff --git a/OpenRA.Mods.Common/Activities/FindResources.cs b/OpenRA.Mods.Common/Activities/FindResources.cs index e66bcaabf6..df68d33c29 100644 --- a/OpenRA.Mods.Common/Activities/FindResources.cs +++ b/OpenRA.Mods.Common/Activities/FindResources.cs @@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) return NextActivity; if (harv.IsFull) diff --git a/OpenRA.Mods.Common/Activities/HarvestResource.cs b/OpenRA.Mods.Common/Activities/HarvestResource.cs index aca5a1148a..6d246b4eef 100644 --- a/OpenRA.Mods.Common/Activities/HarvestResource.cs +++ b/OpenRA.Mods.Common/Activities/HarvestResource.cs @@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) { claimLayer.RemoveClaim(self); return NextActivity; diff --git a/OpenRA.Mods.Common/Activities/Hunt.cs b/OpenRA.Mods.Common/Activities/Hunt.cs index a5fa509fc6..bf246e3e73 100644 --- a/OpenRA.Mods.Common/Activities/Hunt.cs +++ b/OpenRA.Mods.Common/Activities/Hunt.cs @@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) return NextActivity; var target = targets.ClosestTo(self); diff --git a/OpenRA.Mods.Common/Activities/Move/AttackMoveActivity.cs b/OpenRA.Mods.Common/Activities/Move/AttackMoveActivity.cs index 9d0ea2539a..7c0fa2b342 100644 --- a/OpenRA.Mods.Common/Activities/Move/AttackMoveActivity.cs +++ b/OpenRA.Mods.Common/Activities/Move/AttackMoveActivity.cs @@ -48,8 +48,8 @@ namespace OpenRA.Mods.Common.Activities public override bool Cancel(Actor self, bool keepQueue = false) { - if (!IsCanceled && inner != null && !inner.Cancel(self)) - return false; + if (!IsCanceling && inner != null) + inner.Cancel(self); return base.Cancel(self, keepQueue); } diff --git a/OpenRA.Mods.Common/Activities/Move/Follow.cs b/OpenRA.Mods.Common/Activities/Move/Follow.cs index f155a100a2..81bfee1422 100644 --- a/OpenRA.Mods.Common/Activities/Move/Follow.cs +++ b/OpenRA.Mods.Common/Activities/Move/Follow.cs @@ -47,7 +47,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) return NextActivity; bool targetIsHiddenActor; diff --git a/OpenRA.Mods.Common/Activities/Move/Move.cs b/OpenRA.Mods.Common/Activities/Move/Move.cs index 6bf07770d8..1542160565 100644 --- a/OpenRA.Mods.Common/Activities/Move/Move.cs +++ b/OpenRA.Mods.Common/Activities/Move/Move.cs @@ -144,37 +144,9 @@ namespace OpenRA.Mods.Common.Activities } } - public override bool Cancel(Actor self, bool keepQueue = false) - { - if (ChildActivity == null) - return base.Cancel(self, keepQueue); - - // Although MoveFirstHalf and MoveSecondHalf can't be interrupted, - // we prevent them from moving forever by removing the path. - if (path != null) - path.Clear(); - - // Remove queued activities - if (!keepQueue && NextInQueue != null) - NextInQueue = null; - - // In current implementation, ChildActivity can be Turn, MoveFirstHalf and MoveSecondHalf. - // Turn may be interrupted freely while they are turning. - // Unlike Turn, MoveFirstHalf and MoveSecondHalf are not Interruptable, but clearing the - // path guarantees that they will return as soon as possible, once the actor is back in a - // valid position. - // This means that it is safe to unconditionally return true, which avoids breaking parent - // activities that rely on cancellation succeeding (but not necessarily immediately) - ChildActivity.Cancel(self, false); - - return true; - } - public override Activity Tick(Actor self) { - // ChildActivity is the top priority, unlike other activities. - // Even if this activity is canceled, we must let the child be run so that units - // will not end up in an odd place. + // Let the child be run so that units will not end up in an odd place. if (ChildActivity != null) { ChildActivity = ActivityUtils.RunActivity(self, ChildActivity); @@ -187,7 +159,7 @@ namespace OpenRA.Mods.Common.Activities // If the actor is inside a tunnel then we must let them move // all the way through before moving to the next activity - if (IsCanceled && self.Location.Layer != CustomMovementLayerType.Tunnel) + if (IsCanceling && self.Location.Layer != CustomMovementLayerType.Tunnel) return NextActivity; if (mobile.IsTraitDisabled || mobile.IsTraitPaused) @@ -440,7 +412,7 @@ namespace OpenRA.Mods.Common.Activities var fromSubcellOffset = map.Grid.OffsetOfSubCell(mobile.FromSubCell); var toSubcellOffset = map.Grid.OffsetOfSubCell(mobile.ToSubCell); - if (!IsCanceled || self.Location.Layer == CustomMovementLayerType.Tunnel) + if (!IsCanceling || self.Location.Layer == CustomMovementLayerType.Tunnel) { var nextCell = parent.PopPath(self); if (nextCell != null) diff --git a/OpenRA.Mods.Common/Activities/Move/MoveAdjacentTo.cs b/OpenRA.Mods.Common/Activities/Move/MoveAdjacentTo.cs index 0c7596d7fb..19f68b605a 100644 --- a/OpenRA.Mods.Common/Activities/Move/MoveAdjacentTo.cs +++ b/OpenRA.Mods.Common/Activities/Move/MoveAdjacentTo.cs @@ -115,7 +115,7 @@ namespace OpenRA.Mods.Common.Activities { // We are done here if the order was cancelled for any // reason except the target moving. - if (IsCanceled || !repath || !targetIsValid) + if (IsCanceling || !repath || !targetIsValid) return NextActivity; // Target has moved, and MoveAdjacentTo is still valid. @@ -169,8 +169,8 @@ namespace OpenRA.Mods.Common.Activities public override bool Cancel(Actor self, bool keepQueue = false) { - if (!IsCanceled && inner != null && !inner.Cancel(self)) - return false; + if (!IsCanceling && inner != null) + inner.Cancel(self); return base.Cancel(self); } diff --git a/OpenRA.Mods.Common/Activities/Move/VisualMoveIntoTarget.cs b/OpenRA.Mods.Common/Activities/Move/VisualMoveIntoTarget.cs index ff9a37e937..451785fa5f 100644 --- a/OpenRA.Mods.Common/Activities/Move/VisualMoveIntoTarget.cs +++ b/OpenRA.Mods.Common/Activities/Move/VisualMoveIntoTarget.cs @@ -45,7 +45,7 @@ namespace OpenRA.Mods.Common.Activities return this; } - if (IsCanceled || target.Type == TargetType.Invalid) + if (IsCanceling || target.Type == TargetType.Invalid) return NextActivity; if (mobile.IsTraitDisabled || mobile.IsTraitPaused) diff --git a/OpenRA.Mods.Common/Activities/PickupUnit.cs b/OpenRA.Mods.Common/Activities/PickupUnit.cs index b0a80f6eff..385bf49667 100644 --- a/OpenRA.Mods.Common/Activities/PickupUnit.cs +++ b/OpenRA.Mods.Common/Activities/PickupUnit.cs @@ -61,7 +61,7 @@ namespace OpenRA.Mods.Common.Activities if (cargo != carryall.Carryable) return NextActivity; - if (cargo.IsDead || IsCanceled || carryable.IsTraitDisabled || !cargo.AppearsFriendlyTo(self)) + if (cargo.IsDead || IsCanceling || carryable.IsTraitDisabled || !cargo.AppearsFriendlyTo(self)) { carryall.UnreserveCarryable(self); return NextActivity; @@ -161,8 +161,8 @@ namespace OpenRA.Mods.Common.Activities public override bool Cancel(Actor self, bool keepQueue = false) { - if (!IsCanceled && innerActivity != null && !innerActivity.Cancel(self)) - return false; + if (!IsCanceling && innerActivity != null) + innerActivity.Cancel(self); return base.Cancel(self, keepQueue); } diff --git a/OpenRA.Mods.Common/Activities/Rearm.cs b/OpenRA.Mods.Common/Activities/Rearm.cs index 716a0b1cc3..14cb7b963b 100644 --- a/OpenRA.Mods.Common/Activities/Rearm.cs +++ b/OpenRA.Mods.Common/Activities/Rearm.cs @@ -61,7 +61,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) return NextActivity; if (host.Type == TargetType.Invalid) diff --git a/OpenRA.Mods.Common/Activities/RemoveSelf.cs b/OpenRA.Mods.Common/Activities/RemoveSelf.cs index 0faaeab5cf..facd43ca77 100644 --- a/OpenRA.Mods.Common/Activities/RemoveSelf.cs +++ b/OpenRA.Mods.Common/Activities/RemoveSelf.cs @@ -17,7 +17,7 @@ namespace OpenRA.Mods.Common.Activities { public override Activity Tick(Actor self) { - if (IsCanceled) return NextActivity; + if (IsCanceling) return NextActivity; self.Dispose(); return null; } diff --git a/OpenRA.Mods.Common/Activities/Repair.cs b/OpenRA.Mods.Common/Activities/Repair.cs index 23ebec4696..e23a21c1b3 100644 --- a/OpenRA.Mods.Common/Activities/Repair.cs +++ b/OpenRA.Mods.Common/Activities/Repair.cs @@ -48,7 +48,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) { if (remainingTicks-- == 0) return NextActivity; diff --git a/OpenRA.Mods.Common/Activities/Transform.cs b/OpenRA.Mods.Common/Activities/Transform.cs index 43c800a5e6..11c79d862f 100644 --- a/OpenRA.Mods.Common/Activities/Transform.cs +++ b/OpenRA.Mods.Common/Activities/Transform.cs @@ -44,7 +44,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) return NextActivity; if (ChildActivity != null) @@ -81,7 +81,7 @@ namespace OpenRA.Mods.Common.Activities protected override void OnLastRun(Actor self) { - if (!IsCanceled) + if (!IsCanceling) DoTransform(self); } diff --git a/OpenRA.Mods.Common/Activities/Turn.cs b/OpenRA.Mods.Common/Activities/Turn.cs index 1d81e6050d..3257cfd237 100644 --- a/OpenRA.Mods.Common/Activities/Turn.cs +++ b/OpenRA.Mods.Common/Activities/Turn.cs @@ -44,7 +44,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { - if (IsInterruptible && IsCanceled) + if (IsInterruptible && IsCanceling) return NextActivity; if (disablable != null && disablable.IsTraitDisabled) diff --git a/OpenRA.Mods.Common/Activities/UnloadCargo.cs b/OpenRA.Mods.Common/Activities/UnloadCargo.cs index e83a0f25f8..45c24f4324 100644 --- a/OpenRA.Mods.Common/Activities/UnloadCargo.cs +++ b/OpenRA.Mods.Common/Activities/UnloadCargo.cs @@ -56,7 +56,7 @@ namespace OpenRA.Mods.Common.Activities public override Activity Tick(Actor self) { cargo.Unloading = false; - if (IsCanceled || cargo.IsEmpty(self)) + if (IsCanceling || cargo.IsEmpty(self)) return NextActivity; foreach (var inu in notifiers) diff --git a/OpenRA.Mods.Common/Activities/WaitForTransport.cs b/OpenRA.Mods.Common/Activities/WaitForTransport.cs index d4ea05f16e..c7cda99eb9 100644 --- a/OpenRA.Mods.Common/Activities/WaitForTransport.cs +++ b/OpenRA.Mods.Common/Activities/WaitForTransport.cs @@ -43,8 +43,8 @@ namespace OpenRA.Mods.Common.Activities public override bool Cancel(Actor self, bool keepQueue = false) { - if (!IsCanceled && inner != null && !inner.Cancel(self)) - return false; + if (!IsCanceling && inner != null) + inner.Cancel(self); return base.Cancel(self, keepQueue); } diff --git a/OpenRA.Mods.Common/Scripting/CallLuaFunc.cs b/OpenRA.Mods.Common/Scripting/CallLuaFunc.cs index 0acaee246e..39df73eedc 100644 --- a/OpenRA.Mods.Common/Scripting/CallLuaFunc.cs +++ b/OpenRA.Mods.Common/Scripting/CallLuaFunc.cs @@ -45,9 +45,7 @@ namespace OpenRA.Mods.Common.Activities public override bool Cancel(Actor self, bool keepQueue = false) { - if (!base.Cancel(self, keepQueue)) - return false; - + base.Cancel(self, keepQueue); Dispose(); return true; } diff --git a/OpenRA.Mods.Common/Traits/Attack/AttackFollow.cs b/OpenRA.Mods.Common/Traits/Attack/AttackFollow.cs index fba77fdbc6..02e188c5ec 100644 --- a/OpenRA.Mods.Common/Traits/Attack/AttackFollow.cs +++ b/OpenRA.Mods.Common/Traits/Attack/AttackFollow.cs @@ -176,7 +176,7 @@ namespace OpenRA.Mods.Common.Traits public override Activity Tick(Actor self) { - if (IsCanceled) + if (IsCanceling) { // Cancel the requested target, but keep firing on it while in range attack.opportunityTarget = attack.requestedTarget; diff --git a/OpenRA.Mods.Common/Traits/Attack/AttackOmni.cs b/OpenRA.Mods.Common/Traits/Attack/AttackOmni.cs index 4d85975b0b..238cfca405 100644 --- a/OpenRA.Mods.Common/Traits/Attack/AttackOmni.cs +++ b/OpenRA.Mods.Common/Traits/Attack/AttackOmni.cs @@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Traits // This activity can't move to reacquire hidden targets, so use the // Recalculate overload that invalidates hidden targets. target = target.RecalculateInvalidatingHiddenTargets(self.Owner); - if (IsCanceled || !target.IsValidFor(self) || !attack.IsReachableTarget(target, allowMove)) + if (IsCanceling || !target.IsValidFor(self) || !attack.IsReachableTarget(target, allowMove)) return NextActivity; attack.DoAttack(self, target);