diff options
Diffstat (limited to 'src/particle')
-rw-r--r-- | src/particle/particlelist.cpp | 7 | ||||
-rw-r--r-- | src/particle/particlelist.h | 4 | ||||
-rw-r--r-- | src/particle/particlevector.h | 3 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/particle/particlelist.cpp b/src/particle/particlelist.cpp index 5e3dc4b5b..0d2a2f195 100644 --- a/src/particle/particlelist.cpp +++ b/src/particle/particlelist.cpp @@ -32,7 +32,8 @@ typedef std::list<Particle *>::const_iterator ParticleListCIter; ParticleList::ParticleList(ParticleContainer *const parent, const bool delParent) : ParticleContainer(parent, delParent), - mElements() + mElements(), + mSize(0U) {} ParticleList::~ParticleList() @@ -46,6 +47,7 @@ void ParticleList::addLocally(Particle *const particle) // The effect may not die without the beings permission or we segfault particle->disableAutoDelete(); mElements.push_back(particle); + mSize ++; } } @@ -60,6 +62,7 @@ void ParticleList::removeLocally(const Particle *const particle) p->kill(); p->prepareToDie(); it = mElements.erase(it); + mSize --; } else { @@ -74,6 +77,7 @@ void ParticleList::clearLocally() (*it)->kill(); mElements.clear(); + mSize = 0U; } void ParticleList::moveTo(const float x, const float y) @@ -89,6 +93,7 @@ void ParticleList::moveTo(const float x, const float y) { p->kill(); it = mElements.erase(it); + mSize --; } else { diff --git a/src/particle/particlelist.h b/src/particle/particlelist.h index 3da542b37..6d27903cd 100644 --- a/src/particle/particlelist.h +++ b/src/particle/particlelist.h @@ -58,8 +58,12 @@ class ParticleList final : public ParticleContainer void moveTo(const float x, const float y) override final; + size_t size() const + { return mSize; } + protected: std::list<Particle *> mElements; /**< Contained particle effects */ + size_t mSize; }; #endif // PARTICLE_PARTICLELIST_H diff --git a/src/particle/particlevector.h b/src/particle/particlevector.h index 8804991be..68589e4e1 100644 --- a/src/particle/particlevector.h +++ b/src/particle/particlevector.h @@ -59,6 +59,9 @@ class ParticleVector final : public ParticleContainer void moveTo(const float x, const float y) override final; + size_t size() const + { return mIndexedElements.size(); } + protected: std::vector<Particle *> mIndexedElements; }; |