summaryrefslogtreecommitdiff
path: root/src/resources/monsterinfo.cpp
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2008-03-23 01:27:13 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2008-03-23 01:27:13 +0000
commit9dd811b55587aeb76344b835006cb4a01601bb5d (patch)
treebd297391e264a09ce8467bcf780927a4cef09991 /src/resources/monsterinfo.cpp
parentbd8a35eca8c2fa6eb33e7d9219e3fa4d287a2059 (diff)
downloadmana-9dd811b55587aeb76344b835006cb4a01601bb5d.tar.gz
mana-9dd811b55587aeb76344b835006cb4a01601bb5d.tar.bz2
mana-9dd811b55587aeb76344b835006cb4a01601bb5d.tar.xz
mana-9dd811b55587aeb76344b835006cb4a01601bb5d.zip
Merged revisions 3823,3825-3826,3829,3831-3839,3841-3842 via svnmerge from
https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/branches/0.0 ........ r3823 | crush_tmw | 2007-12-28 19:36:58 +0100 (Fri, 28 Dec 2007) | 1 line 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. ........ r3826 | crush_tmw | 2007-12-30 01:02:14 +0100 (Sun, 30 Dec 2007) | 1 line Added a key for targeting the nearest player character based on patches by Trinexx. Some mapping fixes at snake dungeon map. ........ r3839 | the_enemy | 2008-01-13 17:28:50 +0100 (Sun, 13 Jan 2008) | 1 line Fixed non-default location music loading ........ r3842 | crush_tmw | 2008-01-14 11:48:13 +0100 (Mon, 14 Jan 2008) | 1 line ixed an error in Davids last commit (couldn't compile that way). ........
Diffstat (limited to 'src/resources/monsterinfo.cpp')
-rw-r--r--src/resources/monsterinfo.cpp63
1 files changed, 23 insertions, 40 deletions
diff --git a/src/resources/monsterinfo.cpp b/src/resources/monsterinfo.cpp
index a7ad51a3..0af09c53 100644
--- a/src/resources/monsterinfo.cpp
+++ b/src/resources/monsterinfo.cpp
@@ -30,20 +30,17 @@
MonsterInfo::MonsterInfo():
mSprite("error.xml")
{
-
}
MonsterInfo::~MonsterInfo()
{
// kill vectors in mSoundEffects
- for_each (mSounds.begin(), mSounds.end(),
- make_dtor(mSounds));
+ for_each(mSounds.begin(), mSounds.end(), make_dtor(mSounds));
mSounds.clear();
}
-
void
-MonsterInfo::addSound(MonsterSoundEvent event, std::string filename)
+MonsterInfo::addSound(MonsterSoundEvent event, const std::string &filename)
{
if (mSounds.find(event) == mSounds.end())
{
@@ -53,59 +50,45 @@ MonsterInfo::addSound(MonsterSoundEvent event, std::string filename)
mSounds[event]->push_back("sfx/" + filename);
}
-
const std::string &
MonsterInfo::getSound(MonsterSoundEvent event) const
{
- static std::string nothing("");
- std::map<MonsterSoundEvent, std::vector<std::string>* >::const_iterator i;
- i = mSounds.find(event);
- if (i == mSounds.end())
- {
- return nothing;
- }
- else
- {
- return i->second->at(rand()%i->second->size());
- }
+ static std::string empty("");
+ std::map<MonsterSoundEvent, std::vector<std::string>* >::const_iterator i =
+ mSounds.find(event);
+ return (i == mSounds.end()) ? empty :
+ i->second->at(rand() % i->second->size());
}
const std::string &
MonsterInfo::getAttackParticleEffect(int attackType) const
{
- static std::string nothing("");
- std::map<int, MonsterAttack*>::const_iterator i;
- i = mMonsterAttacks.find(attackType);
- if (i == mMonsterAttacks.end())
- {
- return nothing;
- }
- else
- {
- return (*i).second->particleEffect;
- }
+ static std::string empty("");
+ std::map<int, MonsterAttack*>::const_iterator i =
+ mMonsterAttacks.find(attackType);
+ return (i == mMonsterAttacks.end()) ? empty : (*i).second->particleEffect;
}
SpriteAction
MonsterInfo::getAttackAction(int attackType) const
{
- std::map<int, MonsterAttack*>::const_iterator i;
- i = mMonsterAttacks.find(attackType);
- if (i == mMonsterAttacks.end())
- {
- return ACTION_ATTACK;
- }
- else
- {
- return (*i).second->action;
- }
+ std::map<int, MonsterAttack*>::const_iterator i =
+ mMonsterAttacks.find(attackType);
+ return (i == mMonsterAttacks.end()) ? ACTION_ATTACK : (*i).second->action;
}
void
-MonsterInfo::addMonsterAttack (int id, const std::string &particleEffect, SpriteAction action)
+MonsterInfo::addMonsterAttack(int id,
+ const std::string &particleEffect,
+ SpriteAction action)
{
- MonsterAttack* a = new MonsterAttack;
+ MonsterAttack *a = new MonsterAttack;
a->particleEffect = particleEffect;
a->action = action;
mMonsterAttacks[id] = a;
}
+
+void MonsterInfo::addParticleEffect(const std::string &filename)
+{
+ mParticleEffects.push_back(filename);
+}