diff options
author | Ira Rice <irarice@gmail.com> | 2009-02-25 19:04:39 -0700 |
---|---|---|
committer | Ira Rice <irarice@gmail.com> | 2009-02-25 19:04:39 -0700 |
commit | 0dde31c3db09113639fa443142995b6efcff6646 (patch) | |
tree | 9e91488f812067dae7a91f84393a930ffe31b626 /src/net/beinghandler.cpp | |
parent | 6cd131052c78af04e794409189a0d7e16dcc0c51 (diff) | |
download | mana-0dde31c3db09113639fa443142995b6efcff6646.tar.gz mana-0dde31c3db09113639fa443142995b6efcff6646.tar.bz2 mana-0dde31c3db09113639fa443142995b6efcff6646.tar.xz mana-0dde31c3db09113639fa443142995b6efcff6646.zip |
Fix NPC handling to not need a handle on the NPC
Loosely based on TMW commit f04a8713ffc83db8b3dc4a472b28aad25a2b2bd1
Signed-off-by: Ira Rice <irarice@gmail.com>
Diffstat (limited to 'src/net/beinghandler.cpp')
-rw-r--r-- | src/net/beinghandler.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp index c11d22e7..bae14a05 100644 --- a/src/net/beinghandler.cpp +++ b/src/net/beinghandler.cpp @@ -196,7 +196,11 @@ void BeingHandler::handleMessage(MessageIn *msg) case SMSG_BEING_REMOVE: // A being should be removed or has died - dstBeing = beingManager->findBeing(msg->readInt32()); + id = msg->readInt32(); + dstBeing = beingManager->findBeing(id); + + if (id == current_npc) + current_npc = 0; if (!dstBeing) break; @@ -205,12 +209,7 @@ void BeingHandler::handleMessage(MessageIn *msg) if (dstBeing == player_node->getTarget()) player_node->stopAttack(); - if (dstBeing == current_npc) - current_npc = NULL; - - if (msg->readInt8() == 1) - dstBeing->setAction(Being::DEAD); - else + if (!(msg->readInt8() == 1)) beingManager->destroyBeing(dstBeing); break; |