Browse Source

Fixed animation state delay when not set right away.

NathanSweet 12 years ago
parent
commit
a9315d46f3

+ 3 - 4
spine-as3/spine-as3/src/spine/animation/AnimationState.as

@@ -200,10 +200,9 @@ public class AnimationState {
 			_tracks[trackIndex] = entry;
 			_tracks[trackIndex] = entry;
 		
 		
 		if (delay <= 0) {
 		if (delay <= 0) {
-			if (last) {
-				if (last.time < last.endTime) delay += last.endTime - last.time;
-				delay -= _data.getMix(last.animation, animation);
-			} else
+			if (last)
+				delay += last.endTime - _data.getMix(last.animation, animation);
+			else
 				delay = 0;
 				delay = 0;
 		}
 		}
 		entry.delay = delay;
 		entry.delay = delay;

+ 3 - 4
spine-c/src/spine/AnimationState.c

@@ -262,10 +262,9 @@ spTrackEntry* spAnimationState_addAnimation (spAnimationState* self, int trackIn
 		self->tracks[trackIndex] = entry;
 		self->tracks[trackIndex] = entry;
 
 
 	if (delay <= 0) {
 	if (delay <= 0) {
-		if (last) {
-			if (last->time < last->endTime) delay += last->endTime - last->time;
-			delay -= spAnimationStateData_getMix(self->data, last->animation, animation);
-		} else
+		if (last)
+			delay += last->endTime - spAnimationStateData_getMix(self->data, last->animation, animation);
+		else
 			delay = 0;
 			delay = 0;
 	}
 	}
 	entry->delay = delay;
 	entry->delay = delay;

+ 3 - 4
spine-csharp/src/AnimationState.cs

@@ -213,10 +213,9 @@ namespace Spine {
 				tracks[trackIndex] = entry;
 				tracks[trackIndex] = entry;
 
 
 			if (delay <= 0) {
 			if (delay <= 0) {
-				if (last != null) {
-					if (last.time < last.endTime) delay += last.endTime - last.time;
-					delay -= data.GetMix(last.animation, animation);
-				} else
+				if (last != null)
+					delay += last.endTime - data.GetMix(last.animation, animation);
+				else
 					delay = 0;
 					delay = 0;
 			}
 			}
 			entry.delay = delay;
 			entry.delay = delay;

+ 3 - 4
spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java

@@ -231,10 +231,9 @@ public class AnimationState {
 			tracks.set(trackIndex, entry);
 			tracks.set(trackIndex, entry);
 
 
 		if (delay <= 0) {
 		if (delay <= 0) {
-			if (last != null) {
-				if (last.time < last.endTime) delay += last.endTime - last.time;
-				delay -= data.getMix(last.animation, animation);
-			} else
+			if (last != null)
+				delay += last.endTime - data.getMix(last.animation, animation);
+			else
 				delay = 0;
 				delay = 0;
 		}
 		}
 		entry.delay = delay;
 		entry.delay = delay;

+ 1 - 2
spine-lua/AnimationState.lua

@@ -200,8 +200,7 @@ function AnimationState.new (data)
 		delay = delay or 0
 		delay = delay or 0
 		if delay <= 0 then
 		if delay <= 0 then
 			if last then
 			if last then
-				if last.time < last.endTime then delay = delay + last.endTime - last.time end
-				delay = delay - self.data:getMix(last.animation.name, animation.name)
+				delay = delay + last.endTime - self.data:getMix(last.animation.name, animation.name)
 			else
 			else
 				delay = 0
 				delay = 0
 			end
 			end