changed global animations to handle only one CE change event per frame
authorHolger Schemel <info@artsoft.org>
Sun, 20 Aug 2023 13:21:06 +0000 (15:21 +0200)
committerHolger Schemel <info@artsoft.org>
Sun, 3 Sep 2023 20:59:58 +0000 (22:59 +0200)
Before, several (same) CEs could change within the same game frame,
triggering the same global animation several times (each time with the
new/next CE, with different CE position for each change. for example).

This bugfix results in each global animation being triggered exactly
one time for each change of the same CE in the same frame (which is
especially important if there are several global animations being
triggered by the change of the same CE, to display several animations
for several same CEs changing in the same game frame).

src/anim.c

index 68147f0bc06ac100e36e0a51135864a93b587e84..c1fb1ee6c2fd5a2efdd7fab4d3b64b76d44e878c 100644 (file)
@@ -1393,7 +1393,7 @@ static void InitGlobalAnim_Triggered_ByCustomElement(int nr, int page,
       if (!(part2->state & ANIM_STATE_RUNNING))
        continue;
 
-      if (isClickablePart(part2, mask))
+      if (isClickablePart(part2, mask) && !part2->triggered)
       {
        struct GraphicInfo *c = &part2->control_info;