summaryrefslogtreecommitdiff
path: root/src/beingmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/beingmanager.cpp')
-rw-r--r--src/beingmanager.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/beingmanager.cpp b/src/beingmanager.cpp
index 3c8edf86..3b73d29f 100644
--- a/src/beingmanager.cpp
+++ b/src/beingmanager.cpp
@@ -96,7 +96,10 @@ Being* BeingManager::createBeing(Uint32 id, Uint16 job)
void BeingManager::destroyBeing(Being *being)
{
mBeings.remove(being);
- delete being;
+ if (being == current_npc)
+ current_npc->handleDeath();
+ else
+ delete being;
}
Being* BeingManager::findBeing(Uint32 id)
@@ -193,6 +196,12 @@ void BeingManager::clear()
mBeings.remove(player_node);
}
+ if (current_npc)
+ {
+ mBeings.remove(current_npc);
+ current_npc->handleDeath();
+ }
+
delete_all(mBeings);
mBeings.clear();