diff --git a/src/noggit/Particle.cpp b/src/noggit/Particle.cpp index d56d2dd3..4ca6faee 100755 --- a/src/noggit/Particle.cpp +++ b/src/noggit/Particle.cpp @@ -889,18 +889,23 @@ void RibbonEmitter::setup(int anim, int time, int animtime) // kill stuff from the end TODO: occasional crashes here float l = 0; bool erasemode = false; - for (std::list::iterator it = segs.begin(); it != segs.end();) { - if (!erasemode) { + for (std::list::iterator it = segs.begin(); it != segs.end();) + { + if (!erasemode) + { l += it->len; - if (l > length) { - it->len = l - length; - erasemode = true; + if (l > length) + { + it->len = l - length; + erasemode = true; } + + ++it; } - else { - segs.erase(it); + else + { + it = segs.erase(it); } - ++it; } tpos = ntpos;