diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-09-21 15:28:25 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-09-21 15:28:25 +0300 |
commit | 691928f93da5874e62171f569baeb7e3c73e2c16 (patch) | |
tree | 453433ca1776f6e0b0670bcd02c483406b55c11b | |
parent | 5ce3ea5e8377a1f9898dc08b6cc7f3a9679f4232 (diff) | |
download | manaplus-691928f93da5874e62171f569baeb7e3c73e2c16.tar.gz manaplus-691928f93da5874e62171f569baeb7e3c73e2c16.tar.bz2 manaplus-691928f93da5874e62171f569baeb7e3c73e2c16.tar.xz manaplus-691928f93da5874e62171f569baeb7e3c73e2c16.zip |
Restore all usable mercenary stats if it respawned.
-rw-r--r-- | src/being/mercenaryinfo.h | 8 | ||||
-rw-r--r-- | src/being/playerinfo.cpp | 2 | ||||
-rw-r--r-- | 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); } } |