summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-03-11 19:30:23 +0300
committerAndrei Karas <akaras@inbox.ru>2015-03-11 19:30:23 +0300
commitb4024f971a41efebff9bbe53f71e78be6eda46af (patch)
tree0bd54c4c3e10ac63f316bc8b4f24510895b08203
parentb7f3032a97ab619df3f03f7c5828575a884ba635 (diff)
downloadmv-b4024f971a41efebff9bbe53f71e78be6eda46af.tar.gz
mv-b4024f971a41efebff9bbe53f71e78be6eda46af.tar.bz2
mv-b4024f971a41efebff9bbe53f71e78be6eda46af.tar.xz
mv-b4024f971a41efebff9bbe53f71e78be6eda46af.zip
eathena: add partial support for packet SMSG_PLAYER_REPAIR_LIST 0x01fc.
-rw-r--r--src/net/eathena/inventoryhandler.cpp21
-rw-r--r--src/net/eathena/inventoryhandler.h2
-rw-r--r--src/net/eathena/protocol.h1
3 files changed, 24 insertions, 0 deletions
diff --git a/src/net/eathena/inventoryhandler.cpp b/src/net/eathena/inventoryhandler.cpp
index ca354bf6c..0aa9f1af2 100644
--- a/src/net/eathena/inventoryhandler.cpp
+++ b/src/net/eathena/inventoryhandler.cpp
@@ -107,6 +107,7 @@ InventoryHandler::InventoryHandler() :
SMSG_PLAYER_IDENTIFY_LIST,
SMSG_PLAYER_IDENTIFIED,
SMSG_PLAYER_REFINE,
+ SMSG_PLAYER_REPAIR_LIST,
0
};
handledMessages = _messages;
@@ -243,6 +244,10 @@ void InventoryHandler::handleMessage(Net::MessageIn &msg)
processPlayerRefine(msg);
break;
+ case SMSG_PLAYER_REPAIR_LIST:
+ processPlayerRepairList(msg);
+ break;
+
default:
break;
}
@@ -986,4 +991,20 @@ void InventoryHandler::processPlayerRefine(Net::MessageIn &msg)
msg.readInt16("val");
}
+void InventoryHandler::processPlayerRepairList(Net::MessageIn &msg)
+{
+ UNIMPLIMENTEDPACKET;
+
+ const int count = (msg.readInt16("len" - 4)) / 13;
+ for (int f = 0; f < count; f ++)
+ {
+ msg.readInt16("index");
+ msg.readInt16("item id");
+ msg.readUInt8("refine");
+ for (int d = 0; d < 4; d ++)
+ msg.readInt16("card");
+ }
+ menu = MenuType::RepairWespon;
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/inventoryhandler.h b/src/net/eathena/inventoryhandler.h
index b9ee79912..e151ecaae 100644
--- a/src/net/eathena/inventoryhandler.h
+++ b/src/net/eathena/inventoryhandler.h
@@ -121,6 +121,8 @@ class InventoryHandler final : public MessageHandler,
static void processPlayerRefine(Net::MessageIn &msg);
+ static void processPlayerRepairList(Net::MessageIn &msg);
+
static Ea::InventoryItems mCartItems;
};
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index 7ef357683..db31c5cef 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -103,6 +103,7 @@
#define SMSG_PLAYER_SKILL_PRODUCE_MIX_LIST 0x018d
#define SMSG_PLAYER_SKILL_PRODUCE_EFFECT 0x018f
#define SMSG_PLAYER_SKILL_AUTO_SPELLS 0x01cd
+#define SMSG_PLAYER_REPAIR_LIST 0x01fc
#define SMSG_SKILL_FAILED 0x0110
#define SMSG_SKILL_DAMAGE 0x01de
#define SMSG_SKILL_AUTO_CAST 0x0147