From 859dd76f78d11e9b3b480deda49205ebfdd929c0 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Wed, 17 May 2017 02:10:34 +0200 Subject: [PATCH] Allow track entries to finish when timeScale is 0. closes #806 --- .../src/com/esotericsoftware/spine/AnimationState.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java index b87a62107..0db7ac90c 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -139,7 +139,9 @@ public class AnimationState { if (from == null) return true; boolean finished = updateMixingFrom(from, delta, animationCount + 1); - if (entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + + // Require mixTime > 0 to ensure the mixing from entry was applied at least once. + if (entry.mixTime > 0 && (entry.mixTime >= entry.mixDuration || entry.timeScale == 0)) { if (animationCount > 6 && from.mixingFrom == null) { // Limit the mixing from linked list. entry.mixingFrom = null; queue.end(from); @@ -856,6 +858,8 @@ public class AnimationState { /** Multiplier for the delta time when the animation state is updated, causing time for this animation to pass slower or * faster. Defaults to 1. *

+ * If timeScale is 0, any {@link #getMixDuration()} will be ignored. + *

* See AnimationState {@link AnimationState#getTimeScale()} for affecting all animations. */ public float getTimeScale () { return timeScale;