diff options
author | Philipp Sehmisch <tmw@crushnet.org> | 2008-02-12 14:00:22 +0000 |
---|---|---|
committer | Philipp Sehmisch <tmw@crushnet.org> | 2008-02-12 14:00:22 +0000 |
commit | 34e9c3e9125ef800ef47e2594cf23853deddccfb (patch) | |
tree | 8267b404c63e056a174a69a820ba3f62a2a2fa17 /src/particle.cpp | |
parent | 73b5bce7e4144cd9b6ce1748439e6cf7517351bc (diff) | |
download | mana-34e9c3e9125ef800ef47e2594cf23853deddccfb.tar.gz mana-34e9c3e9125ef800ef47e2594cf23853deddccfb.tar.bz2 mana-34e9c3e9125ef800ef47e2594cf23853deddccfb.tar.xz mana-34e9c3e9125ef800ef47e2594cf23853deddccfb.zip |
Particle emitters are now activated after the parent particle has moved instead of before (small change which allows a little trick to create polar emitters)
Diffstat (limited to 'src/particle.cpp')
-rw-r--r-- | src/particle.cpp | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/particle.cpp b/src/particle.cpp index 93fc7893..3d6b723d 100644 --- a/src/particle.cpp +++ b/src/particle.cpp @@ -96,26 +96,7 @@ Particle::update() if (mAlive) { - // Update child emitters - if (mLifetimePast%Particle::emitterSkip == 0) - { - for ( EmitterIterator e = mChildEmitters.begin(); - e != mChildEmitters.end(); - e++ - ) - { - Particles newParticles = (*e)->createParticles(); - for ( ParticleIterator p = newParticles.begin(); - p != newParticles.end(); - p++ - ) - { - (*p)->moveBy(mPos.x, mPos.y, mPos.z); - mChildParticles.push_back (*p); - } - } - } - + //calculate particle movement if (mMomentum != 1.0f) { mVelocity *= mMomentum; @@ -187,6 +168,26 @@ Particle::update() mAlive = false; } } + + // Update child emitters + if (mLifetimePast%Particle::emitterSkip == 0) + { + for ( EmitterIterator e = mChildEmitters.begin(); + e != mChildEmitters.end(); + e++ + ) + { + Particles newParticles = (*e)->createParticles(); + for ( ParticleIterator p = newParticles.begin(); + p != newParticles.end(); + p++ + ) + { + (*p)->moveBy(mPos.x, mPos.y, mPos.z); + mChildParticles.push_back (*p); + } + } + } } // Update child particles |