diff --git a/OpenRA.Mods.RA/Move/Drag.cs b/OpenRA.Mods.RA/Move/Drag.cs index 307f71b5ee..154e963957 100755 --- a/OpenRA.Mods.RA/Move/Drag.cs +++ b/OpenRA.Mods.RA/Move/Drag.cs @@ -33,7 +33,7 @@ namespace OpenRA.Mods.RA.Move ? WPos.Lerp(start, end, ticks, length - 1) : end; - mobile.PxPosition = PPos.FromWPos(pos); + mobile.AdjustPxPosition(self, PPos.FromWPos(pos)); if (++ticks >= length) { mobile.IsMoving = false; diff --git a/OpenRA.Mods.RA/Move/Mobile.cs b/OpenRA.Mods.RA/Move/Mobile.cs index d0da5736e0..3d36a3816f 100755 --- a/OpenRA.Mods.RA/Move/Mobile.cs +++ b/OpenRA.Mods.RA/Move/Mobile.cs @@ -167,7 +167,7 @@ namespace OpenRA.Mods.RA.Move public int ROT { get { return Info.ROT; } } - [Sync] public PPos PxPosition { get; set; } + [Sync] public PPos PxPosition { get; private set; } [Sync] public CPos fromCell { get { return __fromCell; } } [Sync] public CPos toCell { get { return __toCell; } } diff --git a/OpenRA.Mods.RA/Move/Move.cs b/OpenRA.Mods.RA/Move/Move.cs index 63959732ea..744d2a7373 100755 --- a/OpenRA.Mods.RA/Move/Move.cs +++ b/OpenRA.Mods.RA/Move/Move.cs @@ -328,7 +328,7 @@ namespace OpenRA.Mods.RA.Move void UpdateCenterLocation(Actor self, Mobile mobile) { - mobile.PxPosition = PPos.FromWPos(WPos.Lerp(from, to, moveFraction, moveFractionTotal)); + mobile.AdjustPxPosition(self, PPos.FromWPos(WPos.Lerp(from, to, moveFraction, moveFractionTotal))); if (moveFraction >= moveFractionTotal) mobile.Facing = toFacing & 0xFF; @@ -402,9 +402,7 @@ namespace OpenRA.Mods.RA.Move protected override MovePart OnComplete(Actor self, Mobile mobile, Move parent) { - mobile.PxPosition = Util.CenterOfCell(mobile.toCell); - mobile.SetLocation(mobile.toCell, mobile.toSubCell, mobile.toCell, mobile.toSubCell); - mobile.FinishedMoving(self); + mobile.SetPosition(self, mobile.toCell); return null; } }