diff options
Diffstat (limited to 'src/game-server/monster.cpp')
-rw-r--r-- | src/game-server/monster.cpp | 17 |
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; |