summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
authorPhilipp Sehmisch <tmw@crushnet.org>2007-12-28 18:36:58 +0000
committerPhilipp Sehmisch <tmw@crushnet.org>2007-12-28 18:36:58 +0000
commitdf2d513ba368f24cbec3ece3ff0084093a568e86 (patch)
tree2488c1733a083a873fd6aaaf3acbeb434ee52c1d /src/resources
parent805f3a89953eada8eb6186715ac3169e5ed5e845 (diff)
downloadmana-df2d513ba368f24cbec3ece3ff0084093a568e86.tar.gz
mana-df2d513ba368f24cbec3ece3ff0084093a568e86.tar.bz2
mana-df2d513ba368f24cbec3ece3ff0084093a568e86.tar.xz
mana-df2d513ba368f24cbec3ece3ff0084093a568e86.zip
Added the possibility to assign particle effects to monsters in the monster database. Added flame particle effect to fire goblin as a proof of concept.
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/monsterdb.cpp6
-rw-r--r--src/resources/monsterinfo.cpp5
-rw-r--r--src/resources/monsterinfo.h8
3 files changed, 19 insertions, 0 deletions
diff --git a/src/resources/monsterdb.cpp b/src/resources/monsterdb.cpp
index 84e3a219..e007eda0 100644
--- a/src/resources/monsterdb.cpp
+++ b/src/resources/monsterdb.cpp
@@ -142,6 +142,12 @@ MonsterDB::load()
filename, event.c_str(), currentInfo->getName().c_str());
}
}
+
+ if (xmlStrEqual(spriteNode->name, BAD_CAST "particlefx"))
+ {
+ currentInfo->addParticleEffect(
+ (const char*) spriteNode->xmlChildrenNode->content);
+ }
}
mMonsterInfos[XML::getProperty(monsterNode, "id", 0)] = currentInfo;
}
diff --git a/src/resources/monsterinfo.cpp b/src/resources/monsterinfo.cpp
index c4c9ce10..8238dc3e 100644
--- a/src/resources/monsterinfo.cpp
+++ b/src/resources/monsterinfo.cpp
@@ -70,3 +70,8 @@ MonsterInfo::getSound(MonsterSoundEvent event) const
return i->second->at(rand()%i->second->size());
}
}
+
+void MonsterInfo::addParticleEffect(std::string filename)
+{
+ mParticleEffects.push_back(filename);
+}
diff --git a/src/resources/monsterinfo.h b/src/resources/monsterinfo.h
index 7d49db1a..d9d17510 100644
--- a/src/resources/monsterinfo.h
+++ b/src/resources/monsterinfo.h
@@ -27,6 +27,7 @@
#include <map>
#include <string>
#include <vector>
+#include <list>
#include "../being.h"
@@ -71,6 +72,9 @@ class MonsterInfo
void
addSound(MonsterSoundEvent event, std::string filename);
+ void
+ addParticleEffect(std::string filename);
+
const std::string&
getName() const { return mName; }
@@ -83,11 +87,15 @@ class MonsterInfo
std::string
getSound(MonsterSoundEvent event) const;
+ const std::list<std::string>&
+ getParticleEffects() const { return mParticleEffects; }
+
private:
std::string mName;
std::string mSprite;
Being::TargetCursorSize mTargetCursorSize;
std::map<MonsterSoundEvent, std::vector<std::string>* > mSounds;
+ std::list<std::string> mParticleEffects;
};
#endif