summaryrefslogtreecommitdiff
path: root/src/particle
diff options
context:
space:
mode:
Diffstat (limited to 'src/particle')
-rw-r--r--src/particle/particlelist.cpp7
-rw-r--r--src/particle/particlelist.h4
-rw-r--r--src/particle/particlevector.h3
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;
};