fix spy crashing things when disguised as a unit with fewer idle anims

This commit is contained in:
Chris Forbes
2010-12-04 11:02:53 +13:00
parent 05718f9e8e
commit 9c20fba4a0
3 changed files with 16 additions and 10 deletions

View File

@@ -8,8 +8,8 @@
*/
#endregion
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
using OpenRA.Mods.RA.Render;
namespace OpenRA.Mods.RA
{
@@ -20,7 +20,6 @@ namespace OpenRA.Mods.RA
public object Create(ActorInitializer init) { return new IdleAnimation(this); }
}
// infantry prone behavior
class IdleAnimation : ITick, INotifyIdle
{
enum IdleState
@@ -53,8 +52,13 @@ namespace OpenRA.Mods.RA
else if (delay > 0 && --delay == 0)
{
state = IdleState.Active;
self.Trait<RenderInfantry>().anim.PlayThen(sequence, () => state = IdleState.None);
state = IdleState.Active;
var ri = self.TraitOrDefault<RenderInfantry>();
if (ri.anim.HasSequence(sequence))
ri.anim.PlayThen(sequence, () => state = IdleState.None);
else
state = IdleState.None;
}
}