@@ -733,11 +733,11 @@ spTrackEntry* spAnimationState_addAnimation (spAnimationState* self, int trackIn
if (last->loop) {
delay += duration * (1 + (int) (last->trackTime / duration));
} else {
- delay += duration;
+ delay += MAX(duration, last->trackTime);
}
delay -= spAnimationStateData_getMix(self->data, last->animation, animation);
} else
- delay = 0;
+ delay = last->trackTime;
@@ -582,11 +582,11 @@ TrackEntry *AnimationState::addAnimation(int trackIndex, Animation *animation, b
if (last->_loop) {
delay += duration * (1 + (int) (last->_trackTime / duration));
+ delay += MathUtil::max(duration, last->_trackTime);
delay -= _data->getMix(last->_animation, animation);
+ delay = last->_trackTime;