From c4ffef0103507c8f514d1a395b630e21b9b9541b Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Thu, 12 Mar 2015 14:52:12 +0300
Subject: eathena: add partial support for packet SMSG_PK_RANKS_LIST 0x0238.

---
 src/net/eathena/beinghandler.cpp | 15 +++++++++++++++
 src/net/eathena/beinghandler.h   |  2 ++
 src/net/eathena/packets.h        |  2 +-
 src/net/eathena/protocol.h       |  1 +
 4 files changed, 19 insertions(+), 1 deletion(-)

(limited to 'src/net')

diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index ef22b4178..4082d85ef 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -129,6 +129,7 @@ BeingHandler::BeingHandler(const bool enableSync) :
         SMSG_BLACKSMITH_RANKS_LIST,
         SMSG_ALCHEMIST_RANKS_LIST,
         SMSG_TAEKWON_RANKS_LIST,
+        SMSG_PK_RANKS_LIST,
         0
     };
     handledMessages = _messages;
@@ -373,6 +374,10 @@ void BeingHandler::handleMessage(Net::MessageIn &msg)
             processTaekwonRanksList(msg);
             break;
 
+        case SMSG_PK_RANKS_LIST:
+            processPkRanksList(msg);
+            break;
+
         default:
             break;
     }
@@ -1370,6 +1375,16 @@ void BeingHandler::processTaekwonRanksList(Net::MessageIn &msg)
         msg.readInt32("points");
 }
 
+void BeingHandler::processPkRanksList(Net::MessageIn &msg)
+{
+    UNIMPLIMENTEDPACKET;
+    // +++ here need window with rank tables.
+    for (int f = 0; f < 10; f ++)
+        msg.readString(24, "name");
+    for (int f = 0; f < 10; f ++)
+        msg.readInt32("points");
+}
+
 void BeingHandler::processBeingChangeDirection(Net::MessageIn &msg)
 {
     BLOCK_START("BeingHandler::processBeingChangeDirection")
diff --git a/src/net/eathena/beinghandler.h b/src/net/eathena/beinghandler.h
index cecf35090..6a32a1d3c 100644
--- a/src/net/eathena/beinghandler.h
+++ b/src/net/eathena/beinghandler.h
@@ -146,6 +146,8 @@ class BeingHandler final : public MessageHandler, public Ea::BeingHandler
         static void processAlchemistRanksList(Net::MessageIn &msg);
 
         static void processTaekwonRanksList(Net::MessageIn &msg);
+
+        static void processPkRanksList(Net::MessageIn &msg);
 };
 
 }  // namespace EAthena
diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h
index b8ea08ec2..3eee3ab46 100644
--- a/src/net/eathena/packets.h
+++ b/src/net/eathena/packets.h
@@ -86,7 +86,7 @@ int16_t packet_lengths[] =
  26,  -1,   0,   0,  18,  26,  11,  34,   0,  36,  10,  19,  10,   0,  32,   0,
  22,  -1,  16,   0,  42,   6,   6,   0,   0, 282, 282,  10,  10,   0,   0,   0,
  -1,  -1,   0,   8,  10,   0, 282,   0,   0,  15,   0,   0,   0,  19,  71,   5,
- 12,   0,   0,   0,   0,  -1,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+ 12,   0,   0,   0,   0,  -1,   0,   0, 282,   0,   0,   0,   0,   0,   0,   0,
 // #0x0240
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   3,   0,  -1,   0,   0,   0,   5,   0,   0,   0,   0,   0,   0,   4,   0,   6,
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index c3ba7710b..85cb66bcd 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -284,6 +284,7 @@
 #define SMSG_BLACKSMITH_RANKS_LIST   0x0219
 #define SMSG_ALCHEMIST_RANKS_LIST    0x021a
 #define SMSG_TAEKWON_RANKS_LIST      0x0226
+#define SMSG_PK_RANKS_LIST           0x0238
 #define SMSG_MONSTER_HP              0x0977
 #define SMSG_MONSTER_INFO            0x018c
 #define SMSG_PLAYER_HP               0x080e
-- 
cgit v1.2.3-70-g09d2