summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-19 19:33:31 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-19 19:33:31 +0300
commit6ea528b2eff23e9a7c833692afc080c786ed2419 (patch)
treec90f7aecb1cbeea300c3d3414286ddc12379e1f4
parent82d9ed1a055c7cdb7856c695104e9838f4e1718f (diff)
downloadmanaplus-6ea528b2eff23e9a7c833692afc080c786ed2419.tar.gz
manaplus-6ea528b2eff23e9a7c833692afc080c786ed2419.tar.bz2
manaplus-6ea528b2eff23e9a7c833692afc080c786ed2419.tar.xz
manaplus-6ea528b2eff23e9a7c833692afc080c786ed2419.zip
eathena: add partial support for packet SMSG_MERCENARY_UPDATE 0x02a2.
-rw-r--r--src/net/eathena/mercenaryhandler.cpp12
-rw-r--r--src/net/eathena/mercenaryhandler.h4
-rw-r--r--src/net/eathena/packets.h2
-rw-r--r--src/net/eathena/protocol.h2
4 files changed, 19 insertions, 1 deletions
diff --git a/src/net/eathena/mercenaryhandler.cpp b/src/net/eathena/mercenaryhandler.cpp
index a6ca9a1ab..4bab3a499 100644
--- a/src/net/eathena/mercenaryhandler.cpp
+++ b/src/net/eathena/mercenaryhandler.cpp
@@ -39,6 +39,7 @@ MercenaryHandler::MercenaryHandler() :
{
static const uint16_t _messages[] =
{
+ SMSG_MERCENARY_UPDATE,
0
};
handledMessages = _messages;
@@ -49,9 +50,20 @@ void MercenaryHandler::handleMessage(Net::MessageIn &msg)
{
switch (msg.getId())
{
+ case SMSG_MERCENARY_UPDATE:
+ processMercenaryUpdate(msg);
+ break;
+
default:
break;
}
}
+void MercenaryHandler::processMercenaryUpdate(Net::MessageIn &msg)
+{
+ // +++ need create if need mercenary being and update stat
+ msg.readInt16("type");
+ msg.readInt32("value");
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/mercenaryhandler.h b/src/net/eathena/mercenaryhandler.h
index bd91fa37b..742aeb9fb 100644
--- a/src/net/eathena/mercenaryhandler.h
+++ b/src/net/eathena/mercenaryhandler.h
@@ -38,6 +38,10 @@ class MercenaryHandler final : public MessageHandler,
A_DELETE_COPY(MercenaryHandler)
void handleMessage(Net::MessageIn &msg) override final;
+
+ protected:
+ void processMercenaryUpdate(Net::MessageIn &msg);
+
};
} // namespace EAthena
diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h
index cbbc5ed8c..6d1c765e6 100644
--- a/src/net/eathena/packets.h
+++ b/src/net/eathena/packets.h
@@ -95,7 +95,7 @@ int16_t packet_lengths[] =
// #0x0280
0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 4, 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, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -1, -1, 107, 6, -1, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0,
// #0x02C0
0, -1, 0, 0, 0, 30, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index d88b5cb06..f3af515da 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -248,6 +248,8 @@
#define SMSG_NPC_CUTIN 0x01b3
#define SMSG_NPC_VIEWPOINT 0x0144
+#define SMSG_MERCENARY_UPDATE 0x02a2
+
/**********************************
* Packets from client to server *
**********************************/