summaryrefslogtreecommitdiff
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
parentdf1c392c03202866a809facefb378a12204a7c94 (diff)
downloadmana-client-d605691a3fe219cde175eb68239bea91ae2d91fd.tar.gz
mana-client-d605691a3fe219cde175eb68239bea91ae2d91fd.tar.bz2
mana-client-d605691a3fe219cde175eb68239bea91ae2d91fd.tar.xz
mana-client-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.
-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