From d6471bf0f398257cb379944323cf85e8115491a5 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 13 Oct 2013 20:14:17 +0000 Subject: Axded explosion trigger for particle ejecotrs, fixed explosion particles for destroyed entities. --- src/render/renderext.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/render/renderext.cc') diff --git a/src/render/renderext.cc b/src/render/renderext.cc index 7ac5702..c66f036 100644 --- a/src/render/renderext.cc +++ b/src/render/renderext.cc @@ -168,17 +168,27 @@ void RenderExt::frame(float elapsed) const ParticleSystemScript *script = ParticleSystemScript::load("explosion"); if (script) { state_explosion = new ParticleSystem(script, entity(), 0); + + // forece all ejectors te explosion state + for (ParticleSystem::Ejectors::iterator it = state_explosion->ejectors().begin(); it != state_explosion->ejectors().end(); ++it) { + ParticleEjector *ejector = (*it); + ejector->set_explosion(true); + } + state_particles.push_back(state_explosion); } } } else { + if (state_explosion) { // remove explosion - for (ParticleSystems::iterator it = particles().begin(); state_explosion && (it != particles().end()); it++) { + for (ParticleSystems::iterator it = particles().begin(); state_explosion && (it != particles().end());) { if ((*it) == state_explosion) { - particles().erase(it); + particles().erase(it++); state_explosion = 0; + } else { + ++it; } } } -- cgit v1.2.3