summaryrefslogtreecommitdiff
path: root/src/being/playerinfo.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-02-23 00:20:47 +0300
committerAndrei Karas <akaras@inbox.ru>2015-02-23 00:21:10 +0300
commitdd1c7257b760f4c97c84e66d4ebb4f32fff8a499 (patch)
treeba75dfbdff9b7f7279fd20ecf9a78fc6d959cd03 /src/being/playerinfo.cpp
parent839cb18574b493cfbf66c03aa031bd040b2a7972 (diff)
downloadplus-dd1c7257b760f4c97c84e66d4ebb4f32fff8a499.tar.gz
plus-dd1c7257b760f4c97c84e66d4ebb4f32fff8a499.tar.bz2
plus-dd1c7257b760f4c97c84e66d4ebb4f32fff8a499.tar.xz
plus-dd1c7257b760f4c97c84e66d4ebb4f32fff8a499.zip
eathena: fix crash if pet went outside of visible area.
Diffstat (limited to 'src/being/playerinfo.cpp')
-rw-r--r--src/being/playerinfo.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/being/playerinfo.cpp b/src/being/playerinfo.cpp
index 23a55f6fe..6b3bb2703 100644
--- a/src/being/playerinfo.cpp
+++ b/src/being/playerinfo.cpp
@@ -64,7 +64,7 @@ Equipment *mEquipment = nullptr;
MercenaryInfo *mMercenary = nullptr;
HomunculusInfo *mHomunculus = nullptr;
PetInfo *mPet = nullptr;
-Being *mPetBeing = nullptr;
+int mPetBeingId = 0;
GuildPositionFlags::Type mGuildPositionFlags = GuildPositionFlags::None;
bool mTrading = false;
@@ -395,7 +395,7 @@ void deinit()
{
clearInventory();
delete2(mMercenary);
- mPetBeing = nullptr;
+ mPetBeingId = 0;
}
void loadData()
@@ -408,7 +408,7 @@ void loadData()
void clear()
{
mData.mSkills.clear();
- mPetBeing = nullptr;
+ mPetBeingId = 0;
}
bool isTalking()
@@ -508,7 +508,10 @@ void setPet(PetInfo *const info)
void setPetBeing(Being *const being)
{
- mPetBeing = being;
+ if (being)
+ mPetBeingId = being->getId();
+ else
+ mPetBeingId = 0;
if (!being || !mPet)
return;
being->setName(mPet->name);
@@ -521,9 +524,9 @@ PetInfo *getPet()
return mPet;
}
-Being *getPetBeing()
+int getPetBeingId()
{
- return mPetBeing;
+ return mPetBeingId;
}
void setHomunculus(HomunculusInfo *const info)