+ // when drawing animations to fading buffer, do not play sounds
+ if (drawing_to_fading_buffer)
+ return;
+
+ // loop sounds only expire when playing
+ if (game_status != GAME_MODE_PLAYING)
+ return;
+
+ // check if any sound is defined for this animation part
+ if (part->sound == SND_UNDEFINED)
+ return;
+
+ // normal (non-loop) sounds do not expire when playing
+ if (!IS_LOOP_SOUND(part->sound))
+ return;
+
+ // prevent expiring loop sounds when playing
+ PlayGlobalAnimSound(part);
+}
+
+static boolean checkGlobalAnimEvent(int anim_event, int mask)
+{
+ int mask_anim_only = mask & ~ANIM_EVENT_PART_MASK;
+
+ if (mask & ANIM_EVENT_ANY)
+ return (anim_event & ANIM_EVENT_ANY);
+ else if (mask & ANIM_EVENT_SELF)
+ return (anim_event & ANIM_EVENT_SELF);
+ else
+ return (anim_event == mask ||
+ anim_event == mask_anim_only);