while (dir = &si->data->e.se.dir[si->direction], frame = &dir->frame[si->frame], si->time >= frame->time) if (si->time -= frame->time, si->frame++, si->frame >= dir->frames) si->frame = 0;