summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-10 16:33:47 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-10 16:33:47 +0300
commitd8e145940a4499b4218346f6bb7c50dfd44f54c0 (patch)
treefbe5c25af7ccd8a1b29d43952d0d0a89e7e3531b
parent24e4e3c241f39c088bd6f9eb471a2c0285c4eebf (diff)
downloadplus-d8e145940a4499b4218346f6bb7c50dfd44f54c0.tar.gz
plus-d8e145940a4499b4218346f6bb7c50dfd44f54c0.tar.bz2
plus-d8e145940a4499b4218346f6bb7c50dfd44f54c0.tar.xz
plus-d8e145940a4499b4218346f6bb7c50dfd44f54c0.zip
eathena: add partial support for packet SMSG_MAIL_OPEN_WINDOW 0x0260.
-rw-r--r--src/net/eathena/mailhandler.cpp29
-rw-r--r--src/net/eathena/mailhandler.h3
-rw-r--r--src/net/eathena/packets.h2
-rw-r--r--src/net/eathena/protocol.h2
4 files changed, 35 insertions, 1 deletions
diff --git a/src/net/eathena/mailhandler.cpp b/src/net/eathena/mailhandler.cpp
index 32080b529..3cbefb623 100644
--- a/src/net/eathena/mailhandler.cpp
+++ b/src/net/eathena/mailhandler.cpp
@@ -20,6 +20,8 @@
#include "net/eathena/mailhandler.h"
+#include "logger.h"
+
#include "net/eathena/messageout.h"
#include "net/eathena/protocol.h"
@@ -35,6 +37,7 @@ MailHandler::MailHandler() :
{
static const uint16_t _messages[] =
{
+ SMSG_MAIL_OPEN_WINDOW,
0
};
handledMessages = _messages;
@@ -43,6 +46,32 @@ MailHandler::MailHandler() :
void MailHandler::handleMessage(Net::MessageIn &msg)
{
+ switch(msg.getId())
+ {
+ case SMSG_MAIL_OPEN_WINDOW:
+ processMailOpen(msg);
+ break;
+
+ default:
+ break;
+ }
+}
+
+void MailHandler::processMailOpen(Net::MessageIn &msg) const
+{
+ const int flag = msg.readInt32("flag");
+ switch(flag)
+ {
+ case 0: // open window
+ break;
+
+ case 1: // close window
+ break;
+
+ default:
+ logger->log("unknown mail window open flag: %u", flag);
+ break;
+ }
}
} // namespace EAthena
diff --git a/src/net/eathena/mailhandler.h b/src/net/eathena/mailhandler.h
index c3a44cfab..ec3ed3e9e 100644
--- a/src/net/eathena/mailhandler.h
+++ b/src/net/eathena/mailhandler.h
@@ -37,6 +37,9 @@ class MailHandler final : public MessageHandler, public Net::MailHandler
A_DELETE_COPY(MailHandler)
void handleMessage(Net::MessageIn &msg) override final;
+
+ protected:
+ void processMailOpen(Net::MessageIn &msg) const;
};
} // namespace EAthena
diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h
index 8eb80105f..cb044e516 100644
--- a/src/net/eathena/packets.h
+++ b/src/net/eathena/packets.h
@@ -90,7 +90,7 @@ int16_t packet_lengths[] =
// #0x0240
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// #0x0280
0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index bb50a69cd..bd729bcc8 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -202,6 +202,8 @@
#define SMSG_MONSTER_HP 0x0977
#define SMSG_PLAYER_HP 0x080e
+#define SMSG_MAIL_OPEN_WINDOW 0x0260
+
/**********************************
* Packets from client to server *
**********************************/