diff --git a/OpenRA.Game/Graphics/Animation.cs b/OpenRA.Game/Graphics/Animation.cs index 910d3219fe..382f549b40 100644 --- a/OpenRA.Game/Graphics/Animation.cs +++ b/OpenRA.Game/Graphics/Animation.cs @@ -126,7 +126,7 @@ namespace OpenRA.Graphics while( timeUntilNextFrame <= 0 ) { tickFunc(); - timeUntilNextFrame += 40; // 25 fps == 40 ms + timeUntilNextFrame += CurrentSequence != null ? CurrentSequence.Speed : 40; // 25 fps == 40 ms } } } diff --git a/OpenRA.Game/Graphics/Sequence.cs b/OpenRA.Game/Graphics/Sequence.cs index 07fbbab816..5ebbad81ef 100644 --- a/OpenRA.Game/Graphics/Sequence.cs +++ b/OpenRA.Game/Graphics/Sequence.cs @@ -25,13 +25,14 @@ namespace OpenRA.Graphics public class Sequence { readonly Sprite[] sprites; - readonly int start, length, facings; + readonly int start, length, facings, speed; public readonly string Name; public int Start { get { return start; } } public int End { get { return start + length; } } public int Length { get { return length; } } public int Facings { get { return facings; } } + public int Speed { get { return speed; } } public Sequence(string unit, XmlElement e) { @@ -54,6 +55,11 @@ namespace OpenRA.Graphics facings = int.Parse( e.GetAttribute( "facings" ) ); else facings = 1; + + if (e.HasAttribute("speed")) + speed = int.Parse(e.GetAttribute("speed")); + else + speed = 40; } public Sprite GetSprite( int frame ) diff --git a/mods/cnc/sequences-structures.xml b/mods/cnc/sequences-structures.xml index 9c68a6e0e8..d74635bb59 100644 --- a/mods/cnc/sequences-structures.xml +++ b/mods/cnc/sequences-structures.xml @@ -3,18 +3,18 @@ - + - - + + - - - + + +