From d71d5a390ebe2e7267c5372770e795b34e98239c Mon Sep 17 00:00:00 2001 From: badlogic Date: Tue, 30 Oct 2018 16:23:30 +0100 Subject: [PATCH] [lua] Ported new fix for 0 timeScale not returning to setup pose. See #1194. --- spine-lua/AnimationState.lua | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/spine-lua/AnimationState.lua b/spine-lua/AnimationState.lua index e69929407..550784d00 100644 --- a/spine-lua/AnimationState.lua +++ b/spine-lua/AnimationState.lua @@ -249,11 +249,11 @@ function AnimationState:update (delta) local nextTime = current.trackLast - _next.delay if nextTime >= 0 then _next.delay = 0 - _next.trackTime = nextTime + delta * _next.timeScale + _next.trackTime = (nextTime / current.timeScale + delta) * _next.timeScale current.trackTime = current.trackTime + currentDelta self:setCurrent(i, _next, true) while _next.mixingFrom do - _next.mixTime = _next.mixTime + currentDelta + _next.mixTime = _next.mixTime + delta _next = _next.mixingFrom end skip = true @@ -310,15 +310,8 @@ function AnimationState:updateMixingFrom (to, delta) return finished end - -- If to has 0 timeScale and is not the first entry, remove the mix and apply it one more time to return to the setup pose. - if to.timeScale == 0 and to.mixingTo then - to.timeScale = 1 - to.mixTime = 0 - to.mixDuration = 0 - end - from.trackTime = from.trackTime + delta * from.timeScale - to.mixTime = to.mixTime + delta * to.timeScale + to.mixTime = to.mixTime + delta return false; end