summaryrefslogtreecommitdiff
path: root/src/particle/particle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/particle/particle.cpp')
-rw-r--r--src/particle/particle.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/particle/particle.cpp b/src/particle/particle.cpp
index 4e7b154c0..a04cee6f3 100644
--- a/src/particle/particle.cpp
+++ b/src/particle/particle.cpp
@@ -22,8 +22,11 @@
#include "particle/particle.h"
+#include "actormanager.h"
#include "logger.h"
+#include "being/actorsprite.h"
+
#include "particle/animationparticle.h"
#include "particle/particleemitter.h"
#include "particle/rotationalparticle.h"
@@ -61,6 +64,7 @@ Particle::Particle() :
mType(ParticleType::Normal),
mAnimation(nullptr),
mImage(nullptr),
+ mActor(BeingId_zero),
mChildEmitters(),
mChildParticles(),
mChildMoveParticles(),
@@ -82,6 +86,13 @@ Particle::Particle() :
Particle::~Particle()
{
+ if (mActor != BeingId_zero &&
+ actorManager)
+ {
+ ActorSprite *const actor = actorManager->findActor(mActor);
+ if (actor)
+ actor->controlParticleDeleted(this);
+ }
// Delete child emitters and child particles
clear();
delete2(mAnimation);