diff --git a/src/anim.c b/src/anim.c index fdcac02..408fd62 100644 --- a/src/anim.c +++ b/src/anim.c @@ -42,20 +42,18 @@ int hexagram_anim_step(hexagram_anim *anim, hexagram_anim_progress_fn *fn) { continue; } - if (interval <= offset + duration) { + if (offset + duration >= interval) { break; } offset += duration; } + /* Determine progress through current stop */ if (i == anim->count) { - /* We are apparently at the end. */ - return 0; - } - - /* Determine current progress through current stop */ - if (fn) { + i--; + progress = 1.0; + } else if (fn) { progress = fn(&anim->stops[i], (interval - offset) / anim->stops[i].duration); } else {