summaryrefslogtreecommitdiff
path: root/src/net/beinghandler.cpp
diff options
context:
space:
mode:
authorIra Rice <irarice@gmail.com>2009-02-25 19:04:39 -0700
committerIra Rice <irarice@gmail.com>2009-02-25 19:04:39 -0700
commit0dde31c3db09113639fa443142995b6efcff6646 (patch)
tree9e91488f812067dae7a91f84393a930ffe31b626 /src/net/beinghandler.cpp
parent6cd131052c78af04e794409189a0d7e16dcc0c51 (diff)
downloadmana-client-0dde31c3db09113639fa443142995b6efcff6646.tar.gz
mana-client-0dde31c3db09113639fa443142995b6efcff6646.tar.bz2
mana-client-0dde31c3db09113639fa443142995b6efcff6646.tar.xz
mana-client-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.cpp13
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;