Fix Move not cancelling during turns.

This commit is contained in:
tovl
2019-08-23 21:50:57 +02:00
committed by teinarss
parent 8b0f2e1462
commit 946c9f420b

View File

@@ -259,6 +259,14 @@ namespace OpenRA.Mods.Common.Activities
return Pair.New(nextCell, subCell);
}
public override void Cancel(Actor self, bool keepQueue = false)
{
if (path != null)
path.Clear();
base.Cancel(self, keepQueue);
}
public override IEnumerable<Target> GetTargets(Actor self)
{
if (path != null)
@@ -401,8 +409,6 @@ namespace OpenRA.Mods.Common.Activities
var fromSubcellOffset = map.Grid.OffsetOfSubCell(mobile.FromSubCell);
var toSubcellOffset = map.Grid.OffsetOfSubCell(mobile.ToSubCell);
if (!IsCanceling || self.Location.Layer == CustomMovementLayerType.Tunnel)
{
var nextCell = parent.PopPath(self);
if (nextCell != null)
{
@@ -424,7 +430,6 @@ namespace OpenRA.Mods.Common.Activities
parent.path.Add(nextCell.Value.First);
}
}
var toPos = mobile.ToCell.Layer == 0 ? map.CenterOfCell(mobile.ToCell) :
self.World.GetCustomMovementLayers()[mobile.ToCell.Layer].CenterOfCell(mobile.ToCell);