diff --git a/src/game/Camera.h b/src/game/Camera.h index 98431be04..775e494a6 100644 --- a/src/game/Camera.h +++ b/src/game/Camera.h @@ -64,37 +64,26 @@ class MANGOS_DLL_SPEC ViewPoint friend class Camera; std::list m_cameras; - std::list::iterator m_camera_iter; GridType * m_grid; void Attach(Camera* c) { m_cameras.push_back(c); } - - void Detach(Camera* c) - { - if (m_camera_iter != m_cameras.end() && *m_camera_iter == c) // detach called during the loop - m_camera_iter = m_cameras.erase(m_camera_iter); - else - m_cameras.remove(c); - } + void Detach(Camera* c) { m_cameras.remove(c); } void CameraCall(void (Camera::*handler)()) { if (!m_cameras.empty()) { - for(m_camera_iter = m_cameras.begin(); m_camera_iter != m_cameras.end(); ++m_camera_iter) + for(std::list::iterator itr = m_cameras.begin(); itr != m_cameras.end();) { - ((*m_camera_iter)->*handler)(); - - // can be end() after handler - if (m_camera_iter == m_cameras.end()) - break; + Camera *c = *(itr++); + (c->*handler)(); } } } public: - ViewPoint() : m_grid(0), m_camera_iter(m_cameras.end()) {} + ViewPoint() : m_grid(0) {} ~ViewPoint(); bool hasViewers() const { return !m_cameras.empty(); } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index c27ab58b4..4d4867cf1 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10138" + #define REVISION_NR "10139" #endif // __REVISION_NR_H__