summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/being/actorsprite.h2
-rw-r--r--src/particle/particlevector.cpp12
-rw-r--r--src/particle/particlevector.h2
3 files changed, 15 insertions, 1 deletions
diff --git a/src/being/actorsprite.h b/src/being/actorsprite.h
index c06f1c983..5373b30dc 100644
--- a/src/being/actorsprite.h
+++ b/src/being/actorsprite.h
@@ -191,7 +191,7 @@ class ActorSprite notfinal : public CompoundSprite, public Actor
size_t getParticlesCount() const
{
- return mStatusParticleEffects.size() +
+ return mStatusParticleEffects.usedSize() +
mChildParticleEffects.size();
}
diff --git a/src/particle/particlevector.cpp b/src/particle/particlevector.cpp
index d0594a2dd..a38db6d01 100644
--- a/src/particle/particlevector.cpp
+++ b/src/particle/particlevector.cpp
@@ -95,3 +95,15 @@ void ParticleVector::moveTo(const float x, const float y)
}
}
}
+
+size_t ParticleVector::usedSize() const
+{
+ size_t cnt = 0;
+ for (std::vector<Particle *>::const_iterator it = mIndexedElements.begin();
+ it != mIndexedElements.end(); ++it)
+ {
+ if (*it)
+ cnt ++;
+ }
+ return cnt;
+}
diff --git a/src/particle/particlevector.h b/src/particle/particlevector.h
index 68589e4e1..d8ec917c9 100644
--- a/src/particle/particlevector.h
+++ b/src/particle/particlevector.h
@@ -62,6 +62,8 @@ class ParticleVector final : public ParticleContainer
size_t size() const
{ return mIndexedElements.size(); }
+ size_t usedSize() const;
+
protected:
std::vector<Particle *> mIndexedElements;
};