diff options
author | jackpoz <giacomopoz@gmail.com> | 2014-02-26 21:44:51 +0100 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2014-02-26 21:44:51 +0100 |
commit | 61890bce7cf5abb2fbf536e07da233ff7d4cedb0 (patch) | |
tree | 8729160b498e0b2b30d9d782fb3b09822a734f60 | |
parent | 272009ebeed80bc7749c004348fb1057761cf268 (diff) |
Scripts/Onyxia Lair: Fix debug assertions about iterators
-rw-r--r-- | src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp index e028fab67e5..678a79c51ad 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp @@ -212,13 +212,24 @@ public: { if (eruptTimer <= diff) { - uint32 treeHeight = 0; - do + uint64 frontGuid = FloorEruptionGUIDQueue.front(); + std::map<uint64, uint32>::iterator itr = FloorEruptionGUID[1].find(frontGuid); + if (itr != FloorEruptionGUID[1].end()) { - treeHeight = (*FloorEruptionGUID[1].find(FloorEruptionGUIDQueue.front())).second; - FloorEruption(FloorEruptionGUIDQueue.front()); - FloorEruptionGUIDQueue.pop(); - } while (!FloorEruptionGUIDQueue.empty() && (*FloorEruptionGUID[1].find(FloorEruptionGUIDQueue.front())).second == treeHeight); + uint32 treeHeight = itr->second; + + do + { + FloorEruption(frontGuid); + FloorEruptionGUIDQueue.pop(); + if (FloorEruptionGUIDQueue.empty()) + break; + + frontGuid = FloorEruptionGUIDQueue.front(); + itr = FloorEruptionGUID[1].find(frontGuid); + } while (itr != FloorEruptionGUID[1].end() && itr->second == treeHeight); + } + eruptTimer = 1000; } else |