summaryrefslogtreecommitdiff
path: root/src/npc.cpp
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2009-02-16 23:57:21 +0100
committerIra Rice <irarice@gmail.com>2009-02-16 18:03:27 -0700
commita739b7d2936bc1074edc4703bd06605162efd166 (patch)
tree0a9bcc26bbb2adbf90e2ee4518cafb4fb4643a10 /src/npc.cpp
parent5964b89cbe0aa78768a6abfe37eafe70f50a3222 (diff)
downloadmana-client-a739b7d2936bc1074edc4703bd06605162efd166.tar.gz
mana-client-a739b7d2936bc1074edc4703bd06605162efd166.tar.bz2
mana-client-a739b7d2936bc1074edc4703bd06605162efd166.tar.xz
mana-client-a739b7d2936bc1074edc4703bd06605162efd166.zip
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.
Diffstat (limited to 'src/npc.cpp')
-rw-r--r--src/npc.cpp14
1 files changed, 5 insertions, 9 deletions
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)");