/* SPDX-License-Identifier: GPL-3.0-or-later */ /* Copyright (C) 2021 KikooDX */ #include "particles.h" extern struct Particle particles[MAX_PARTICLES]; void particles_update(void) { int i = MAX_PARTICLES; while (i-- > 0) particle_update(&particles[i]); } void particle_update(struct Particle *particle) { if (!particle->life) return; particle->life -= 1; if (!(particle->life % particle->frame_duration)) particle->frame += 1; /* looping */ if (!particle->life && particle->looping) { particle->frame = 0; particle->life = particle->life_ini; } }