diff options
-rw-r--r-- | src/particle.cpp | 12 | ||||
-rw-r--r-- | src/particle.h | 4 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/particle.cpp b/src/particle.cpp index d3dbfd64..84161c9f 100644 --- a/src/particle.cpp +++ b/src/particle.cpp @@ -64,6 +64,7 @@ Particle::Particle(Map *map): mAlpha(1.0f), mAutoDelete(true), mMap(map), + mAllowSizeAdjust(false), mGravity(0.0f), mRandomness(0), mBounce(0.0f), @@ -322,6 +323,8 @@ Particle *Particle::addEffect(const std::string &particleEffectFile, int lifetime = XML::getProperty(effectChildNode, "lifetime", -1); newParticle->setLifetime(lifetime); + bool resizeable = "false" != XML::getProperty(effectChildNode, "size-adjustable", "false"); + newParticle->setAllowSizeAdjust(resizeable); // Look for additional emitters for this particle for_each_xml_child_node(emitterNode, effectChildNode) @@ -380,10 +383,13 @@ Particle *Particle::addTextRiseFadeOutEffect(const std::string &text, void Particle::adjustEmitterSize(int w, int h) { - for (EmitterIterator e = mChildEmitters.begin(); - e != mChildEmitters.end(); e++) + if (mAllowSizeAdjust) { - (*e)->adjustSize(w, h); + for (EmitterIterator e = mChildEmitters.begin(); + e != mChildEmitters.end(); e++) + { + (*e)->adjustSize(w, h); + } } } diff --git a/src/particle.h b/src/particle.h index 87360bec..0690e8c4 100644 --- a/src/particle.h +++ b/src/particle.h @@ -256,6 +256,9 @@ class Particle : public Sprite */ void adjustEmitterSize(int w, int h); + void setAllowSizeAdjust(bool adjust) + { mAllowSizeAdjust = adjust; } + bool isAlive() { return mAlive; } @@ -297,6 +300,7 @@ class Particle : public Sprite std::list<Sprite*>::iterator mSpriteIterator; /**< iterator of the particle on the current map */ Emitters mChildEmitters; /**< List of child emitters. */ Particles mChildParticles; /**< List of particles controlled by this particle */ + bool mAllowSizeAdjust; /**< Can the effect size be adjusted by the object props in the map file? */ // dynamic particle Vector mVelocity; /**< Speed in pixels per game-tick. */ |