diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-04-07 11:27:29 +0200 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-05-08 14:03:04 +0000 |
commit | 928c1584b67cb93a2c1e180a73574a84b4e7af01 (patch) | |
tree | f1619940e83fb21871a1fd6993c78a2d092759e0 /src/particleemitter.h | |
parent | 13a0a505bde8868e7ac9d50aa7dfe7d6bbae60c4 (diff) | |
download | mana-particle-system.tar.gz mana-particle-system.tar.bz2 mana-particle-system.tar.xz mana-particle-system.zip |
ParticleEmitter cleanupsparticle-system
* Don't needlessly use explicit heap allocation for ParticleEmitter
instances.
* Initialize ParticleEmitter members at the definition.
Diffstat (limited to 'src/particleemitter.h')
-rw-r--r-- | src/particleemitter.h | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/particleemitter.h b/src/particleemitter.h index ede5a71d..fdbf2d1a 100644 --- a/src/particleemitter.h +++ b/src/particleemitter.h @@ -41,9 +41,11 @@ class Particle; class ParticleEmitter { public: - ParticleEmitter(XML::Node emitterNode, Particle *target, Map *map, + ParticleEmitter(XML::Node emitterNode, + Particle *target, + Map *map, int rotation = 0, - const std::string& dyePalettes = std::string()); + const std::string &dyePalettes = std::string()); /** * Copy Constructor (necessary for reference counting of particle images) @@ -99,27 +101,27 @@ class ParticleEmitter ParticleEmitterProp<float> mParticleGravity; ParticleEmitterProp<int> mParticleRandomness; ParticleEmitterProp<float> mParticleBounce; - bool mParticleFollow; + bool mParticleFollow = false; /* * Properties of targeting particles: */ Particle *mParticleTarget; ParticleEmitterProp<float> mParticleAcceleration; - ParticleEmitterProp<float> mParticleDieDistance; - ParticleEmitterProp<float> mParticleMomentum; + ParticleEmitterProp<float> mParticleDieDistance { -1.0f }; + ParticleEmitterProp<float> mParticleMomentum { 1.0f }; /* * Behavior over time of the particles: */ - ParticleEmitterProp<int> mParticleLifetime; + ParticleEmitterProp<int> mParticleLifetime { -1 }; ParticleEmitterProp<int> mParticleFadeOut; ParticleEmitterProp<int> mParticleFadeIn; Map *mMap; /**< Map the particles are spawned on */ - ParticleEmitterProp<int> mOutput; /**< Number of particles spawned per update */ - ParticleEmitterProp<int> mOutputPause; /**< Pause in frames between two spawns */ + ParticleEmitterProp<int> mOutput { 1 }; /**< Number of particles spawned per update */ + ParticleEmitterProp<int> mOutputPause; /**< Pause in frames between two spawns */ int mOutputPauseLeft = 0; /* @@ -128,13 +130,13 @@ class ParticleEmitter ResourceRef<Image> mParticleImage; /**< Particle image, if used */ Animation mParticleAnimation; /**< Filename of particle animation file */ Animation mParticleRotation; /**< Filename of particle rotation file */ - ParticleEmitterProp<float> mParticleAlpha; /**< Opacity of the graphical representation of the particles */ + ParticleEmitterProp<float> mParticleAlpha { 1.0f }; /**< Opacity of the graphical representation of the particles */ /* * Death effect of the particles */ std::string mDeathEffect; - char mDeathEffectConditions; + unsigned char mDeathEffectConditions = 0x00; /** List of emitters the spawned particles are equipped with */ std::list<ParticleEmitter> mParticleChildEmitters; |