summaryrefslogtreecommitdiff
path: root/src/being
diff options
context:
space:
mode:
Diffstat (limited to 'src/being')
-rw-r--r--src/being/playerinfo.cpp22
-rw-r--r--src/being/playerinfo.h7
2 files changed, 29 insertions, 0 deletions
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