diff options
-rw-r--r-- | src/being/actor.cpp | 6 | ||||
-rw-r--r-- | src/being/actorsprite.cpp | 3 | ||||
-rw-r--r-- | 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(); |