summaryrefslogtreecommitdiff
path: root/src/npc.cpp
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2010-02-13 15:04:58 -0700
committerJared Adams <jaxad0127@gmail.com>2010-02-13 15:08:54 -0700
commit8bc425ff48b7a874ca0fb9d2285044c75f3010ab (patch)
tree5904c7f53cde9ffbe7df2a63f088561141e06b66 /src/npc.cpp
parent28c9cec5d39c9a1b98694eba9a28281cf111e34a (diff)
downloadmana-8bc425ff48b7a874ca0fb9d2285044c75f3010ab.tar.gz
mana-8bc425ff48b7a874ca0fb9d2285044c75f3010ab.tar.bz2
mana-8bc425ff48b7a874ca0fb9d2285044c75f3010ab.tar.xz
mana-8bc425ff48b7a874ca0fb9d2285044c75f3010ab.zip
Make NPC dialogs instance instead of global
This change allows players to talk to multiple NPCs at a time (if the server agrees). Manaserv's netcode allows multiple commerce instances too. eAthena's is limited to one commerce instance, due to protocol limitations.
Diffstat (limited to 'src/npc.cpp')
-rw-r--r--src/npc.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/npc.cpp b/src/npc.cpp
index b9cb6b41..b546d665 100644
--- a/src/npc.cpp
+++ b/src/npc.cpp
@@ -37,8 +37,6 @@
#include "resources/npcdb.h"
-int current_npc = 0;
-
NPC::NPC(int id, int job, Map *map):
Player(id, job, map, true)
{
@@ -80,9 +78,6 @@ void NPC::setName(const std::string &name)
void NPC::talk()
{
- if (isTalking())
- return;
-
Net::getNpcHandler()->talk(mId);
}
@@ -93,7 +88,7 @@ void NPC::setSprite(unsigned int slot, int id, const std::string &color)
const bool NPC::isTalking()
{
- return npcDialog->isVisible() || buyDialog->isVisible() ||
- sellDialog->isVisible() || buySellDialog->isVisible() ||
- npcPostDialog->isVisible();
+ return NpcDialog::isActive() || BuyDialog::isActive() ||
+ SellDialog::isActive() || BuySellDialog::isActive() ||
+ NpcPostDialog::isActive();
}