summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/being/actor.cpp6
-rw-r--r--src/being/actorsprite.cpp3
-rw-r--r--src/being/localplayer.cpp6
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();