From a739b7d2936bc1074edc4703bd06605162efd166 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Mon, 16 Feb 2009 23:57:21 +0100 Subject: Don't arbitrarily unset player target on NPC deletion When an NPC got deleted it would reset the player target. I'm assuming what was meant was to reset the target when the deleted NPC was the target. --- src/npc.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'src/npc.cpp') diff --git a/src/npc.cpp b/src/npc.cpp index 3edb57a0..1088a082 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -73,21 +73,17 @@ NPC::NPC(Uint32 id, Uint16 job, Map *map, Network *network): NPC::~NPC() { - if (mName) - { - delete mName; + delete mName; + + if (player_node->getTarget() == this) player_node->setTarget(NULL); - } } void NPC::setName(const std::string &name) { - if (mName) - { - delete mName; - } - std::string displayName = name.substr(0, name.find('#', 0)); + const std::string displayName = name.substr(0, name.find('#', 0)); + delete mName; mName = new Text(displayName, mPx + NAME_X_OFFSET, mPy + NAME_Y_OFFSET, gcn::Graphics::CENTER, gcn::Color(200, 200, 255)); Being::setName(displayName + " (NPC)"); -- cgit v1.2.3-70-g09d2