Fix moonwalking infantry

This commit is contained in:
Paul Chote
2010-11-30 14:17:39 +13:00
parent eb8682fd0e
commit 2e7b5e8712
2 changed files with 22 additions and 11 deletions

View File

@@ -45,11 +45,18 @@ namespace OpenRA.Mods.RA
remainingProneTime--;
var ri = self.Trait<RenderInfantry>();
if (ri.State == RenderInfantry.AnimationState.Idle)
if (IsProne)
ri.anim.PlayFetchIndex("crawl", () => 0);
else
ri.anim.Play("stand");
// Mobile.IsMoving isn't set to true until after the first move tick
// so we need a hack here to prevent a single frame of stand state
if (IsProne && (ri.State == RenderInfantry.AnimationState.Idle ||
ri.State == RenderInfantry.AnimationState.Waiting ||
ri.anim.CurrentSequence.Name == "stand"))
ri.anim.PlayFetchIndex("crawl", () => 0);
else if (!IsProne && (ri.State == RenderInfantry.AnimationState.Idle ||
ri.State == RenderInfantry.AnimationState.Waiting ||
ri.anim.CurrentSequence.Name == "stand"))
ri.anim.Play("stand");
if (ri.anim.CurrentSequence.Name == "run" && IsProne)
ri.anim.ReplaceAnim("crawl");