diff options
-rw-r--r-- | src/net/eathena/homunculushandler.cpp | 11 | ||||
-rw-r--r-- | src/net/eathena/homunculushandler.h | 2 | ||||
-rw-r--r-- | src/net/eathena/mercenaryhandler.cpp | 11 | ||||
-rw-r--r-- | src/net/eathena/mercenaryhandler.h | 2 | ||||
-rw-r--r-- | src/net/eathena/protocol.h | 1 | ||||
-rw-r--r-- | src/net/homunculushandler.h | 2 | ||||
-rw-r--r-- | src/net/mercenaryhandler.h | 2 | ||||
-rw-r--r-- | src/net/tmwa/homunculushandler.cpp | 5 | ||||
-rw-r--r-- | src/net/tmwa/homunculushandler.h | 2 | ||||
-rw-r--r-- | src/net/tmwa/mercenaryhandler.cpp | 5 | ||||
-rw-r--r-- | src/net/tmwa/mercenaryhandler.h | 2 |
11 files changed, 45 insertions, 0 deletions
diff --git a/src/net/eathena/homunculushandler.cpp b/src/net/eathena/homunculushandler.cpp index 320af387e..bbddc4412 100644 --- a/src/net/eathena/homunculushandler.cpp +++ b/src/net/eathena/homunculushandler.cpp @@ -204,4 +204,15 @@ void HomunculusHandler::move(const int x, const int y) const outMsg.writeCoordinates(x, y, 0U); } +void HomunculusHandler::attack(const int targetId, const bool keep) const +{ + const int id = PlayerInfo::getHomunculusId(); + if (!id) + return; + createOutPacket(CMSG_HOMMERC_ATTACK); + outMsg.writeInt32(id); + outMsg.writeInt32(targetId); + outMsg.writeInt8(keep ? 1 : 0); +} + } // namespace EAthena diff --git a/src/net/eathena/homunculushandler.h b/src/net/eathena/homunculushandler.h index 01cb0586f..53ad59f4a 100644 --- a/src/net/eathena/homunculushandler.h +++ b/src/net/eathena/homunculushandler.h @@ -45,6 +45,8 @@ class HomunculusHandler final : public MessageHandler, void move(const int x, const int y) const override final; + void attack(const int targetId, const bool keep) const override final; + protected: void processHomunculusSkills(Net::MessageIn &msg); diff --git a/src/net/eathena/mercenaryhandler.cpp b/src/net/eathena/mercenaryhandler.cpp index 1ec3628a8..6ac4072c5 100644 --- a/src/net/eathena/mercenaryhandler.cpp +++ b/src/net/eathena/mercenaryhandler.cpp @@ -205,4 +205,15 @@ void MercenaryHandler::move(const int x, const int y) const outMsg.writeCoordinates(x, y, 0U); } +void MercenaryHandler::attack(const int targetId, const bool keep) const +{ + const int id = PlayerInfo::getHomunculusId(); + if (!id) + return; + createOutPacket(CMSG_HOMMERC_ATTACK); + outMsg.writeInt32(id); + outMsg.writeInt32(targetId); + outMsg.writeInt8(keep ? 1 : 0); +} + } // namespace EAthena diff --git a/src/net/eathena/mercenaryhandler.h b/src/net/eathena/mercenaryhandler.h index 06fdd7cec..6ef3c02f5 100644 --- a/src/net/eathena/mercenaryhandler.h +++ b/src/net/eathena/mercenaryhandler.h @@ -47,6 +47,8 @@ class MercenaryHandler final : public MessageHandler, void move(const int x, const int y) const override final; + void attack(const int targetId, const bool keep) const override final; + protected: void processMercenaryUpdate(Net::MessageIn &msg); diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index c1df2d1e6..65257b904 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -420,6 +420,7 @@ #define CMSG_HOMUNCULUS_SET_NAME 0x0231 #define CMSG_HOMMERC_MOVE_TO_MASTER 0x0234 #define CMSG_HOMMERC_MOVE_TO 0x0232 +#define CMSG_HOMMERC_ATTACK 0x0233 #define CMSG_DORI_DORI 0x01e7 #define CMSG_EXPLOSION_SPIRITS 0x01ed diff --git a/src/net/homunculushandler.h b/src/net/homunculushandler.h index 2d7bb7d0d..a5db18ba8 100644 --- a/src/net/homunculushandler.h +++ b/src/net/homunculushandler.h @@ -39,6 +39,8 @@ class HomunculusHandler notfinal virtual void moveToMaster() const = 0; virtual void move(const int x, const int y) const = 0; + + virtual void attack(const int targetId, const bool keep) const = 0; }; } // namespace Net diff --git a/src/net/mercenaryhandler.h b/src/net/mercenaryhandler.h index ef1f60a45..8fcc4bb3a 100644 --- a/src/net/mercenaryhandler.h +++ b/src/net/mercenaryhandler.h @@ -41,6 +41,8 @@ class MercenaryHandler notfinal virtual void moveToMaster() const = 0; virtual void move(const int x, const int y) const = 0; + + virtual void attack(const int targetId, const bool keep) const = 0; }; } // namespace Net diff --git a/src/net/tmwa/homunculushandler.cpp b/src/net/tmwa/homunculushandler.cpp index 598aed30e..727053e17 100644 --- a/src/net/tmwa/homunculushandler.cpp +++ b/src/net/tmwa/homunculushandler.cpp @@ -54,4 +54,9 @@ void HomunculusHandler::move(const int x A_UNUSED, const int y A_UNUSED) const { } +void HomunculusHandler::attack(const int targetId A_UNUSED, + const bool keep A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/homunculushandler.h b/src/net/tmwa/homunculushandler.h index 41a3e3426..2b9935325 100644 --- a/src/net/tmwa/homunculushandler.h +++ b/src/net/tmwa/homunculushandler.h @@ -43,6 +43,8 @@ class HomunculusHandler final : public MessageHandler, void moveToMaster() const override final; void move(const int x, const int y) const override final; + + void attack(const int targetId, const bool keep) const override final; }; } // namespace TmwAthena diff --git a/src/net/tmwa/mercenaryhandler.cpp b/src/net/tmwa/mercenaryhandler.cpp index de4ca5f7e..1497a0789 100644 --- a/src/net/tmwa/mercenaryhandler.cpp +++ b/src/net/tmwa/mercenaryhandler.cpp @@ -58,4 +58,9 @@ void MercenaryHandler::move(const int x A_UNUSED, const int y A_UNUSED) const { } +void MercenaryHandler::attack(const int targetId A_UNUSED, + const bool keep A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/mercenaryhandler.h b/src/net/tmwa/mercenaryhandler.h index e327247df..098f7aac3 100644 --- a/src/net/tmwa/mercenaryhandler.h +++ b/src/net/tmwa/mercenaryhandler.h @@ -45,6 +45,8 @@ class MercenaryHandler final : public MessageHandler, void moveToMaster() const override final; void move(const int x, const int y) const override final; + + void attack(const int targetId, const bool keep) const override final; }; } // namespace TmwAthena |