summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/npchandler.cpp6
-rw-r--r--src/net/eathena/npchandler.h2
-rw-r--r--src/net/eathena/protocol.h1
-rw-r--r--src/net/npchandler.h2
-rw-r--r--src/net/tmwa/npchandler.cpp4
-rw-r--r--src/net/tmwa/npchandler.h2
6 files changed, 17 insertions, 0 deletions
diff --git a/src/net/eathena/npchandler.cpp b/src/net/eathena/npchandler.cpp
index 3943d99c4..f00b0fa07 100644
--- a/src/net/eathena/npchandler.cpp
+++ b/src/net/eathena/npchandler.cpp
@@ -217,6 +217,12 @@ void NpcHandler::cooking(const CookingType::Type type,
outMsg.writeInt16(nameId, "name id");
}
+void NpcHandler::repair(const int index) const
+{
+ MessageOut outMsg(CMSG_NPC_REPAIR);
+ outMsg.writeInt16(static_cast<int16_t>(index), "index");
+}
+
int NpcHandler::getNpc(Net::MessageIn &msg)
{
if (msg.getId() == SMSG_NPC_CHOICE
diff --git a/src/net/eathena/npchandler.h b/src/net/eathena/npchandler.h
index 720a4c9f8..ae1eb32cf 100644
--- a/src/net/eathena/npchandler.h
+++ b/src/net/eathena/npchandler.h
@@ -75,6 +75,8 @@ class NpcHandler final : public MessageHandler, public Ea::NpcHandler
void cooking(const CookingType::Type type,
const int nameId) const override final;
+ void repair(const int index) const override final;
+
int getNpc(Net::MessageIn &msg) override final;
protected:
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index 941b8f6fc..b26eb523c 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -316,6 +316,7 @@
#define CMSG_NPC_COMPLETE_PROGRESS_BAR 0x02f1
#define CMSG_NPC_PRODUCE_MIX 0x018e
#define CMSG_NPC_COOKING 0x025b
+#define CMSG_NPC_REPAIR 0x01fd
#define CMSG_PLAYER_MAPMOVE 0x0140
#define CMSG_REMOVE_OPTION 0x012a
#define CMSG_PLAYER_SET_MEMO 0x011d
diff --git a/src/net/npchandler.h b/src/net/npchandler.h
index 33f0ae3a0..9bf8565e7 100644
--- a/src/net/npchandler.h
+++ b/src/net/npchandler.h
@@ -79,6 +79,8 @@ class NpcHandler notfinal
virtual void cooking(const CookingType::Type type,
const int nameId) const = 0;
+
+ virtual void repair(const int index) const = 0;
};
} // namespace Net
diff --git a/src/net/tmwa/npchandler.cpp b/src/net/tmwa/npchandler.cpp
index 8e691a808..c8a740fde 100644
--- a/src/net/tmwa/npchandler.cpp
+++ b/src/net/tmwa/npchandler.cpp
@@ -219,6 +219,10 @@ void NpcHandler::cooking(const CookingType::Type type,
{
}
+void NpcHandler::repair(const int index A_UNUSED) const
+{
+}
+
int NpcHandler::getNpc(Net::MessageIn &msg)
{
if (msg.getId() == SMSG_NPC_CHOICE
diff --git a/src/net/tmwa/npchandler.h b/src/net/tmwa/npchandler.h
index 8cb2a531a..e7cfb7fb8 100644
--- a/src/net/tmwa/npchandler.h
+++ b/src/net/tmwa/npchandler.h
@@ -80,6 +80,8 @@ class NpcHandler final : public MessageHandler, public Ea::NpcHandler
void cooking(const CookingType::Type type,
const int nameId) const;
+
+ void repair(const int index) const override final;
};
} // namespace TmwAthena