Initialise frame time when playing a new sequence.

Fixes #3706, #6389.
This commit is contained in:
Paul Chote
2015-02-15 17:01:52 +00:00
parent e2da1f11cb
commit e9caf7f6e6

View File

@@ -79,6 +79,8 @@ namespace OpenRA.Graphics
backwards = false;
tickAlways = false;
CurrentSequence = sequenceProvider.GetSequence(name, sequenceName);
timeUntilNextFrame = CurrentSequence != null ? CurrentSequence.Tick : defaultTick;
frame = 0;
tickFunc = () =>
{
@@ -94,6 +96,8 @@ namespace OpenRA.Graphics
return false;
CurrentSequence = sequenceProvider.GetSequence(name, sequenceName);
var tick = CurrentSequence != null ? CurrentSequence.Tick : defaultTick;
timeUntilNextFrame = Math.Min(tick, timeUntilNextFrame);
frame %= CurrentSequence.Length;
return true;
}
@@ -103,6 +107,8 @@ namespace OpenRA.Graphics
backwards = false;
tickAlways = false;
CurrentSequence = sequenceProvider.GetSequence(name, sequenceName);
timeUntilNextFrame = CurrentSequence != null ? CurrentSequence.Tick : defaultTick;
frame = 0;
tickFunc = () =>
{
@@ -127,6 +133,8 @@ namespace OpenRA.Graphics
backwards = false;
tickAlways = true;
CurrentSequence = sequenceProvider.GetSequence(name, sequenceName);
timeUntilNextFrame = CurrentSequence != null ? CurrentSequence.Tick : defaultTick;
frame = func();
tickFunc = () => frame = func();
}