diff --git a/src/otclient/core/map.cpp b/src/otclient/core/map.cpp index efaa35a8..3ae4bc75 100644 --- a/src/otclient/core/map.cpp +++ b/src/otclient/core/map.cpp @@ -232,12 +232,9 @@ void Map::removeThing(const ThingPtr& thing) return; if(MissilePtr shot = thing->asMissile()) { - m_missilesAtFloor[shot->getPosition().z]; - for(auto it = m_missilesAtFloor[shot->getPosition().z].begin(), end = m_missilesAtFloor[shot->getPosition().z].end(); it != end; ++it) { - if(shot == *it) { - m_missilesAtFloor[shot->getPosition().z].erase(it); - break; - } + auto it = std::find(m_missilesAtFloor[shot->getPosition().z].begin(), m_missilesAtFloor[shot->getPosition().z].end(), shot); + if(it != m_missilesAtFloor[shot->getPosition().z].end()) { + m_missilesAtFloor[shot->getPosition().z].erase(it); } return; } diff --git a/src/otclient/core/map.h b/src/otclient/core/map.h index 49712329..07032cbe 100644 --- a/src/otclient/core/map.h +++ b/src/otclient/core/map.h @@ -69,7 +69,7 @@ public: private: std::unordered_map m_tiles; std::map m_creatures; - std::map > m_missilesAtFloor; + std::array, MAX_Z> m_missilesAtFloor; Light m_light; Position m_centralPosition;