diff --git a/engine/particle_sys.c b/engine/particle_sys.c index 1ddc141..98bd270 100644 --- a/engine/particle_sys.c +++ b/engine/particle_sys.c @@ -130,7 +130,7 @@ bool is_emitter_handle_alive(ParticleSystem_t* system, EmitterHandle handle) { if (handle == 0) return false; - return system->emitters[handle].active; + return !system->emitters[handle].finished; } EmitterHandle play_particle_emitter(ParticleSystem_t* system, const ParticleEmitter_t* in_emitter) diff --git a/scenes/game_systems.c b/scenes/game_systems.c index 89b96af..b0bbcd1 100644 --- a/scenes/game_systems.c +++ b/scenes/game_systems.c @@ -1495,6 +1495,10 @@ void state_transition_update_system(Scene_t* scene) }; p_emitter->handle = play_particle_emitter(&scene->part_sys, &emitter); } + else + { + play_emitter_handle(&scene->part_sys, p_emitter->handle); + } } } }