summaryrefslogtreecommitdiff
path: root/src/game-server/monster.cpp
diff options
context:
space:
mode:
authorPhilipp Sehmisch <crush@themanaworld.org>2009-09-17 22:18:59 +0200
committerPhilipp Sehmisch <crush@themanaworld.org>2009-09-17 22:18:59 +0200
commit5ae62661c90389d6456e5be75d240fb95b68b2cb (patch)
tree5bc079a53df86dc308ce0e7d439ba0c4fa8b1eb4 /src/game-server/monster.cpp
parent1702f4fe35a59d6fbeb6864902da168e2138a592 (diff)
downloadmanaserv-5ae62661c90389d6456e5be75d240fb95b68b2cb.tar.gz
manaserv-5ae62661c90389d6456e5be75d240fb95b68b2cb.tar.bz2
manaserv-5ae62661c90389d6456e5be75d240fb95b68b2cb.tar.xz
manaserv-5ae62661c90389d6456e5be75d240fb95b68b2cb.zip
Added the possibility to define a monster script for a whole monster class in monsters.xml
Diffstat (limited to 'src/game-server/monster.cpp')
-rw-r--r--src/game-server/monster.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/game-server/monster.cpp b/src/game-server/monster.cpp
index f7d2bac6..1cb6806b 100644
--- a/src/game-server/monster.cpp
+++ b/src/game-server/monster.cpp
@@ -93,6 +93,9 @@ Monster::Monster(MonsterClass *specy):
mAttackPositions.push_back(AttackPosition(-dist, 0, DIRECTION_RIGHT));
mAttackPositions.push_back(AttackPosition(0, dist, DIRECTION_DOWN));
mAttackPositions.push_back(AttackPosition(0, -dist, DIRECTION_UP));
+
+ //load default script
+ loadScript(specy->getScript());
}
Monster::~Monster()
@@ -293,7 +296,19 @@ void Monster::update()
void Monster::loadScript(std::string &scriptName)
{
if (mScript)
- return; // A script has already been loaded for this monster
+ {
+ delete mScript;// A script has already been loaded for this monster
+ }
+
+ if (scriptName.length() == 0)
+ {
+ if (mScript)
+ {
+ delete mScript;
+ mScript = NULL;
+ }
+ return;
+ }
std::stringstream filename;
filename << "scripts/monster/" << scriptName;