/* SPDX-License-Identifier: GPL-3.0-or-later */ /* Copyright (C) 2021 KikooDX */ #include "particles.h" #include extern struct Particle particles[MAX_PARTICLES]; void particle_create(bopti_image_t *texture, int x, int y, int frame_width, int frame_duration, int looping) { /* find unused slot */ int i = MAX_PARTICLES; while (i-- > 0) if (!particles[i].life) break; struct Particle *particle = &particles[i]; particle->texture = texture; particle->x = x; particle->y = y; particle->frame_width = frame_width; particle->frame_height = texture->height; particle->frame_duration = frame_duration; particle->frame = 0; particle->life_ini = frame_duration * texture->width / frame_width; particle->life = particle->life_ini; particle->looping = looping; }