@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user