summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/net')
-rw-r--r--src/net/eathena/homunculushandler.cpp9
-rw-r--r--src/net/eathena/homunculushandler.h2
-rw-r--r--src/net/eathena/mercenaryhandler.cpp9
-rw-r--r--src/net/eathena/mercenaryhandler.h2
-rw-r--r--src/net/eathena/protocol.h1
-rw-r--r--src/net/homunculushandler.h2
-rw-r--r--src/net/mercenaryhandler.h2
-rw-r--r--src/net/tmwa/homunculushandler.cpp4
-rw-r--r--src/net/tmwa/homunculushandler.h2
-rw-r--r--src/net/tmwa/mercenaryhandler.cpp4
-rw-r--r--src/net/tmwa/mercenaryhandler.h2
11 files changed, 39 insertions, 0 deletions
diff --git a/src/net/eathena/homunculushandler.cpp b/src/net/eathena/homunculushandler.cpp
index 567bad3e4..54c64cf59 100644
--- a/src/net/eathena/homunculushandler.cpp
+++ b/src/net/eathena/homunculushandler.cpp
@@ -185,4 +185,13 @@ void HomunculusHandler::setName(const std::string &name) const
outMsg.writeString(name, 24, "name");
}
+void HomunculusHandler::moveToMaster() const
+{
+ const int id = PlayerInfo::getHomunculusId();
+ if (!id)
+ return;
+ createOutPacket(CMSG_HOMMERC_MOVE_TO_MASTER);
+ outMsg.writeInt32(id);
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/homunculushandler.h b/src/net/eathena/homunculushandler.h
index 77cffb3d5..627561655 100644
--- a/src/net/eathena/homunculushandler.h
+++ b/src/net/eathena/homunculushandler.h
@@ -41,6 +41,8 @@ class HomunculusHandler final : public MessageHandler,
void setName(const std::string &name) const override final;
+ void moveToMaster() const override final;
+
protected:
void processHomunculusSkills(Net::MessageIn &msg);
diff --git a/src/net/eathena/mercenaryhandler.cpp b/src/net/eathena/mercenaryhandler.cpp
index 541f62cf7..dae3f1836 100644
--- a/src/net/eathena/mercenaryhandler.cpp
+++ b/src/net/eathena/mercenaryhandler.cpp
@@ -186,4 +186,13 @@ void MercenaryHandler::fire()
outMsg.writeInt8(2, "action"); // delete
}
+void MercenaryHandler::moveToMaster() const
+{
+ const int id = PlayerInfo::getMercenaryId();
+ if (!id)
+ return;
+ createOutPacket(CMSG_HOMMERC_MOVE_TO_MASTER);
+ outMsg.writeInt32(id);
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/mercenaryhandler.h b/src/net/eathena/mercenaryhandler.h
index 7d99ea197..197efdfc0 100644
--- a/src/net/eathena/mercenaryhandler.h
+++ b/src/net/eathena/mercenaryhandler.h
@@ -43,6 +43,8 @@ class MercenaryHandler final : public MessageHandler,
void fire() override final;
+ void moveToMaster() const override final;
+
protected:
void processMercenaryUpdate(Net::MessageIn &msg);
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index ad53b9269..698bddf59 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -418,6 +418,7 @@
#define CMSG_PET_MENU_ACTION 0x01a1
#define CMSG_HOMUNCULUS_SET_NAME 0x0231
+#define CMSG_HOMMERC_MOVE_TO_MASTER 0x0234
#define CMSG_DORI_DORI 0x01e7
#define CMSG_EXPLOSION_SPIRITS 0x01ed
diff --git a/src/net/homunculushandler.h b/src/net/homunculushandler.h
index ded676341..09ee9e48a 100644
--- a/src/net/homunculushandler.h
+++ b/src/net/homunculushandler.h
@@ -35,6 +35,8 @@ class HomunculusHandler notfinal
{ }
virtual void setName(const std::string &name) const = 0;
+
+ virtual void moveToMaster() const = 0;
};
} // namespace Net
diff --git a/src/net/mercenaryhandler.h b/src/net/mercenaryhandler.h
index ab7d4d426..85e72b02f 100644
--- a/src/net/mercenaryhandler.h
+++ b/src/net/mercenaryhandler.h
@@ -37,6 +37,8 @@ class MercenaryHandler notfinal
virtual void handleMercenaryMessage(const int cmd) = 0;
virtual void fire() = 0;
+
+ virtual void moveToMaster() const = 0;
};
} // namespace Net
diff --git a/src/net/tmwa/homunculushandler.cpp b/src/net/tmwa/homunculushandler.cpp
index d79e5289c..b0760454e 100644
--- a/src/net/tmwa/homunculushandler.cpp
+++ b/src/net/tmwa/homunculushandler.cpp
@@ -46,4 +46,8 @@ void HomunculusHandler::setName(const std::string &name A_UNUSED) const
{
}
+void HomunculusHandler::moveToMaster() const
+{
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/homunculushandler.h b/src/net/tmwa/homunculushandler.h
index c67b52f89..d5c4d1b72 100644
--- a/src/net/tmwa/homunculushandler.h
+++ b/src/net/tmwa/homunculushandler.h
@@ -39,6 +39,8 @@ class HomunculusHandler final : public MessageHandler,
void handleMessage(Net::MessageIn &msg) override final;
void setName(const std::string &name) const override final;
+
+ void moveToMaster() const override final;
};
} // namespace TmwAthena
diff --git a/src/net/tmwa/mercenaryhandler.cpp b/src/net/tmwa/mercenaryhandler.cpp
index 94f8c7436..64f91dc1a 100644
--- a/src/net/tmwa/mercenaryhandler.cpp
+++ b/src/net/tmwa/mercenaryhandler.cpp
@@ -50,4 +50,8 @@ void MercenaryHandler::fire()
{
}
+void MercenaryHandler::moveToMaster() const
+{
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/mercenaryhandler.h b/src/net/tmwa/mercenaryhandler.h
index 483884d77..b9f8d9c07 100644
--- a/src/net/tmwa/mercenaryhandler.h
+++ b/src/net/tmwa/mercenaryhandler.h
@@ -41,6 +41,8 @@ class MercenaryHandler final : public MessageHandler,
void handleMercenaryMessage(const int cmd) override final;
void fire() override final;
+
+ void moveToMaster() const override final;
};
} // namespace TmwAthena