adspartan : particle: fix ribbon iterator issue

07daf2120f
This commit is contained in:
T1ti
2024-08-30 23:12:34 +02:00
parent 0d50dddd15
commit 47e4ab4f80

View File

@@ -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<RibbonSegment>::iterator it = segs.begin(); it != segs.end();) {
if (!erasemode) {
for (std::list<RibbonSegment>::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;