+
+ if (isClickedPart(part, mx, my, clicked))
+ {
+#if 0
+ printf("::: %d.%d CLICKED\n", anim_nr, part_nr);
+#endif
+
+ if (isClickablePart(part, ANIM_EVENT_CLICK_SELF))
+ any_part_clicked = part->clicked = TRUE;
+
+ // check if this click is defined to trigger other animations
+ int old_anim_nr = part->old_anim_nr;
+ int old_part_nr = part->old_nr;
+ int mask = ANIM_EVENT_CLICK_ANIM_1 << old_anim_nr;
+
+ if (part->is_base)
+ mask |= ANIM_EVENT_CLICK_PART_ALL;
+ else
+ mask |= ANIM_EVENT_CLICK_PART_1 << old_part_nr;
+
+ int anim2_nr;
+
+ for (anim2_nr = 0; anim2_nr < ctrl->num_anims; anim2_nr++)
+ {
+ struct GlobalAnimMainControlInfo *anim2 = &ctrl->anim[anim2_nr];
+ int part2_nr;
+
+ for (part2_nr = 0; part2_nr < anim2->num_parts_all; part2_nr++)
+ {
+ struct GlobalAnimPartControlInfo *part2 = &anim2->part[part2_nr];
+
+ if (isClickablePart(part2, mask))
+ any_part_clicked = part2->clicked = TRUE;
+
+#if 0
+ struct GraphicInfo *c = &part2->control_info;
+
+ printf("::: - %d.%d: 0x%08x, 0x%08x [0x%08x]",
+ anim2_nr, part2_nr, c->init_event, c->anim_event, mask);
+
+ if (isClickablePart(part2, mask))
+ printf(" <--- TRIGGERED BY %d.%d",
+ anim_nr, part_nr);
+
+ printf("\n");
+#endif
+ }
+ }
+ }