summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2009-03-09 13:26:59 -0600
committerJared Adams <jaxad0127@gmail.com>2009-03-09 13:28:24 -0600
commitd605691a3fe219cde175eb68239bea91ae2d91fd (patch)
tree7386503438bf4590f6f7a9bdfd7a6a54ee6982a0 /src
parentdf1c392c03202866a809facefb378a12204a7c94 (diff)
downloadmana-d605691a3fe219cde175eb68239bea91ae2d91fd.tar.gz
mana-d605691a3fe219cde175eb68239bea91ae2d91fd.tar.bz2
mana-d605691a3fe219cde175eb68239bea91ae2d91fd.tar.xz
mana-d605691a3fe219cde175eb68239bea91ae2d91fd.zip
Send the correct packet for the NPC close button
Both packets do the same, but we should be explicit anyways. Also, seperate out NPC client packets.
Diffstat (limited to 'src')
-rw-r--r--src/gui/npc_text.cpp7
-rw-r--r--src/gui/npc_text.h2
-rw-r--r--src/net/npchandler.cpp2
-rw-r--r--src/net/protocol.h18
4 files changed, 20 insertions, 9 deletions
diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp
index 954f22d8..61f3e510 100644
--- a/src/gui/npc_text.cpp
+++ b/src/gui/npc_text.cpp
@@ -126,6 +126,13 @@ void NpcTextDialog::nextDialog(int npcID)
outMsg.writeInt32(npcID);
}
+void NpcTextDialog::closeDialog(int npcID)
+{
+ MessageOut outMsg(mNetwork);
+ outMsg.writeInt16(CMSG_NPC_CLOSE);
+ outMsg.writeInt32(npcID);
+}
+
void NpcTextDialog::widgetResized(const gcn::Event &event)
{
Window::widgetResized(event);
diff --git a/src/gui/npc_text.h b/src/gui/npc_text.h
index 019c22a5..f030115b 100644
--- a/src/gui/npc_text.h
+++ b/src/gui/npc_text.h
@@ -79,6 +79,8 @@ class NpcTextDialog : public Window, public gcn::ActionListener
void nextDialog(int npcID = current_npc);
+ void closeDialog(int npcID = current_npc);
+
/**
* Called when resizing the window.
*
diff --git a/src/net/npchandler.cpp b/src/net/npchandler.cpp
index 487b358f..08ea8506 100644
--- a/src/net/npchandler.cpp
+++ b/src/net/npchandler.cpp
@@ -78,7 +78,7 @@ void NPCHandler::handleMessage(MessageIn *msg)
npcTextDialog->showCloseButton();
// Otherwise, move on as an empty dialog doesn't help
else
- npcTextDialog->nextDialog(id);
+ npcTextDialog->closeDialog(id);
break;
case SMSG_NPC_NEXT:
diff --git a/src/net/protocol.h b/src/net/protocol.h
index e9053451..4b470d12 100644
--- a/src/net/protocol.h
+++ b/src/net/protocol.h
@@ -121,30 +121,32 @@
#define CMSG_TRADE_RESPONSE 0x00e6
#define CMSG_ITEM_PICKUP 0x009f
#define CMSG_MAP_LOADED 0x007d
-#define CMSG_NPC_BUY_REQUEST 0x00c8
-#define CMSG_NPC_BUY_SELL_REQUEST 0x00c5
#define CMSG_CHAT_MESSAGE 0x008c
#define CMSG_CHAT_WHISPER 0x0096
#define CMSG_CHAT_ANNOUNCE 0x0099
#define CMSG_CHAT_WHO 0x00c1
-#define CMSG_NPC_LIST_CHOICE 0x00b8
-#define CMSG_NPC_NEXT_REQUEST 0x00b9
-#define CMSG_NPC_SELL_REQUEST 0x00c9
-#define CMSG_NPC_INT_RESPONSE 0x0143
-#define CMSG_NPC_STR_RESPONSE 0x01d5
#define CMSG_SKILL_LEVELUP_REQUEST 0x0112
#define CMSG_STAT_UPDATE_REQUEST 0x00bb
#define CMSG_TRADE_ITEM_ADD_REQUEST 0x00e8
#define CMSG_TRADE_CANCEL_REQUEST 0x00ed
#define CMSG_TRADE_ADD_COMPLETE 0x00eb
#define CMSG_TRADE_OK 0x00ef
-#define CMSG_NPC_TALK 0x0090
#define CMSG_TRADE_REQUEST 0x00e4
#define CMSG_PLAYER_INVENTORY_USE 0x00a7
#define CMSG_PLAYER_INVENTORY_DROP 0x00a2
#define CMSG_PLAYER_EQUIP 0x00a9
#define CMSG_PLAYER_UNEQUIP 0x00ab
+#define CMSG_NPC_TALK 0x0090
+#define CMSG_NPC_NEXT_REQUEST 0x00b9
+#define CMSG_NPC_CLOSE 0x0146
+#define CMSG_NPC_LIST_CHOICE 0x00b8
+#define CMSG_NPC_INT_RESPONSE 0x0143
+#define CMSG_NPC_STR_RESPONSE 0x01d5
+#define CMSG_NPC_BUY_SELL_REQUEST 0x00c5
+#define CMSG_NPC_BUY_REQUEST 0x00c8
+#define CMSG_NPC_SELL_REQUEST 0x00c9
+
#define CMSG_PARTY_CREATE 0x00f9
#define CMSG_PARTY_INVITE 0x00fc
#define CMSG_PARTY_INVITED 0x00ff