fix infantry without idle animation not returning to stand

This commit is contained in:
Matthias Mailänder
2014-12-07 16:39:09 +01:00
parent 51f874fae2
commit 9bfd82e868

View File

@@ -82,7 +82,7 @@ namespace OpenRA.Mods.RA.Render
protected virtual bool AllowIdleAnimation(Actor self) protected virtual bool AllowIdleAnimation(Actor self)
{ {
return info.IdleAnimations.Length > 0 && !isModifyingSequence; return !isModifyingSequence;
} }
public void Attacking(Actor self, Target target) public void Attacking(Actor self, Target target)
@@ -136,9 +136,11 @@ namespace OpenRA.Mods.RA.Render
idleDelay = self.World.SharedRandom.Next(info.MinIdleWaitTicks, info.MaxIdleWaitTicks); idleDelay = self.World.SharedRandom.Next(info.MinIdleWaitTicks, info.MaxIdleWaitTicks);
} }
} }
else if (AllowIdleAnimation(self) && idleDelay > 0 && --idleDelay == 0) else if (AllowIdleAnimation(self))
{ {
if (DefaultAnimation.HasSequence(idleSequence)) if (idleSequence != null && DefaultAnimation.HasSequence(idleSequence))
{
if (idleDelay > 0 && --idleDelay == 0)
{ {
state = AnimationState.IdleAnimating; state = AnimationState.IdleAnimating;
DefaultAnimation.PlayThen(idleSequence, () => DefaultAnimation.PlayThen(idleSequence, () =>
@@ -148,6 +150,12 @@ namespace OpenRA.Mods.RA.Render
}); });
} }
} }
else
{
DefaultAnimation.PlayRepeating(NormalizeInfantrySequence(self, info.StandAnimations.Random(Game.CosmeticRandom)));
state = AnimationState.Waiting;
}
}
} }
enum AnimationState enum AnimationState