momento/src/particles/update.c

32 lines
572 B
C

/* 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;
}
}