From 99ca67ca77b1788129305f6ebecf833dc8113a1c Mon Sep 17 00:00:00 2001 From: badlogic Date: Wed, 16 May 2018 11:26:22 +0200 Subject: [PATCH] Fixes completion event firing for 0 duration animations. See #1112. --- .../src/com/esotericsoftware/spine/AnimationState.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 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 426635702..88a696cba 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -386,10 +386,12 @@ public class AnimationState { } // Queue complete if completed a loop iteration or the animation. - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - queue.complete(entry); - } + boolean complete; + if (entry.loop) + complete = duration == 0 || trackLastWrapped > entry.trackTime % duration; + else + complete = animationTime >= animationEnd && entry.animationLast < animationEnd; + if (complete) queue.complete(entry); // Queue events after complete. for (; i < n; i++) {