diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-02-16 23:57:21 +0100 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-02-16 23:57:21 +0100 |
commit | 91ee1c7b3e861d84c8aae51ad933ff6015adb5b8 (patch) | |
tree | c6458c99d566f0e656a6db1a9acc66d8f0fd0d27 /src/npc.cpp | |
parent | f93c40463d018b4a2c2909bf5de14a81ce91ac64 (diff) | |
download | mana-91ee1c7b3e861d84c8aae51ad933ff6015adb5b8.tar.gz mana-91ee1c7b3e861d84c8aae51ad933ff6015adb5b8.tar.bz2 mana-91ee1c7b3e861d84c8aae51ad933ff6015adb5b8.tar.xz mana-91ee1c7b3e861d84c8aae51ad933ff6015adb5b8.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.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/npc.cpp b/src/npc.cpp index 70b3ce13..9aa7ad15 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -72,21 +72,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)"); |