From 94a3b513dda2189a49f8f5e0d131b9f644d60cef Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 24 Sep 2014 21:40:11 +0300 Subject: eathena: add packet SMSG_HOMUNCULUS_DATA 0x0230. --- src/being/playerinfo.cpp | 22 ++++++++++++++++++++++ src/being/playerinfo.h | 7 +++++++ 2 files changed, 29 insertions(+) (limited to 'src/being') diff --git a/src/being/playerinfo.cpp b/src/being/playerinfo.cpp index 6c4e1c92d..4f40b2c58 100644 --- a/src/being/playerinfo.cpp +++ b/src/being/playerinfo.cpp @@ -26,6 +26,7 @@ #include "inventory.h" #include "being/attributes.h" +#include "being/homunculusinfo.h" #include "being/localplayer.h" #include "being/mercenaryinfo.h" #include "being/petinfo.h" @@ -57,6 +58,7 @@ int mCharId = 0; Inventory *mInventory = nullptr; Equipment *mEquipment = nullptr; MercenaryInfo *mMercenary = nullptr; +HomunculusInfo *mHomunculus = nullptr; PetInfo *mPet = nullptr; bool mTrading = false; @@ -511,4 +513,24 @@ PetInfo *getPet() return mPet; } +void setHomunculus(HomunculusInfo *const info) +{ + if (mHomunculus) + delete mHomunculus; + mHomunculus = info; +} + +void setHomunculusBeing(Being *const being) +{ + if (!being || !mPet) + return; + being->setName(mHomunculus->name); + being->setOwner(localPlayer); +} + +HomunculusInfo *getHomunculus() +{ + return mHomunculus; +} + } // namespace PlayerInfo diff --git a/src/being/playerinfo.h b/src/being/playerinfo.h index 23fb41731..aa2251bbe 100644 --- a/src/being/playerinfo.h +++ b/src/being/playerinfo.h @@ -63,6 +63,7 @@ class FloorItem; class Inventory; class Item; +struct HomunculusInfo; struct MercenaryInfo; struct PetInfo; @@ -249,6 +250,12 @@ namespace PlayerInfo void setPet(PetInfo *const info); void setPetBeing(Being *const being); + + HomunculusInfo *getHomunculus(); + + void setHomunculus(HomunculusInfo *const info); + + void setHomunculusBeing(Being *const being); } // namespace PlayerInfo #endif // BEING_PLAYERINFO_H -- cgit v1.2.3-60-g2f50