From 691928f93da5874e62171f569baeb7e3c73e2c16 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 21 Sep 2014 15:28:25 +0300 Subject: Restore all usable mercenary stats if it respawned. --- src/being/mercenaryinfo.h | 8 ++++++-- src/being/playerinfo.cpp | 2 ++ src/net/eathena/mercenaryhandler.cpp | 4 ++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/being/mercenaryinfo.h b/src/being/mercenaryinfo.h index 6bb9fd84d..9aa1bee66 100644 --- a/src/being/mercenaryinfo.h +++ b/src/being/mercenaryinfo.h @@ -26,14 +26,18 @@ struct MercenaryInfo final { MercenaryInfo() : + name(), id(0), - name() + level(0), + range(0) { } A_DELETE_COPY(MercenaryInfo) - int id; std::string name; + int id; + int level; + int range; }; #endif // BEING_MERCENARYINFO_H diff --git a/src/being/playerinfo.cpp b/src/being/playerinfo.cpp index ba36d59a3..e23c4c1b5 100644 --- a/src/being/playerinfo.cpp +++ b/src/being/playerinfo.cpp @@ -479,6 +479,8 @@ void setMercenaryBeing(Being *const being) return; being->setName(mMercenary->name); being->setOwner(localPlayer); + being->setLevel(mMercenary->level); + being->setAttackRange(mMercenary->range); } MercenaryInfo *getMercenary() diff --git a/src/net/eathena/mercenaryhandler.cpp b/src/net/eathena/mercenaryhandler.cpp index d197b6101..702319c01 100644 --- a/src/net/eathena/mercenaryhandler.cpp +++ b/src/net/eathena/mercenaryhandler.cpp @@ -115,10 +115,10 @@ void MercenaryHandler::processMercenaryInfo(Net::MessageIn &msg) MercenaryInfo *const mercenary = new MercenaryInfo; mercenary->id = dstBeing->getId(); mercenary->name = name; + mercenary->level = level; + mercenary->range = range; PlayerInfo::setMercenary(mercenary); PlayerInfo::setMercenaryBeing(dstBeing); - dstBeing->setLevel(level); - dstBeing->setAttackRange(range); } } -- cgit v1.2.3-60-g2f50