- if (part->state & ANIM_STATE_RESTART)
- {
-#if 0
- printf("::: RESTART %d.%d\n", part->anim_nr, part->nr);
-#endif
-
- if (!(part->state & ANIM_STATE_WAITING))
- {
-#if 0
- printf("::: WAITING %d.%d\n", part->anim_nr, part->nr);
-#endif
-
- ResetDelayCounterExt(&part->init_delay, anim_sync_frame);
-
- part->init_delay_value =
- (cp->init_delay_fixed + GetSimpleRandom(cp->init_delay_random));
-
- part->state |= ANIM_STATE_WAITING;
- }
-
- if (!DelayReachedExt(&part->init_delay, part->init_delay_value,
- anim_sync_frame))
- return;
-
-#if 0
- printf("::: RUNNING %d.%d\n", part->anim_nr, part->nr);
-#endif
-
- part->state = ANIM_STATE_RESTART | ANIM_STATE_RUNNING;
- }
-
-#if 0
- printf("::: DO PART %d.%d [%d, %d, %d] [%d]\n", part->anim_nr, part->nr,
- part->restart, part->waiting, part->running,
- anim->running);
-#endif
-
- if (HandleGlobalAnim_Part(part, part->state & ANIM_STATE_RESTART))
- part->state = ANIM_STATE_RESTART;
- else
- part->state = ANIM_STATE_RUNNING;