From aaaf6686160eb4401892840b8db0c38e462bc89d Mon Sep 17 00:00:00 2001 From: zvon Date: Sun, 23 Aug 2020 15:30:31 +0200 Subject: [PATCH] Remove object from collisions as well when killing it --- sdlpp.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sdlpp.hpp b/sdlpp.hpp index 0243904..97be992 100644 --- a/sdlpp.hpp +++ b/sdlpp.hpp @@ -577,14 +577,21 @@ private: void checkKilled() { render_mutex.lock(); std::vector< int > killed; + std::vector< int > killed_collisions; for ( long unsigned int i = 0; i < renderObjects.size(); i++ ) { if ( renderObjects[i]->getKilled() ) killed.push_back( i ); + if ( i < collisionObjects.size() && collisionObjects[i]->getKilled() ) + killed_collisions.push_back( i ); } std::reverse( killed.begin(), killed.end() ); + std::reverse( killed_collisions.begin(), killed_collisions.end() ); for ( auto &index : killed ) { renderObjects.erase( renderObjects.begin() + index ); } + for ( auto &index : killed_collisions ) { + collisionObjects.erase( collisionObjects.begin() + index ); + } render_mutex.unlock(); }