summaryrefslogtreecommitdiff
path: root/src/particle/particle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/particle/particle.cpp')
-rw-r--r--src/particle/particle.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/particle/particle.cpp b/src/particle/particle.cpp
index b487e5ffb..dc566bb4e 100644
--- a/src/particle/particle.cpp
+++ b/src/particle/particle.cpp
@@ -477,6 +477,23 @@ void Particle::adjustEmitterSize(const int w, const int h)
}
}
+void Particle::prepareToDie()
+{
+ FOR_EACH (ParticleIterator, p, mChildParticles)
+ {
+ Particle *const particle = *p;
+ if (!particle)
+ continue;
+ particle->prepareToDie();
+ if (particle->isAlive() &&
+ particle->mLifetimeLeft == -1 &&
+ particle->mAutoDelete)
+ {
+ particle->kill();
+ }
+ }
+}
+
void Particle::clear()
{
delete_all(mChildEmitters);