summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/pethandler.cpp31
-rw-r--r--src/net/eathena/pethandler.h10
-rw-r--r--src/net/eathena/protocol.h1
3 files changed, 42 insertions, 0 deletions
diff --git a/src/net/eathena/pethandler.cpp b/src/net/eathena/pethandler.cpp
index baf6d1056..c565cd280 100644
--- a/src/net/eathena/pethandler.cpp
+++ b/src/net/eathena/pethandler.cpp
@@ -282,4 +282,35 @@ void PetHandler::processPetFood(Net::MessageIn &msg)
msg.readInt16("food id");
}
+void PetHandler::requestStatus() const
+{
+ createOutPacket(CMSG_PET_MENU_ACTION);
+ outMsg.writeInt8(0);
+}
+
+void PetHandler::feed() const
+{
+ createOutPacket(CMSG_PET_MENU_ACTION);
+ outMsg.writeInt8(1);
+}
+
+void PetHandler::dropLoot() const
+{
+ createOutPacket(CMSG_PET_MENU_ACTION);
+ outMsg.writeInt8(2); // performance
+}
+
+void PetHandler::returnToEgg() const
+{
+ createOutPacket(CMSG_PET_MENU_ACTION);
+ outMsg.writeInt8(3);
+ PlayerInfo::setPet(nullptr);
+}
+
+void PetHandler::unequip() const
+{
+ createOutPacket(CMSG_PET_MENU_ACTION);
+ outMsg.writeInt8(4);
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/pethandler.h b/src/net/eathena/pethandler.h
index bd6b94c64..3f98b619b 100644
--- a/src/net/eathena/pethandler.h
+++ b/src/net/eathena/pethandler.h
@@ -57,6 +57,16 @@ class PetHandler final : public MessageHandler, public Net::PetHandler
void setName(const std::string &name) const override final;
+ void requestStatus() const override final;
+
+ void feed() const override final;
+
+ void dropLoot() const override final;
+
+ void returnToEgg() const override final;
+
+ void unequip() const override final;
+
protected:
void processPetRoulette(Net::MessageIn &msg);
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index ffb76bc99..188599ac0 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -409,6 +409,7 @@
#define CMSG_PET_REQUEST_STATE 0x01a9
#define CMSG_PET_SET_NAME 0x01a5
#define CMSG_PET_SELECT_EGG 0x01a7
+#define CMSG_PET_MENU_ACTION 0x01a1
#define CMSG_DORI_DORI 0x01e7
#define CMSG_EXPLOSION_SPIRITS 0x01ed