[c] Fix for #1064, delay was calculated incorrectly for non-loop previous track entries.

This commit is contained in:
badlogic 2018-01-12 11:16:35 +01:00
parent b5e5d4aabb
commit 095424ee98

View File

@ -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;
}
}