From 109f2df166a15261e2a43f1a73c7f4aeeb13b681 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 4 Aug 2016 00:32:09 +0300 Subject: Remember id of own elemental. --- src/being/playerinfo.cpp | 11 +++++++++++ src/being/playerinfo.h | 4 ++++ src/net/eathena/elementalrecv.cpp | 3 ++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/being/playerinfo.cpp b/src/being/playerinfo.cpp index ff69a0d34..ea1ee8388 100644 --- a/src/being/playerinfo.cpp +++ b/src/being/playerinfo.cpp @@ -59,6 +59,7 @@ std::string mRoomName; Equipment *mEquipment = nullptr; BeingId mPetBeingId = BeingId_zero; GuildPositionFlags::Type mGuildPositionFlags = GuildPositionFlags::None; +BeingId mElementalId = BeingId_zero; Trading mTrading = Trading_false; bool mVending = false; @@ -521,6 +522,16 @@ void setMercenaryBeing(Being *const being) being->setAttackRange(mMercenary->range); } +void setElemental(const BeingId id) +{ + mElementalId = id; +} + +BeingId getElementalId() +{ + return mElementalId; +} + MercenaryInfo *getMercenary() { return mMercenary; diff --git a/src/being/playerinfo.h b/src/being/playerinfo.h index d7c1be8fa..2991d0adc 100644 --- a/src/being/playerinfo.h +++ b/src/being/playerinfo.h @@ -269,10 +269,14 @@ namespace PlayerInfo void setHomunculusBeing(Being *const being); + void setElemental(const BeingId id); + BeingId getHomunculusId(); BeingId getMercenaryId(); + BeingId getElementalId(); + void updateMoveAI(); void updateAttackAi(const BeingId targetId, diff --git a/src/net/eathena/elementalrecv.cpp b/src/net/eathena/elementalrecv.cpp index 57f78619a..220364acc 100644 --- a/src/net/eathena/elementalrecv.cpp +++ b/src/net/eathena/elementalrecv.cpp @@ -59,7 +59,7 @@ void ElementalRecv::processElementalUpdateStatus(Net::MessageIn &msg) void ElementalRecv::processElementalInfo(Net::MessageIn &msg) { - msg.readInt32("elemental id"); + const BeingId id = msg.readBeingId("elemental id"); PlayerInfo::setStatBase(Attributes::ELEMENTAL_HP, msg.readInt32("hp")); PlayerInfo::setStatBase(Attributes::ELEMENTAL_MAX_HP, @@ -68,6 +68,7 @@ void ElementalRecv::processElementalInfo(Net::MessageIn &msg) msg.readInt32("sp")); PlayerInfo::setStatBase(Attributes::ELEMENTAL_MAX_MP, msg.readInt32("max sp")); + PlayerInfo::setElemental(id); } } // namespace EAthena -- cgit v1.2.3-60-g2f50