dst_x += part->viewport_x;
dst_y += part->viewport_y;
+ SetBitmapAlphaNextBlit(src_bitmap, g->alpha);
+
if (drawing_target == DRAW_TO_SCREEN)
blit_screen(src_bitmap, src_x, src_y, width, height,
dst_x, dst_y);
{
struct GlobalAnimPartControlInfo *part2 = &anim2->part[part2_nr];
- if (!(part2->state & ANIM_STATE_RUNNING))
+ if (!(part2->state & (ANIM_STATE_RUNNING | ANIM_STATE_WAITING)))
continue;
if (isClickablePart(part2, mask))
{
struct GlobalAnimPartControlInfo *part2 = &anim2->part[part2_nr];
- if (!(part2->state & ANIM_STATE_RUNNING))
+ if (!(part2->state & (ANIM_STATE_RUNNING | ANIM_STATE_WAITING)))
continue;
if (isClickablePart(part2, mask) && !part2->triggered)
for (i = 0; i < num_parts; i++)
anim->part[i].state = ANIM_STATE_INACTIVE;
- // ... then set current animation parts to "running"
+ // ... then set current animation part to "running" ...
part->state = ANIM_STATE_RUNNING;
+ // ... unless it is waiting for an initial event
+ if (part->init_event_state)
+ part->state = ANIM_STATE_WAITING;
+
anim->state = HandleGlobalAnim_Part(part, anim->state);
if (anim->state & ANIM_STATE_RESTART)