From 99cb204d29a63bf5f4edb40b25f4fc1a6605fbd1 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Wed, 22 Jun 2011 21:47:53 +0200 Subject: Made possible to separate the dye colors and channels for particle effects. It is now possible to write, for instance: my-particle-file.xml|#cbcb78,345678 and in my-particle-file.xml: ... ... This will permit the use (and reuse) of generic particle files. Conflicts: src/particle.cpp src/particleemitter.cpp src/particleemitter.h src/simpleanimation.cpp --- src/particleemitter.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/particleemitter.cpp') diff --git a/src/particleemitter.cpp b/src/particleemitter.cpp index 844da5dad..6b6cca44b 100644 --- a/src/particleemitter.cpp +++ b/src/particleemitter.cpp @@ -27,6 +27,7 @@ #include "particleemitter.h" #include "rotationalparticle.h" +#include "resources/dye.h" #include "resources/image.h" #include "resources/imageset.h" #include "resources/resourcemanager.h" @@ -39,7 +40,8 @@ #define DEG_RAD_FACTOR 0.017453293f ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, - Map *map, int rotation): + Map *map, int rotation, + const std::string& dyePalettes): mOutputPauseLeft(0), mParticleImage(0) { @@ -99,6 +101,9 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, // Don't leak when multiple images are defined if (!image.empty() && !mParticleImage) { + if (!dyePalettes.empty()) + Dye::instantiate(image, dyePalettes); + ResourceManager *resman = ResourceManager::getInstance(); mParticleImage = resman->getImage(image); } @@ -194,7 +199,8 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, } else if (xmlStrEqual(propertyNode->name, BAD_CAST "emitter")) { - ParticleEmitter newEmitter(propertyNode, mParticleTarget, map); + ParticleEmitter newEmitter(propertyNode, mParticleTarget, map, + rotation, dyePalettes); mParticleChildEmitters.push_back(newEmitter); } else if (xmlStrEqual(propertyNode->name, BAD_CAST "rotation")) -- cgit v1.2.3-60-g2f50