Fix particle code ignoring return value of std::vector::erase(). Wat.
authorKahrl <kahrl@gmx.net>
Mon, 23 Dec 2013 14:11:53 +0000 (15:11 +0100)
committerKahrl <kahrl@gmx.net>
Mon, 23 Dec 2013 14:11:53 +0000 (15:11 +0100)
src/particles.cpp

index 88905d40d3a6ce91b066f182889a2a735fdea36b..ce5a4013fc5efed6e3907021be289c041879f144 100644 (file)
@@ -221,7 +221,7 @@ void allparticles_step (float dtime, ClientEnvironment &env)
                {
                        (*i)->remove();
                        delete *i;
-                       all_particles.erase(i);
+                       i = all_particles.erase(i);
                }
                else
                {
@@ -375,7 +375,7 @@ void ParticleSpawner::step(float dtime, ClientEnvironment &env)
                                        m_texture,
                                        v2f(0.0, 0.0),
                                        v2f(1.0, 1.0));
-                               m_spawntimes.erase(i);
+                               i = m_spawntimes.erase(i);
                        }
                        else
                        {
@@ -462,6 +462,6 @@ void clear_particles ()
        {
                (*i)->remove();
                delete *i;
-               all_particles.erase(i);
-       }       
+               i = all_particles.erase(i);
+       }
 }