From 95df49f88d3dc27ceeafc7e15caa90863a172a0e Mon Sep 17 00:00:00 2001 From: badlogic Date: Mon, 4 Mar 2019 17:00:00 +0100 Subject: [PATCH] [libgdx] Fix for #1290, do not carry over time when timeScale of a track entry taht's being replaced by a new one is 0. --- .../src/com/esotericsoftware/spine/AnimationState.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 ce9e9035b..2bb23536c 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -30,7 +30,10 @@ package com.esotericsoftware.spine; -import static com.esotericsoftware.spine.Animation.RotateTimeline.*; +import static com.esotericsoftware.spine.Animation.RotateTimeline.ENTRIES; +import static com.esotericsoftware.spine.Animation.RotateTimeline.PREV_ROTATION; +import static com.esotericsoftware.spine.Animation.RotateTimeline.PREV_TIME; +import static com.esotericsoftware.spine.Animation.RotateTimeline.ROTATION; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.FloatArray; @@ -38,7 +41,6 @@ import com.badlogic.gdx.utils.IntArray; import com.badlogic.gdx.utils.IntSet; import com.badlogic.gdx.utils.Pool; import com.badlogic.gdx.utils.Pool.Poolable; - import com.esotericsoftware.spine.Animation.AttachmentTimeline; import com.esotericsoftware.spine.Animation.DrawOrderTimeline; import com.esotericsoftware.spine.Animation.MixBlend; @@ -127,7 +129,7 @@ public class AnimationState { float nextTime = current.trackLast - next.delay; if (nextTime >= 0) { next.delay = 0; - next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale; + next.trackTime = current.timeScale == 0 ? 0 : (nextTime / current.timeScale + delta) * next.timeScale; current.trackTime += currentDelta; setCurrent(i, next, true); while (next.mixingFrom != null) {