aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2014-02-26 21:44:51 +0100
committerjackpoz <giacomopoz@gmail.com>2014-02-26 21:44:51 +0100
commit61890bce7cf5abb2fbf536e07da233ff7d4cedb0 (patch)
tree8729160b498e0b2b30d9d782fb3b09822a734f60
parent272009ebeed80bc7749c004348fb1057761cf268 (diff)
Scripts/Onyxia Lair: Fix debug assertions about iterators
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp23
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