From 462867b1d99cf63a27566449cbf8f0feda7f1ec6 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 28 Oct 2013 14:30:31 +0300 Subject: Revert "Remove setMap from being constructor." This reverts commit 9cf563fa7f4059bfddd82efdaa89df2ed07a6d7c. --- src/actormanager.cpp | 4 ++-- src/being/being.cpp | 4 +++- src/being/being.h | 4 +++- src/being/localplayer.cpp | 2 +- src/gui/windows/charcreatedialog.cpp | 3 ++- src/gui/windows/npcdialog.cpp | 2 +- 6 files changed, 12 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/actormanager.cpp b/src/actormanager.cpp index 694b1de36..f37cc9a18 100644 --- a/src/actormanager.cpp +++ b/src/actormanager.cpp @@ -238,8 +238,8 @@ Being *ActorManager::createBeing(const int id, const ActorSprite::Type type, const uint16_t subtype) { - Being *const being = new Being(id, type, subtype); - being->setMap(mMap); + Being *const being = new Being(id, type, subtype, mMap); + mActors.insert(being); return being; } diff --git a/src/being/being.cpp b/src/being/being.cpp index 4745f516e..fdd706bbe 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -99,7 +99,8 @@ std::list beingInfoCache; typedef std::map::const_iterator GuildsMapCIter; typedef std::map::const_iterator IntMapCIter; -Being::Being(const int id, const Type type, const uint16_t subtype) : +Being::Being(const int id, const Type type, const uint16_t subtype, + Map *const map) : ActorSprite(id), mNextSound(), mInfo(BeingInfo::unknown), @@ -189,6 +190,7 @@ Being::Being(const int id, const Type type, const uint16_t subtype) : mSpriteHide[f] = 0; } + setMap(map); setSubtype(subtype, 0); if (mType == PLAYER) diff --git a/src/being/being.h b/src/being/being.h index 90a351af0..313a92c2d 100644 --- a/src/being/being.h +++ b/src/being/being.h @@ -155,8 +155,10 @@ class Being : public ActorSprite, public ConfigListener * * @param id a unique being id * @param subtype partly determines the type of the being + * @param map the map the being is on */ - Being(const int id, const Type type, const uint16_t subtype); + Being(const int id, const Type type, const uint16_t subtype, + Map *const map); A_DELETE_COPY(Being) diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index 17424e6a8..6df48dec7 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -88,7 +88,7 @@ extern MiniStatusWindow *miniStatusWindow; extern SkillDialog *skillDialog; LocalPlayer::LocalPlayer(const int id, const int subtype) : - Being(id, PLAYER, subtype), + Being(id, PLAYER, subtype, nullptr), mGMLevel(0), mInvertDirection(0), mCrazyMoveType(config.getIntValue("crazyMoveType")), diff --git a/src/gui/windows/charcreatedialog.cpp b/src/gui/windows/charcreatedialog.cpp index d23a40f7a..5164c89b6 100644 --- a/src/gui/windows/charcreatedialog.cpp +++ b/src/gui/windows/charcreatedialog.cpp @@ -121,7 +121,8 @@ CharCreateDialog::CharCreateDialog(CharSelectDialog *const parent, mLook(0), mMinLook(CharDB::getMinLook()), mMaxLook(CharDB::getMaxLook()), - mPlayer(new Being(0, ActorSprite::PLAYER, static_cast(mRace))), + mPlayer(new Being(0, ActorSprite::PLAYER, static_cast(mRace), + nullptr)), mPlayerBox(new PlayerBox(mPlayer, "charcreate_playerbox.xml", "charcreate_selectedplayerbox.xml")), mHairStyle(0), diff --git a/src/gui/windows/npcdialog.cpp b/src/gui/windows/npcdialog.cpp index 9192b66b9..3b5d0d772 100644 --- a/src/gui/windows/npcdialog.cpp +++ b/src/gui/windows/npcdialog.cpp @@ -851,7 +851,7 @@ void NpcDialog::showAvatar(const uint16_t avatarId) if (needShow) { delete mAvatarBeing; - mAvatarBeing = new Being(0, ActorSprite::AVATAR, avatarId); + mAvatarBeing = new Being(0, ActorSprite::AVATAR, avatarId, nullptr); mPlayerBox->setPlayer(mAvatarBeing); if (!mAvatarBeing->empty()) { -- cgit v1.2.3-70-g09d2