fixed setting global animation sync frame when started with ".init_event"
authorHolger Schemel <info@artsoft.org>
Wed, 16 Aug 2023 13:55:22 +0000 (15:55 +0200)
committerHolger Schemel <info@artsoft.org>
Sun, 3 Sep 2023 20:59:57 +0000 (22:59 +0200)
The previous code only handled adjusting the initial animation sync
frame when starting the animation using an "init delay" configuration
(starting the animation after a delay), but did not handle starting
the animation using an "init event" configuration (like triggering by
a click event or by a custom element change), in which case the sync
frame should also be reset.

src/anim.c

index d780658c39e8c4567542f79b86d0476a42c95082..d570be06ae39e8adb013f78a3f3439d3a1595d5f 100644 (file)
@@ -1566,7 +1566,12 @@ static int HandleGlobalAnim_Part(struct GlobalAnimPartControlInfo *part,
       part->init_event_state)
   {
     if (part->initial_anim_sync_frame > 0)
-      part->initial_anim_sync_frame -= part->init_delay_counter - 1;
+    {
+      if (part->init_delay_counter > 0)
+       part->initial_anim_sync_frame -= part->init_delay_counter - 1;
+      else
+       part->initial_anim_sync_frame = anim_sync_frame;
+    }
 
     part->init_delay_counter = 1;
     part->init_event_state = FALSE;