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 @@
-
+
-
-
+
+
-
-
-
+
+
+