Prevent things from tweaking mobile position directly.

This commit is contained in:
Paul Chote
2013-07-21 11:48:59 +12:00
parent 0676116d77
commit 3e9bc63d4e
3 changed files with 4 additions and 6 deletions

View File

@@ -33,7 +33,7 @@ namespace OpenRA.Mods.RA.Move
? WPos.Lerp(start, end, ticks, length - 1) ? WPos.Lerp(start, end, ticks, length - 1)
: end; : end;
mobile.PxPosition = PPos.FromWPos(pos); mobile.AdjustPxPosition(self, PPos.FromWPos(pos));
if (++ticks >= length) if (++ticks >= length)
{ {
mobile.IsMoving = false; mobile.IsMoving = false;

View File

@@ -167,7 +167,7 @@ namespace OpenRA.Mods.RA.Move
public int ROT { get { return Info.ROT; } } 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 fromCell { get { return __fromCell; } }
[Sync] public CPos toCell { get { return __toCell; } } [Sync] public CPos toCell { get { return __toCell; } }

View File

@@ -328,7 +328,7 @@ namespace OpenRA.Mods.RA.Move
void UpdateCenterLocation(Actor self, Mobile mobile) 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) if (moveFraction >= moveFractionTotal)
mobile.Facing = toFacing & 0xFF; mobile.Facing = toFacing & 0xFF;
@@ -402,9 +402,7 @@ namespace OpenRA.Mods.RA.Move
protected override MovePart OnComplete(Actor self, Mobile mobile, Move parent) protected override MovePart OnComplete(Actor self, Mobile mobile, Move parent)
{ {
mobile.PxPosition = Util.CenterOfCell(mobile.toCell); mobile.SetPosition(self, mobile.toCell);
mobile.SetLocation(mobile.toCell, mobile.toSubCell, mobile.toCell, mobile.toSubCell);
mobile.FinishedMoving(self);
return null; return null;
} }
} }