diff options
| author | Spp <spp@jorge.gr> | 2012-10-26 14:30:52 +0200 | 
|---|---|---|
| committer | Spp <spp@jorge.gr> | 2012-10-26 14:31:19 +0200 | 
| commit | 876ad50dcde63eb29c51d54e126c9d66508183ac (patch) | |
| tree | 604b0e9f6166dad9ca34cfe088709e11b05010c5 /src/server/scripts/Outland | |
| parent | 6d55ac8c58117de36143be76d6dc8d806ac9abe7 (diff) | |
Core/Misc: Tweaked ThreatContainer internals
(and many cosmetic changes here and there)
Diffstat (limited to 'src/server/scripts/Outland')
7 files changed, 64 insertions, 86 deletions
| diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp index 4f8fc917424..0f3bcce6493 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp @@ -80,8 +80,8 @@ public:          void SonicBoomEffect()          { -            std::list<HostileReference*> t_list = me->getThreatManager().getThreatList(); -            for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) +            ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); +            for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)              {                 Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid());                 if (target && target->GetTypeId() == TYPEID_PLAYER) @@ -165,8 +165,8 @@ public:                  // Thundering Storm                  if (ThunderingStorm_Timer <= diff)                  { -                    std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); -                    for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i != m_threatlist.end(); ++i) +                    ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); +                    for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)                          if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid()))                              if (target->isAlive() && !me->IsWithinDist(target, 35, false))                                  DoCast(target, SPELL_THUNDERING_STORM, true); @@ -188,8 +188,8 @@ public:                  return;              if (!me->IsWithinMeleeRange(me->getVictim()))              { -                std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); -                for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i != m_threatlist.end(); ++i) +                ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); +                for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i != threatlist.end(); ++i)                      if (Unit* target = Unit::GetUnit(*me, (*i)->getUnitGuid()))                          if (target->isAlive() && me->IsWithinMeleeRange(target))                          { @@ -201,7 +201,6 @@ public:              DoMeleeAttackIfReady();          }      }; -  };  void AddSC_boss_murmur() diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 6fd6f61c061..f812b1b35cd 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -46,9 +46,9 @@ EndScriptData */  #define SOUND_AKAMA_LEAVE     11390  // Self explanatory -const char*  SAY_KILL1        = "Who shall be next to taste my blades?!"; +char const*  SAY_KILL1        = "Who shall be next to taste my blades?!";  #define SOUND_KILL1           11473 -const char*  SAY_KILL2        = "This is too easy!"; +char const*  SAY_KILL2        = "This is too easy!";  #define SOUND_KILL2           11472  // I think I'll fly now and let my subordinates take you on @@ -254,7 +254,6 @@ struct Yells  };  static const Yells Conversation[22] = -  {      {11463, "Akama... your duplicity is hardly surprising. I should have slaughtered you and your malformed brethren long ago.", ILLIDAN_STORMRAGE, 8000, 0, true},      {0,     "", ILLIDAN_STORMRAGE, 5000, 396, true}, @@ -464,7 +463,6 @@ public:              DoMeleeAttackIfReady();          }      }; -  };  /************************************** Illidan's AI* **************************************/ @@ -614,7 +612,8 @@ public:          void DeleteFromThreatList(uint64 TargetGUID)          { -            for (std::list<HostileReference*>::const_iterator itr = me->getThreatManager().getThreatList().begin(); itr != me->getThreatManager().getThreatList().end(); ++itr) +            ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); +            for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)              {                  if ((*itr)->getUnitGuid() == TargetGUID)                  { @@ -1151,7 +1150,6 @@ public:              }          }      }; -  };  /********************************** End of Illidan AI* *****************************************/ @@ -1378,7 +1376,6 @@ public:                      DoMeleeAttackIfReady();          }      }; -  };  class npc_akama_illidan : public CreatureScript @@ -1491,9 +1488,9 @@ public:          void KillAllElites()          { -            std::list<HostileReference*>& threatList = me->getThreatManager().getThreatList(); +            ThreatContainer::StorageType const &threatList = me->getThreatManager().getThreatList();              std::vector<Unit*> eliteList; -            for (std::list<HostileReference*>::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr) +            for (ThreatContainer::StorageType::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr)              {                  Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());                  if (unit && unit->GetEntry() == ILLIDARI_ELITE) @@ -1649,7 +1646,8 @@ public:          void HandleChannelSequence()          { -            Unit* Channel = NULL, *Spirit[2] = { NULL, NULL }; +            Unit* Channel = NULL; +            Unit* Spirit[2] = { NULL, NULL };              if (ChannelCount <= 5)              {                  Channel = Unit::GetUnit(*me, ChannelGUID); @@ -1840,7 +1838,6 @@ public:      {          return new npc_akama_illidanAI(creature);      } -  };  void boss_illidan_stormrage::boss_illidan_stormrageAI::Reset() @@ -2000,7 +1997,6 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::HandleTalkSequence()                  Akama->SetPosition(x, y, z, 0.0f);                  Akama->MonsterMoveWithSpeed(x, y, z, 0); // Illidan must not die until Akama arrives.                  Akama->GetMotionMaster()->MoveChase(me); -              }          }          break; @@ -2194,7 +2190,6 @@ public:                  me->SetDisplayId(21431);// appear when hit by Illidan's glaive          }      }; -  };  class mob_parasitic_shadowfiend : public CreatureScript diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp index ec9e4e116bf..5ab9dcab667 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -128,7 +128,6 @@ public:          void JustDied(Unit* /*killer*/);      }; -  };  class boss_reliquary_of_souls : public CreatureScript @@ -233,9 +232,8 @@ public:              if (!target)                  return; -            std::list<HostileReference*>& m_threatlist = target->getThreatManager().getThreatList(); -            std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); -            for (; itr != m_threatlist.end(); ++itr) +            ThreatContainer::StorageType threatlist = target->getThreatManager().getThreatList(); +            for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)              {                  Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());                  if (unit) @@ -376,7 +374,6 @@ public:              } else Timer -= diff;          }      }; -  };  void npc_enslaved_soul::npc_enslaved_soulAI::JustDied(Unit* /*killer*/) @@ -453,12 +450,12 @@ public:          void CastFixate()          { -            std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); -            if (m_threatlist.empty()) +            ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); +            if (threatlist.empty())                  return; // No point continuing if empty threatlist.              std::list<Unit*> targets; -            std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); -            for (; itr != m_threatlist.end(); ++itr) +            ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); +            for (; itr != threatlist.end(); ++itr)              {                  Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());                  if (unit && unit->isAlive() && (unit->GetTypeId() == TYPEID_PLAYER)) // Only alive players @@ -511,7 +508,6 @@ public:              DoMeleeAttackIfReady();          }      }; -  };  class boss_essence_of_desire : public CreatureScript @@ -615,7 +611,6 @@ public:              DoMeleeAttackIfReady();          }      }; -  };  class boss_essence_of_anger : public CreatureScript @@ -716,7 +711,6 @@ public:              DoMeleeAttackIfReady();          }      }; -  };  void AddSC_boss_reliquary_of_souls() diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp index e34a229eea5..77d1c86951b 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp @@ -78,7 +78,6 @@ public:              me->CastSpell(me, SPELL_MOLTEN_FLAME, true);          }      }; -  };  class boss_supremus : public CreatureScript @@ -183,9 +182,9 @@ public:              uint32 health = 0;              Unit* target = NULL; -            std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); -            std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); -            for (i = m_threatlist.begin(); i!= m_threatlist.end(); ++i) +            ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); +            ThreatContainer::StorageType::const_iterator i = threatlist.begin(); +            for (i = threatlist.begin(); i != threatlist.end(); ++i)              {                  Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());                  if (unit && me->IsWithinMeleeRange(unit)) @@ -258,7 +257,6 @@ public:              DoMeleeAttackIfReady();          }      }; -  };  class npc_volcano : public CreatureScript @@ -303,9 +301,7 @@ public:              }              else wait -= diff;          } -      }; -  };  void AddSC_boss_supremus() diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 524992b3c44..9a200d07d2b 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -169,12 +169,12 @@ public:          void CheckPlayers()          { -            std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); -            if (m_threatlist.empty()) +            ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); +            if (threatlist.empty())                  return;                                         // No threat list. Don't continue. -            std::list<HostileReference*>::const_iterator itr = m_threatlist.begin(); +            ThreatContainer::StorageType::const_iterator itr = threatlist.begin();              std::list<Unit*> targets; -            for (; itr != m_threatlist.end(); ++itr) +            for (; itr != threatlist.end(); ++itr)              {                  Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid());                  if (unit && unit->isAlive()) @@ -207,7 +207,6 @@ public:              } else CheckTeronTimer -= diff;          }      }; -  };  class boss_teron_gorefiend : public CreatureScript @@ -317,20 +316,20 @@ public:              return coord;          } -        void SetThreatList(Creature* Blossom) +        void SetThreatList(Creature* blossom)          { -            if (!Blossom) +            if (!blossom)                  return; -            std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); -            std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); -            for (i = m_threatlist.begin(); i != m_threatlist.end(); ++i) +            ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); +            ThreatContainer::StorageType::const_iterator i = threatlist.begin(); +            for (i = threatlist.begin(); i != threatlist.end(); ++i)              {                  Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());                  if (unit && unit->isAlive())                  {                      float threat = DoGetThreat(unit); -                    Blossom->AddThreat(unit, threat); +                    blossom->AddThreat(unit, threat);                  }              }          } @@ -344,26 +343,26 @@ public:              /**    WHAT IS FULLY NECESSARY FOR GOREFIEND TO BE 100% COMPLETE    *****/              /************************************************************************/ -            Unit* Ghost = NULL; +            Unit* ghost = NULL;              if (GhostGUID) -                Ghost = Unit::GetUnit(*me, GhostGUID); -            if (Ghost && Ghost->isAlive() && Ghost->HasAura(SPELL_SHADOW_OF_DEATH)) +                ghost = Unit::GetUnit(*me, GhostGUID); +            if (ghost && ghost->isAlive() && ghost->HasAura(SPELL_SHADOW_OF_DEATH))              {                  /*float x, y, z; -                Ghost->GetPosition(x, y, z); +                ghost->GetPosition(x, y, z);                  Creature* control = me->SummonCreature(CREATURE_GHOST, x, y, z, 0, TEMPSUMMON_TIMED_DESAWN, 30000);                  if (control)                  { -                    CAST_PLR(Ghost)->Possess(control); -                    Ghost->DealDamage(Ghost, Ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, +                    CAST_PLR(ghost)->Possess(control); +                    ghost->DealDamage(ghost, ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL,                  false);                  }*/                  for (uint8 i = 0; i < 4; ++i)                  {                      Creature* Construct = NULL; -                    float X = CalculateRandomLocation(Ghost->GetPositionX(), 10); -                    float Y = CalculateRandomLocation(Ghost->GetPositionY(), 10); -                    Construct = me->SummonCreature(CREATURE_SHADOWY_CONSTRUCT, X, Y, Ghost->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000); +                    float X = CalculateRandomLocation(ghost->GetPositionX(), 10); +                    float Y = CalculateRandomLocation(ghost->GetPositionY(), 10); +                    Construct = me->SummonCreature(CREATURE_SHADOWY_CONSTRUCT, X, Y, ghost->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45000);                      if (Construct)                      {                          Construct->CastSpell(Construct, SPELL_PASSIVE_SHADOWFORM, true); @@ -511,7 +510,6 @@ public:              DoMeleeAttackIfReady();          }      }; -  };  void AddSC_boss_teron_gorefiend() diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp index 81e03a19c1f..9b739a1a6ac 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp @@ -171,7 +171,6 @@ public:             DoMeleeAttackIfReady();          }      }; -  };  //Original Leotheras the Blind AI @@ -263,7 +262,6 @@ public:                  Creature* binder = me->SummonCreature(MOB_SPELLBINDER, nx, ny, z, o, TEMPSUMMON_DEAD_DESPAWN, 0);                  if (binder)                      SpellBinderGUID[i] = binder->GetGUID(); -              }          }          void MoveInLineOfSight(Unit* who) @@ -525,9 +523,9 @@ public:                  //Summon Inner Demon                  if (InnerDemons_Timer <= diff)                  { -                    std::list<HostileReference*>& ThreatList = me->getThreatManager().getThreatList(); +                    ThreatContainer::StorageType const & ThreatList = me->getThreatManager().getThreatList();                      std::vector<Unit*> TargetList; -                    for (std::list<HostileReference*>::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr) +                    for (ThreatContainer::StorageType::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr)                      {                          Unit* tempTarget = Unit::GetUnit(*me, (*itr)->getUnitGuid());                          if (tempTarget && tempTarget->GetTypeId() == TYPEID_PLAYER && tempTarget->GetGUID() != me->getVictim()->GetGUID() && TargetList.size()<5) @@ -602,7 +600,6 @@ public:              }          }      }; -  };  //Leotheras the Blind Demon Form AI @@ -812,7 +809,6 @@ public:          void JustDied(Unit* /*killer*/) {}      }; -  };  void AddSC_boss_leotheras_the_blind() diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index f60cc1d188c..29c87e57c83 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -176,7 +176,7 @@ struct advisorbase_ai : public ScriptedAI          //reset encounter          if (instance && (instance->GetData(DATA_KAELTHASEVENT) == 1 || instance->GetData(DATA_KAELTHASEVENT) == 3)) -            if (Creature* Kaelthas = Unit::GetCreature((*me), instance->GetData64(DATA_KAELTHAS))) +            if (Creature* Kaelthas = Unit::GetCreature(*me, instance->GetData64(DATA_KAELTHAS)))                  Kaelthas->AI()->EnterEvadeMode();      } @@ -344,7 +344,7 @@ class boss_kaelthas : public CreatureScript              {                  for (uint8 i = 0; i < MAX_ADVISORS; ++i)                  { -                    if (Creature* creature = Unit::GetCreature((*me), m_auiAdvisorGuid[i])) +                    if (Creature* creature = Unit::GetCreature(*me, m_auiAdvisorGuid[i]))                      {                          creature->Respawn();                          creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -379,7 +379,6 @@ class boss_kaelthas : public CreatureScript                      if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))                          AttackStart(target); -                  }                  else                  { @@ -499,7 +498,7 @@ class boss_kaelthas : public CreatureScript                              case 1:                                  if (Phase_Timer <= diff)                                  { -                                    Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[0])); +                                    Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[0]));                                      if (Advisor)                                      { @@ -517,7 +516,7 @@ class boss_kaelthas : public CreatureScript                              //Subphase 2 - Start                              case 2: -                                Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[0])); +                                Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[0]));                                  if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))                                  { @@ -533,7 +532,7 @@ class boss_kaelthas : public CreatureScript                              case 3:                                  if (Phase_Timer <= diff)                                  { -                                    Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[1])); +                                    Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[1]));                                      if (Advisor)                                      { @@ -551,7 +550,7 @@ class boss_kaelthas : public CreatureScript                              //Subphase 3 - Start                              case 4: -                                Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[1])); +                                Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[1]));                                  if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))                                  { @@ -567,7 +566,7 @@ class boss_kaelthas : public CreatureScript                              case 5:                                  if (Phase_Timer <= diff)                                  { -                                    Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[2])); +                                    Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[2]));                                      if (Advisor)                                      { @@ -585,7 +584,7 @@ class boss_kaelthas : public CreatureScript                              //Subphase 4 - Start                              case 6: -                                Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[2])); +                                Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[2]));                                  if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))                                  { @@ -601,7 +600,7 @@ class boss_kaelthas : public CreatureScript                              case 7:                                  if (Phase_Timer <= diff)                                  { -                                    Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[3])); +                                    Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[3]));                                      if (Advisor)                                      { @@ -620,7 +619,7 @@ class boss_kaelthas : public CreatureScript                              //End of phase 1                              case 8: -                                Advisor = (Unit::GetCreature((*me), m_auiAdvisorGuid[3])); +                                Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[3]));                                  if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))                                  { @@ -691,7 +690,7 @@ class boss_kaelthas : public CreatureScript                              Creature* Advisor;                              for (uint8 i = 0; i < MAX_ADVISORS; ++i)                              { -                                Advisor = Unit::GetCreature((*me), m_auiAdvisorGuid[i]); +                                Advisor = Unit::GetCreature(*me, m_auiAdvisorGuid[i]);                                  if (!Advisor)                                      sLog->outError(LOG_FILTER_TSCR, "SD2: Kael'Thas Advisor %u does not exist. Possibly despawned? Incorrectly Killed?", i); @@ -787,7 +786,7 @@ class boss_kaelthas : public CreatureScript                                  if (me->getThreatManager().getThreatList().size() >= 2)                                      for (uint32 i = 0; i < 3; ++i)                                  { -                                    sLog->outDebug(LOG_FILTER_TSCR, "SD2: Kael'Thas mind control not supported."); +                                    sLog->outDebug(LOG_FILTER_TSCR, "Kael'Thas mind control not supported.");                                      //DoCast(unit, SPELL_MIND_CONTROL);                                  } @@ -879,11 +878,12 @@ class boss_kaelthas : public CreatureScript                          //Phase 5                          if (Phase == 6)                          { -                              //GravityLapse_Timer                              if (GravityLapse_Timer <= diff)                              { -                                std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); +                                ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); +                                ThreatContainer::StorageType::const_iterator i = threatlist.begin(); +                                  switch (GravityLapse_Phase)                                  {                                      case 0: @@ -894,7 +894,7 @@ class boss_kaelthas : public CreatureScript                                          me->MonsterMoveWithSpeed(afGravityPos[0], afGravityPos[1], afGravityPos[2], 0);                                          // 1) Kael'thas will portal the whole raid right into his body -                                        for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i) +                                        for (i = threatlist.begin(); i != threatlist.end(); ++i)                                          {                                              Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());                                              if (unit && (unit->GetTypeId() == TYPEID_PLAYER)) @@ -915,7 +915,7 @@ class boss_kaelthas : public CreatureScript                                          DoScriptText(RAND(SAY_GRAVITYLAPSE1, SAY_GRAVITYLAPSE2), me);                                          // 2) At that point he will put a Gravity Lapse debuff on everyone -                                        for (i = me->getThreatManager().getThreatList().begin(); i != me->getThreatManager().getThreatList().end(); ++i) +                                        for (i = threatlist.begin(); i != threatlist.end(); ++i)                                          {                                              if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()))                                              { @@ -948,7 +948,7 @@ class boss_kaelthas : public CreatureScript                                      case 3:                                          //Remove flight -                                        for (i = me->getThreatManager().getThreatList().begin(); i!= me->getThreatManager().getThreatList().end(); ++i) +                                        for (i = threatlist.begin(); i != threatlist.end(); ++i)                                          {                                              if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()))                                              { @@ -1287,8 +1287,8 @@ class boss_grand_astromancer_capernian : public CreatureScript                  {                      bool InMeleeRange = false;                      Unit* target = NULL; -                    std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList(); -                    for (std::list<HostileReference*>::const_iterator i = m_threatlist.begin(); i!= m_threatlist.end(); ++i) +                    ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); +                    for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i!= threatlist.end(); ++i)                      {                          Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());                                                                      //if in melee range | 
