From 095424ee98b65f6b326304594e2212b3700656ae Mon Sep 17 00:00:00 2001 From: badlogic Date: Fri, 12 Jan 2018 11:16:35 +0100 Subject: [PATCH] [c] Fix for #1064, delay was calculated incorrectly for non-loop previous track entries. --- spine-c/spine-c/src/spine/AnimationState.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/spine-c/spine-c/src/spine/AnimationState.c b/spine-c/spine-c/src/spine/AnimationState.c index 73061ac58..e983a285f 100644 --- a/spine-c/spine-c/src/spine/AnimationState.c +++ b/spine-c/spine-c/src/spine/AnimationState.c @@ -720,9 +720,14 @@ spTrackEntry* spAnimationState_addAnimation (spAnimationState* self, int trackIn last->next = entry; if (delay <= 0) { float duration = last->animationEnd - last->animationStart; - if (duration != 0) - delay += duration * (1 + (int)(last->trackTime / duration)) - spAnimationStateData_getMix(self->data, last->animation, animation); - else + if (duration != 0) { + if (last->loop) { + delay += duration * (1 + (int) (last->trackTime / duration)); + } else { + delay += duration; + } + delay -= spAnimationStateData_getMix(self->data, last->animation, animation); + } else delay = 0; } }