Fix one-shot stream emitter
parent
ec9e21dc8a
commit
637319cfd0
|
@ -136,7 +136,7 @@ bool is_emitter_handle_alive(ParticleSystem_t* system, EmitterHandle handle)
|
||||||
EmitterHandle play_particle_emitter(ParticleSystem_t* system, const ParticleEmitter_t* in_emitter)
|
EmitterHandle play_particle_emitter(ParticleSystem_t* system, const ParticleEmitter_t* in_emitter)
|
||||||
{
|
{
|
||||||
EmitterHandle idx = load_in_particle_emitter(system, in_emitter);
|
EmitterHandle idx = load_in_particle_emitter(system, in_emitter);
|
||||||
if (idx == 0) return 0 ;
|
if (idx == 0) return 0;
|
||||||
|
|
||||||
play_emitter_handle(system, idx);
|
play_emitter_handle(system, idx);
|
||||||
return idx;
|
return idx;
|
||||||
|
@ -181,23 +181,27 @@ void update_particle_system(ParticleSystem_t* system)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
emitter->particles[i].spawned = true;
|
emitter->particles[i].spawned = true;
|
||||||
|
spawn_particle(emitter, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!emitter->particles[i].alive)
|
if (emitter->particles[i].spawned)
|
||||||
{
|
{
|
||||||
if (!emitter->active)
|
if (!emitter->particles[i].alive)
|
||||||
{
|
{
|
||||||
inactive_count++;
|
if (!emitter->active)
|
||||||
}
|
{
|
||||||
else if (emitter->config->one_shot)
|
inactive_count++;
|
||||||
{
|
}
|
||||||
inactive_count++;
|
else if (emitter->config->one_shot)
|
||||||
}
|
{
|
||||||
else if (emitter->particles[i].spawned)
|
inactive_count++;
|
||||||
{
|
}
|
||||||
// If not one shot, immediately revive the particle
|
else
|
||||||
spawn_particle(emitter, i);
|
{
|
||||||
|
// If not one shot, immediately revive the particle
|
||||||
|
spawn_particle(emitter, i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue