+static boolean isClickablePart(struct GlobalAnimPartControlInfo *part, int mask)
+{
+ struct GraphicInfo *c = &part->control_info;
+ int trigger_mask = ANIM_EVENT_ANIM_MASK | ANIM_EVENT_PART_MASK;
+ int mask_anim_only = mask & ANIM_EVENT_ANIM_MASK;
+ int init_event = GetGlobalAnimEventValue(c->init_event, 0);
+ int anim_event = GetGlobalAnimEventValue(c->anim_event, 0);
+
+ if (mask & ANIM_EVENT_ANY)
+ return (init_event & ANIM_EVENT_ANY ||
+ anim_event & ANIM_EVENT_ANY);
+ else if (mask & ANIM_EVENT_SELF)
+ return (init_event & ANIM_EVENT_SELF ||
+ anim_event & ANIM_EVENT_SELF);
+ else
+ return ((init_event & trigger_mask) == mask ||
+ (anim_event & trigger_mask) == mask ||
+ (init_event & trigger_mask) == mask_anim_only ||
+ (anim_event & trigger_mask) == mask_anim_only);