Issue #68: Remove dead actors from actor list

This commit is contained in:
Marc Zinnschlag 2012-10-20 10:54:51 +02:00
parent f2e25b8a47
commit 0547f11564

View file

@ -199,13 +199,23 @@ namespace MWMechanics
{
float totalDuration = mDuration;
mDuration = 0;
std::set<MWWorld::Ptr>::iterator iter (mActors.begin());
for (std::set<MWWorld::Ptr>::iterator iter (mActors.begin()); iter!=mActors.end(); ++iter)
while (iter!=mActors.end())
{
updateActor (*iter, totalDuration);
if (!MWWorld::Class::get (*iter).getCreatureStats (*iter).isDead())
{
updateActor (*iter, totalDuration);
if (iter->getTypeName()==typeid (ESM::NPC).name())
updateNpc (*iter, totalDuration, paused);
if (iter->getTypeName()==typeid (ESM::NPC).name())
updateNpc (*iter, totalDuration, paused);
}
if (MWWorld::Class::get (*iter).getCreatureStats (*iter).isDead())
mActors.erase (iter++);
else
++iter;
}
}