From 2a363e453a8ed7e1d19682d889c3a62e9e71a7d2 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 17 Oct 2013 16:34:06 +0300 Subject: dont call setMap from destructors. --- src/being/actor.cpp | 6 +++++- src/being/actorsprite.cpp | 3 ++- src/being/localplayer.cpp | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/being/actor.cpp b/src/being/actor.cpp index f32105682..62ab4fc83 100644 --- a/src/being/actor.cpp +++ b/src/being/actor.cpp @@ -35,7 +35,11 @@ Actor::Actor(): Actor::~Actor() { - setMap(nullptr); + if (mMap) + { + mMap->removeActor(mMapActor); + mMap = nullptr; + } } void Actor::setMap(Map *const map) diff --git a/src/being/actorsprite.cpp b/src/being/actorsprite.cpp index 162d5d661..7d4e7d10e 100644 --- a/src/being/actorsprite.cpp +++ b/src/being/actorsprite.cpp @@ -59,7 +59,8 @@ ActorSprite::ActorSprite(const int id) : ActorSprite::~ActorSprite() { - setMap(nullptr); + mChildParticleEffects.clear(); + mMustResetParticles = true; mUsedTargetCursor = nullptr; diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index ee77c9831..b1f577197 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -206,6 +206,12 @@ LocalPlayer::~LocalPlayer() config.removeListeners(this); serverConfig.removeListener("enableBuggyServers", this); + navigateClean(); + mCrossX = 0; + mCrossY = 0; + + updateNavigateList(); + if (mAwayDialog) { soundManager.volumeRestore(); -- cgit v1.2.3-70-g09d2