diff options
| author | Anubisss <none@none> | 2010-04-02 15:41:37 +0200 |
|---|---|---|
| committer | Anubisss <none@none> | 2010-04-02 15:41:37 +0200 |
| commit | 08b4748e622a91b86b1918400836f862133cbf71 (patch) | |
| tree | 0f0a582a6ce9ef3c4f01dc089af56014c16f9126 /src/scripts/northrend | |
| parent | 7c4f2f520f4047b10d94e44f6af1c910ff4bdbcf (diff) | |
Use GUIDs instead of "global" pointers in zone scripts.
This commit is like that: 7714 / rce505237e4aa
And use const_iterators where it is possible.
--HG--
branch : trunk
Diffstat (limited to 'src/scripts/northrend')
23 files changed, 129 insertions, 109 deletions
diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp index 923f000a99b..dbadd70cb70 100644 --- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp +++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp @@ -205,7 +205,7 @@ struct boss_volazjAI : public ScriptedAI Summons.Despawn(summon); // Check if all summons in this phase killed - for(SummonList::const_iterator iter = Summons.begin(); iter!=Summons.end(); iter++) + for(SummonList::const_iterator iter = Summons.begin(); iter!=Summons.end(); ++iter) { if(Creature *visage = Unit::GetCreature(*m_creature, *iter)) { diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp index e2fe94872ab..64e70435244 100644 --- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp +++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp @@ -209,7 +209,7 @@ struct boss_taldaramAI : public ScriptedAI Unit *pTarget = NULL; std::list<HostileReference *> t_list = m_creature->getThreatManager().getThreatList(); std::vector<Unit *> target_list; - for (std::list<HostileReference *>::iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) + for (std::list<HostileReference *>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) { pTarget = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid()); // exclude pets & totems diff --git a/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp b/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp index 4085605facb..4f19d85ca01 100644 --- a/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp +++ b/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/boss_black_knight.cpp @@ -131,7 +131,7 @@ struct boss_black_knightAI : public ScriptedAI if (SummonList.empty()) return; - for(std::list<uint64>::iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) + for(std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) { if (Creature* pTemp = Unit::GetCreature(*m_creature, *itr)) if (pTemp) diff --git a/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/instance_trial_of_the_champion.cpp b/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/instance_trial_of_the_champion.cpp index 01cdbc7b083..edaad389bad 100644 --- a/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/instance_trial_of_the_champion.cpp +++ b/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/instance_trial_of_the_champion.cpp @@ -171,7 +171,7 @@ struct instance_trial_of_the_champion : public ScriptedInstance m_auiEncounter[0] = uiData; if (uiData == IN_PROGRESS) { - for(std::list<uint64>::iterator itr = VehicleList.begin(); itr != VehicleList.end(); ++itr) + for(std::list<uint64>::const_iterator itr = VehicleList.begin(); itr != VehicleList.end(); ++itr) if (Creature* pSummon = instance->GetCreature(*itr)) pSummon->RemoveFromWorld(); }else if (uiData == DONE) diff --git a/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.cpp b/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.cpp index e24fea2cd0c..6f783bdf09e 100644 --- a/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.cpp +++ b/src/scripts/northrend/crusaders_coliseum/trial_of_the_champion/trial_of_the_champion.cpp @@ -141,7 +141,7 @@ struct npc_announcer_toc5AI : public ScriptedAI break; } - for(std::list<uint64>::iterator itr = TempList.begin(); itr != TempList.end(); ++itr) + for(std::list<uint64>::const_iterator itr = TempList.begin(); itr != TempList.end(); ++itr) if (Creature* pSummon = Unit::GetCreature(*m_creature, *itr)) AggroAllPlayers(pSummon); }else if (uiLesserChampions == 9) @@ -416,7 +416,7 @@ struct npc_announcer_toc5AI : public ScriptedAI case 3: if (!Champion1List.empty()) { - for(std::list<uint64>::iterator itr = Champion1List.begin(); itr != Champion1List.end(); ++itr) + for(std::list<uint64>::const_iterator itr = Champion1List.begin(); itr != Champion1List.end(); ++itr) if (Creature* pSummon = Unit::GetCreature(*m_creature, *itr)) AggroAllPlayers(pSummon); NextStep(0,false); diff --git a/src/scripts/northrend/crystalsong_forest.cpp b/src/scripts/northrend/crystalsong_forest.cpp index 00a70003b54..0400f1714ef 100644 --- a/src/scripts/northrend/crystalsong_forest.cpp +++ b/src/scripts/northrend/crystalsong_forest.cpp @@ -48,7 +48,6 @@ struct npc_warmage_violetstandAI : public Scripted_NoMovementAI npc_warmage_violetstandAI(Creature* pCreature) : Scripted_NoMovementAI(pCreature){} uint32 m_uiTimer; //Timer until recast - std::list<Creature *> orbList; void Reset() { @@ -69,10 +68,12 @@ struct npc_warmage_violetstandAI : public Scripted_NoMovementAI switch(me->GetEntry()) { case NPC_WARMAGE_SARINA: + { + std::list<Creature*> orbList; GetCreatureListWithEntryInGrid(orbList, m_creature, NPC_TRANSITUS_SHIELD_DUMMY, 32.0f); if (!orbList.empty()) { - for (std::list<Creature*>::iterator itr = orbList.begin(); itr != orbList.end(); ++itr) + for (std::list<Creature*>::const_iterator itr = orbList.begin(); itr != orbList.end(); ++itr) { if (Creature* pOrb = *itr) if (pOrb->GetPositionY() < 1000) @@ -80,6 +81,7 @@ struct npc_warmage_violetstandAI : public Scripted_NoMovementAI } } m_uiTimer = 90000; + } break; case NPC_WARMAGE_HALISTER: case NPC_WARMAGE_ILSUDRIA: diff --git a/src/scripts/northrend/draktharon_keep/boss_novos.cpp b/src/scripts/northrend/draktharon_keep/boss_novos.cpp index 0113c21ae99..0188228ee61 100644 --- a/src/scripts/northrend/draktharon_keep/boss_novos.cpp +++ b/src/scripts/northrend/draktharon_keep/boss_novos.cpp @@ -106,7 +106,7 @@ struct boss_novosAI : public Scripted_NoMovementAI luiCrystals.push_back(pInstance->GetData64(DATA_NOVOS_CRYSTAL_2)); luiCrystals.push_back(pInstance->GetData64(DATA_NOVOS_CRYSTAL_3)); luiCrystals.push_back(pInstance->GetData64(DATA_NOVOS_CRYSTAL_4)); - for (std::list<uint64>::iterator itr = luiCrystals.begin(); itr != luiCrystals.end(); ++itr) + for (std::list<uint64>::const_iterator itr = luiCrystals.begin(); itr != luiCrystals.end(); ++itr) { if (GameObject* pTemp = pInstance->instance->GetGameObject(*itr)) pTemp->SetGoState(GO_STATE_READY); @@ -123,7 +123,7 @@ struct boss_novosAI : public Scripted_NoMovementAI DoCast(SPELL_ARCANE_FIELD); if (pInstance) { - for (std::list<uint64>::iterator itr = luiCrystals.begin(); itr != luiCrystals.end(); ++itr) + for (std::list<uint64>::const_iterator itr = luiCrystals.begin(); itr != luiCrystals.end(); ++itr) { if (GameObject *pTemp = pInstance->instance->GetGameObject(*itr)) pTemp->SetGoState(GO_STATE_ACTIVE); diff --git a/src/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp b/src/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp index e117161dc0b..1e6521b1b03 100644 --- a/src/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp +++ b/src/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp @@ -147,7 +147,7 @@ struct boss_tharon_jaAI : public ScriptedAI DoScriptText(RAND(SAY_FLESH_1,SAY_FLESH_2),m_creature); m_creature->SetDisplayId(MODEL_FLESH); std::list<HostileReference*>& threatlist = m_creature->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) + for (std::list<HostileReference*>::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { Unit *pTemp = Unit::GetUnit((*m_creature),(*itr)->getUnitGuid()); if (pTemp && pTemp->GetTypeId() == TYPEID_PLAYER) @@ -203,7 +203,7 @@ struct boss_tharon_jaAI : public ScriptedAI uiRainOfFireTimer = urand(14*IN_MILISECONDS,18*IN_MILISECONDS); uiShadowVolleyTimer = urand(8*IN_MILISECONDS,10*IN_MILISECONDS); std::list<HostileReference*>& threatlist = m_creature->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) + for (std::list<HostileReference*>::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { Unit *pTemp = Unit::GetUnit((*m_creature),(*itr)->getUnitGuid()); if (pTemp && pTemp->GetTypeId() == TYPEID_PLAYER) diff --git a/src/scripts/northrend/grizzly_hills.cpp b/src/scripts/northrend/grizzly_hills.cpp index a6c575d2e54..980c54df617 100644 --- a/src/scripts/northrend/grizzly_hills.cpp +++ b/src/scripts/northrend/grizzly_hills.cpp @@ -150,17 +150,14 @@ enum eFloppy struct npc_emilyAI : public npc_escortAI { npc_emilyAI(Creature* pCreature) : npc_escortAI(pCreature) { } - + uint32 m_uiChatTimer; - + uint64 RWORGGUID; uint64 MrfloppyGUID; - - Creature* Mrfloppy; - Creature* RWORG; + bool Completed; - - + void JustSummoned(Creature* pSummoned) { if (Creature* Mrfloppy = GetClosestCreatureWithEntry(m_creature, NPC_MRFLOPPY, 50.0f)) @@ -168,7 +165,7 @@ struct npc_emilyAI : public npc_escortAI else pSummoned->AI()->AttackStart(m_creature->getVictim()); } - + void WaypointReached(uint32 i) { Player* pPlayer = GetPlayerForEscort(); @@ -177,57 +174,77 @@ struct npc_emilyAI : public npc_escortAI switch (i) { case 9: - Mrfloppy = GetClosestCreatureWithEntry(m_creature, NPC_MRFLOPPY, 100.0f); + if (Creature *Mrfloppy = GetClosestCreatureWithEntry(m_creature, NPC_MRFLOPPY, 100.0f)) + MrfloppyGUID = Mrfloppy->GetGUID(); break; case 10: - if (Mrfloppy) + if (Creature *Mrfloppy = Unit::GetCreature(*m_creature, MrfloppyGUID)) { DoScriptText(SAY_WORGHAGGRO1, m_creature); m_creature->SummonCreature(NPC_HUNGRY_WORG,m_creature->GetPositionX()+5,m_creature->GetPositionY()+2,m_creature->GetPositionZ()+1,3.229f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000); } break; case 11: - Mrfloppy->GetMotionMaster()->MoveFollow(m_creature, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); + if (Creature *Mrfloppy = Unit::GetCreature(*m_creature, MrfloppyGUID)) + Mrfloppy->GetMotionMaster()->MoveFollow(m_creature, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); break; case 17: - Mrfloppy->GetMotionMaster()->MovePoint(0, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ()); + if (Creature *Mrfloppy = Unit::GetCreature(*m_creature, MrfloppyGUID)) + Mrfloppy->GetMotionMaster()->MovePoint(0, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ()); DoScriptText(SAY_WORGRAGGRO3, m_creature); - RWORG = m_creature->SummonCreature(NPC_RAVENOUS_WORG,m_creature->GetPositionX()+10,m_creature->GetPositionY()+8,m_creature->GetPositionZ()+2,3.229f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000); - RWORG->setFaction(35); + if (Creature *RWORG = m_creature->SummonCreature(NPC_RAVENOUS_WORG,m_creature->GetPositionX()+10,m_creature->GetPositionY()+8,m_creature->GetPositionZ()+2,3.229f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000)) + { + RWORG->setFaction(35); + RWORGGUID = RWORG->GetGUID(); + } break; case 18: - if (Mrfloppy) + if (Creature *Mrfloppy = Unit::GetCreature(*m_creature, MrfloppyGUID)) { - RWORG->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ()); + if (Creature *RWORG = Unit::GetCreature(*m_creature, RWORGGUID)) + RWORG->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ()); DoCast(Mrfloppy,SPELL_MRFLOPPY); } break; case 19: - if (Mrfloppy->HasAura(SPELL_MRFLOPPY, 0)) - Mrfloppy->EnterVehicle(RWORG); + if (Creature *Mrfloppy = Unit::GetCreature(*m_creature, MrfloppyGUID)) + { + if (Mrfloppy->HasAura(SPELL_MRFLOPPY, 0)) + { + if (Creature *RWORG = Unit::GetCreature(*m_creature, RWORGGUID)) + Mrfloppy->EnterVehicle(RWORG); + } + } break; case 20: - if (Mrfloppy) + if (Creature *RWORG = Unit::GetCreature(*m_creature, RWORGGUID)) RWORG->HandleEmoteCommand(34); break; case 21: - if (Mrfloppy) + if (Creature *Mrfloppy = Unit::GetCreature(*m_creature, MrfloppyGUID)) { - RWORG->Kill(Mrfloppy); - Mrfloppy->ExitVehicle(); - RWORG->setFaction(14); - RWORG->GetMotionMaster()->MovePoint(0, RWORG->GetPositionX()+10,RWORG->GetPositionY()+80,RWORG->GetPositionZ()); - DoScriptText(SAY_VICTORY2, m_creature); + if (Creature *RWORG = Unit::GetCreature(*m_creature, RWORGGUID)) + { + RWORG->Kill(Mrfloppy); + Mrfloppy->ExitVehicle(); + RWORG->setFaction(14); + RWORG->GetMotionMaster()->MovePoint(0, RWORG->GetPositionX()+10,RWORG->GetPositionY()+80,RWORG->GetPositionZ()); + DoScriptText(SAY_VICTORY2, m_creature); + } } break; case 22: - if (Mrfloppy && Mrfloppy->isDead()) + if (Creature *Mrfloppy = Unit::GetCreature(*m_creature, MrfloppyGUID)) { - RWORG->DisappearAndDie(); - m_creature->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ()); - Mrfloppy->setDeathState(ALIVE); - Mrfloppy->GetMotionMaster()->MoveFollow(m_creature, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); - DoScriptText(SAY_VICTORY3, m_creature); + if (Mrfloppy->isDead()) + { + if (Creature *RWORG = Unit::GetCreature(*m_creature, RWORGGUID)) + RWORG->DisappearAndDie(); + m_creature->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ()); + Mrfloppy->setDeathState(ALIVE); + Mrfloppy->GetMotionMaster()->MoveFollow(m_creature, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); + DoScriptText(SAY_VICTORY3, m_creature); + } } break; case 24: @@ -244,28 +261,28 @@ struct npc_emilyAI : public npc_escortAI break; case 27: m_creature->DisappearAndDie(); - if (Mrfloppy) + if (Creature *Mrfloppy = Unit::GetCreature(*m_creature, MrfloppyGUID)) Mrfloppy->DisappearAndDie(); break; } } - + void EnterCombat(Unit* Who) { DoScriptText(SAY_RANDOMAGGRO, m_creature); } - + void Reset() { m_uiChatTimer = 4000; - Mrfloppy = NULL; - RWORG = NULL; + MrfloppyGUID = 0; + RWORGGUID = 0; } - + void UpdateAI(const uint32 uiDiff) { npc_escortAI::UpdateAI(uiDiff); - + if (HasEscortState(STATE_ESCORT_ESCORTING)) { if (m_uiChatTimer <= uiDiff) @@ -278,7 +295,6 @@ struct npc_emilyAI : public npc_escortAI } }; - bool QuestAccept_npc_emily(Player* pPlayer, Creature* pCreature, Quest const* quest) { if (quest->GetQuestId() == QUEST_PERILOUS_ADVENTURE) @@ -305,23 +321,13 @@ CreatureAI* GetAI_npc_emily(Creature* pCreature) struct npc_mrfloppyAI : public ScriptedAI { npc_mrfloppyAI(Creature *c) : ScriptedAI(c) {} - + uint64 EmilyGUID; uint64 RWORGGUID; uint64 HWORGGUID; - - Creature* HWORG; - Creature* RWORG; - - Creature* Emily; - - void Reset() - { - HWORG = NULL; - RWORG = NULL; - Emily = NULL; - } - + + void Reset() {} + void EnterCombat(Unit* Who) { if (Creature* Emily = GetClosestCreatureWithEntry(m_creature, NPC_EMILY, 50.0f)) @@ -339,11 +345,11 @@ struct npc_mrfloppyAI : public ScriptedAI } } } - + void EnterEvadeMode() {} - + void MoveInLineOfSight(Unit *who) {} - + void UpdateAI(const uint32 diff) { if (!UpdateVictim()) diff --git a/src/scripts/northrend/naxxramas/boss_kelthuzad.cpp b/src/scripts/northrend/naxxramas/boss_kelthuzad.cpp index 7aad876e56c..c6354a8e0ba 100644 --- a/src/scripts/northrend/naxxramas/boss_kelthuzad.cpp +++ b/src/scripts/northrend/naxxramas/boss_kelthuzad.cpp @@ -281,7 +281,7 @@ struct boss_kelthuzadAI : public BossAI me->setFaction(35); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NOT_SELECTABLE); - std::map<uint64, float>::iterator itr; + std::map<uint64, float>::const_iterator itr; for (itr = chained.begin(); itr != chained.end(); ++itr) { if (Player* charmed = Unit::GetPlayer((*itr).first)) @@ -326,7 +326,7 @@ struct boss_kelthuzadAI : public BossAI _JustDied(); DoScriptText(SAY_DEATH, m_creature); - std::map<uint64, float>::iterator itr; + std::map<uint64, float>::const_iterator itr; for (itr = chained.begin(); itr != chained.end(); ++itr) { if (Player* pPlayer = Unit::GetPlayer((*itr).first)) @@ -573,7 +573,7 @@ struct boss_kelthuzadAI : public BossAI } } } - itr++; + ++itr; } if (chained.empty()) @@ -597,7 +597,7 @@ struct boss_kelthuzadAI : public BossAI if (!unitList.empty()) { - std::vector<Unit*>::iterator itr = unitList.begin(); + std::vector<Unit*>::const_iterator itr = unitList.begin(); advance(itr, rand()%unitList.size()); DoCast(*itr, SPELL_MANA_DETONATION); DoScriptText(RAND(SAY_SPECIAL_1,SAY_SPECIAL_2,SAY_SPECIAL_3), me); diff --git a/src/scripts/northrend/naxxramas/boss_patchwerk.cpp b/src/scripts/northrend/naxxramas/boss_patchwerk.cpp index 438e0f91ec8..86b05e30505 100644 --- a/src/scripts/northrend/naxxramas/boss_patchwerk.cpp +++ b/src/scripts/northrend/naxxramas/boss_patchwerk.cpp @@ -111,7 +111,7 @@ struct boss_patchwerkAI : public BossAI //amount of HP within melee distance uint32 MostHP = 0; Unit* pMostHPTarget = NULL; - std::list<HostileReference*>::iterator i = me->getThreatManager().getThreatList().begin(); + std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); for (; i != me->getThreatManager().getThreatList().end(); ++i) { Unit *pTarget = (*i)->getTarget(); diff --git a/src/scripts/northrend/naxxramas/boss_sapphiron.cpp b/src/scripts/northrend/naxxramas/boss_sapphiron.cpp index 9a613a7583e..00a9762c431 100644 --- a/src/scripts/northrend/naxxramas/boss_sapphiron.cpp +++ b/src/scripts/northrend/naxxramas/boss_sapphiron.cpp @@ -202,7 +202,7 @@ struct boss_sapphironAI : public BossAI void ClearIceBlock() { - for (IceBlockMap::iterator itr = iceblocks.begin(); itr != iceblocks.end(); ++itr) + for (IceBlockMap::const_iterator itr = iceblocks.begin(); itr != iceblocks.end(); ++itr) { if (Player* pPlayer = Unit::GetPlayer(itr->first)) pPlayer->RemoveAura(SPELL_ICEBOLT); @@ -291,7 +291,7 @@ struct boss_sapphironAI : public BossAI case EVENT_ICEBOLT: { std::vector<Unit*> targets; - std::list<HostileReference*>::iterator i = me->getThreatManager().getThreatList().begin(); + std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); for (; i != me->getThreatManager().getThreatList().end(); ++i) if ((*i)->getTarget()->GetTypeId() == TYPEID_PLAYER && !(*i)->getTarget()->HasAura(SPELL_ICEBOLT)) targets.push_back((*i)->getTarget()); @@ -300,7 +300,7 @@ struct boss_sapphironAI : public BossAI iceboltCount = 0; else { - std::vector<Unit*>::iterator itr = targets.begin(); + std::vector<Unit*>::const_iterator itr = targets.begin(); advance(itr, rand()%targets.size()); iceblocks.insert(std::make_pair((*itr)->GetGUID(), 0)); DoCast(*itr, SPELL_ICEBOLT); @@ -348,7 +348,7 @@ struct boss_sapphironAI : public BossAI { DoZoneInCombat(); // make sure everyone is in threatlist std::vector<Unit*> targets; - std::list<HostileReference*>::iterator i = me->getThreatManager().getThreatList().begin(); + std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); for (; i != me->getThreatManager().getThreatList().end(); ++i) { Unit *pTarget = (*i)->getTarget(); @@ -362,7 +362,7 @@ struct boss_sapphironAI : public BossAI continue; } - for (IceBlockMap::iterator itr = iceblocks.begin(); itr != iceblocks.end(); ++itr) + for (IceBlockMap::const_iterator itr = iceblocks.begin(); itr != iceblocks.end(); ++itr) { if (GameObject* pGo = GameObject::GetGameObject(*me, itr->second)) { @@ -379,7 +379,7 @@ struct boss_sapphironAI : public BossAI me->CastSpell(me, SPELL_FROST_EXPLOSION, true); - for (std::vector<Unit*>::iterator itr = targets.begin(); itr != targets.end(); ++itr) + for (std::vector<Unit*>::const_iterator itr = targets.begin(); itr != targets.end(); ++itr) (*itr)->ApplySpellImmune(0, IMMUNITY_ID, SPELL_FROST_EXPLOSION, false); } }; diff --git a/src/scripts/northrend/nexus/nexus/boss_keristrasza.cpp b/src/scripts/northrend/nexus/nexus/boss_keristrasza.cpp index bb020c911b2..541466fc238 100644 --- a/src/scripts/northrend/nexus/nexus/boss_keristrasza.cpp +++ b/src/scripts/northrend/nexus/nexus/boss_keristrasza.cpp @@ -161,7 +161,7 @@ struct boss_keristraszaAI : public ScriptedAI if (uiCheckIntenseColdTimer < diff && !bMoreThanTwoIntenseCold) { std::list<HostileReference*> ThreatList = m_creature->getThreatManager().getThreatList(); - for (std::list<HostileReference*>::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); itr++) + for (std::list<HostileReference*>::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr) { Unit *pTarget = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid()); if (!pTarget || pTarget->GetTypeId() != TYPEID_PLAYER) diff --git a/src/scripts/northrend/nexus/nexus/boss_ormorok.cpp b/src/scripts/northrend/nexus/nexus/boss_ormorok.cpp index 3db2021ebf2..20d38148ee9 100644 --- a/src/scripts/northrend/nexus/nexus/boss_ormorok.cpp +++ b/src/scripts/northrend/nexus/nexus/boss_ormorok.cpp @@ -179,7 +179,7 @@ struct boss_ormorokAI : public ScriptedAI case 3: Healer = CLASS_DRUID; break; case 4: Healer = CLASS_SHAMAN; break; } - std::list<HostileReference*>::iterator i = m_creature->getThreatManager().getThreatList().begin(); + std::list<HostileReference*>::const_iterator i = m_creature->getThreatManager().getThreatList().begin(); for (; i != m_creature->getThreatManager().getThreatList().end(); ++i) { Unit* pTemp = Unit::GetUnit((*m_creature),(*i)->getUnitGuid()); diff --git a/src/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp b/src/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp index 0c025eaaa0e..c3d3656d9be 100644 --- a/src/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp +++ b/src/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp @@ -152,7 +152,7 @@ struct boss_ionarAI : public ScriptedAI if (m_lSparkGUIDList.empty()) return; - for (std::list<uint64>::iterator itr = m_lSparkGUIDList.begin(); itr != m_lSparkGUIDList.end(); ++itr) + for (std::list<uint64>::const_iterator itr = m_lSparkGUIDList.begin(); itr != m_lSparkGUIDList.end(); ++itr) { if (Creature* pTemp = m_creature->GetMap()->GetCreature(*itr)) { @@ -173,7 +173,7 @@ struct boss_ionarAI : public ScriptedAI Position pos; m_creature->GetPosition(&pos); - for (std::list<uint64>::iterator itr = m_lSparkGUIDList.begin(); itr != m_lSparkGUIDList.end(); ++itr) + for (std::list<uint64>::const_iterator itr = m_lSparkGUIDList.begin(); itr != m_lSparkGUIDList.end(); ++itr) { if (Creature* pSpark = Unit::GetCreature(*m_creature, *itr)) { diff --git a/src/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp b/src/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp index 0401d566c89..7ca5ca16e71 100644 --- a/src/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp +++ b/src/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp @@ -169,7 +169,7 @@ struct boss_volkhanAI : public ScriptedAI if (m_lGolemGUIDList.empty()) return; - for (std::list<uint64>::iterator itr = m_lGolemGUIDList.begin(); itr != m_lGolemGUIDList.end(); ++itr) + for (std::list<uint64>::const_iterator itr = m_lGolemGUIDList.begin(); itr != m_lGolemGUIDList.end(); ++itr) { if (Creature* pTemp = Unit::GetCreature(*m_creature, *itr)) { @@ -186,7 +186,7 @@ struct boss_volkhanAI : public ScriptedAI if (m_lGolemGUIDList.empty()) return; - for (std::list<uint64>::iterator itr = m_lGolemGUIDList.begin(); itr != m_lGolemGUIDList.end(); ++itr) + for (std::list<uint64>::const_iterator itr = m_lGolemGUIDList.begin(); itr != m_lGolemGUIDList.end(); ++itr) { if (Creature* pTemp = Unit::GetCreature(*m_creature, *itr)) { diff --git a/src/scripts/northrend/ulduar/halls_of_stone/halls_of_stone.cpp b/src/scripts/northrend/ulduar/halls_of_stone/halls_of_stone.cpp index 9a8b711363a..f62f8f9b499 100644 --- a/src/scripts/northrend/ulduar/halls_of_stone/halls_of_stone.cpp +++ b/src/scripts/northrend/ulduar/halls_of_stone/halls_of_stone.cpp @@ -162,7 +162,7 @@ struct mob_tribuna_controllerAI : public ScriptedAI if (!lKaddrakGUIDList.empty()) { uint32 uiPositionCounter = 0; - for (std::list<Creature*>::iterator itr = lKaddrakGUIDList.begin(); itr != lKaddrakGUIDList.end(); ++itr) + for (std::list<Creature*>::const_iterator itr = lKaddrakGUIDList.begin(); itr != lKaddrakGUIDList.end(); ++itr) { if ((*itr)->isAlive()) { @@ -277,7 +277,7 @@ struct npc_brann_hosAI : public npc_escortAI { if (lDwarfGUIDList.empty()) return; - for (std::list<uint64>::iterator itr = lDwarfGUIDList.begin(); itr != lDwarfGUIDList.end(); ++itr) + for (std::list<uint64>::const_iterator itr = lDwarfGUIDList.begin(); itr != lDwarfGUIDList.end(); ++itr) { Creature* pTemp = Unit::GetCreature(*m_creature, pInstance ? (*itr) : 0); if (pTemp && pTemp->isAlive()) diff --git a/src/scripts/northrend/ulduar/ulduar/boss_algalon.cpp b/src/scripts/northrend/ulduar/ulduar/boss_algalon.cpp index 5ba5d011d1e..842c4599f69 100644 --- a/src/scripts/northrend/ulduar/ulduar/boss_algalon.cpp +++ b/src/scripts/northrend/ulduar/ulduar/boss_algalon.cpp @@ -166,7 +166,7 @@ struct boss_algalonAI : public ScriptedAI if (m_lCollapsingStarGUIDList.empty()) return; - for(std::list<uint64>::iterator itr = m_lCollapsingStarGUIDList.begin(); itr != m_lCollapsingStarGUIDList.end(); ++itr) + for(std::list<uint64>::const_iterator itr = m_lCollapsingStarGUIDList.begin(); itr != m_lCollapsingStarGUIDList.end(); ++itr) { if (Creature* pTemp = Unit::GetCreature(*m_creature, *itr)) { diff --git a/src/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp b/src/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp index 283dee2afdc..34893d2dd41 100644 --- a/src/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp +++ b/src/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp @@ -187,7 +187,7 @@ struct boss_razorscaleAI : public BossAI std::list<Unit*> pTargets; SelectTargetList(pTargets, RAID_MODE(3,9), SELECT_TARGET_RANDOM, 100, true); uint8 i = 0; - for (std::list<Unit*>::iterator itr = pTargets.begin(); itr != pTargets.end();) + for (std::list<Unit*>::const_iterator itr = pTargets.begin(); itr != pTargets.end();) { if (m_creature->HasInArc(M_PI, *itr)) { diff --git a/src/scripts/northrend/violet_hold/boss_ichoron.cpp b/src/scripts/northrend/violet_hold/boss_ichoron.cpp index 0c470d2968e..65eaec5b634 100644 --- a/src/scripts/northrend/violet_hold/boss_ichoron.cpp +++ b/src/scripts/northrend/violet_hold/boss_ichoron.cpp @@ -236,7 +236,7 @@ struct boss_ichoronAI : public ScriptedAI bool bIsWaterElementsAlive = false; if (!m_waterElements.empty()) { - for (std::list<uint64>::iterator itr = m_waterElements.begin(); itr != m_waterElements.end(); ++itr) + for (std::list<uint64>::const_iterator itr = m_waterElements.begin(); itr != m_waterElements.end(); ++itr) if (Creature* pTemp = Unit::GetCreature(*m_creature, *itr)) if (pTemp->isAlive()) { diff --git a/src/scripts/northrend/violet_hold/boss_xevozz.cpp b/src/scripts/northrend/violet_hold/boss_xevozz.cpp index 7b5461ca11c..58bc0644c71 100644 --- a/src/scripts/northrend/violet_hold/boss_xevozz.cpp +++ b/src/scripts/northrend/violet_hold/boss_xevozz.cpp @@ -100,7 +100,7 @@ struct boss_xevozzAI : public ScriptedAI if (assistList.empty()) return; - for(std::list<Creature*>::iterator iter = assistList.begin(); iter != assistList.end(); ++iter) + for(std::list<Creature*>::const_iterator iter = assistList.begin(); iter != assistList.end(); ++iter) { if (Creature* pSphere = *iter) pSphere->Kill(pSphere, false); diff --git a/src/scripts/northrend/violet_hold/violet_hold.cpp b/src/scripts/northrend/violet_hold/violet_hold.cpp index 50bc441f688..16c53b937e9 100644 --- a/src/scripts/northrend/violet_hold/violet_hold.cpp +++ b/src/scripts/northrend/violet_hold/violet_hold.cpp @@ -105,7 +105,7 @@ struct npc_sinclariAI : public ScriptedAI std::list<Creature*> GuardList; m_creature->GetCreatureListWithEntryInGrid(GuardList, NPC_VIOLET_HOLD_GUARD, 40.0f); if (!GuardList.empty()) - for (std::list<Creature*>::iterator itr = GuardList.begin(); itr != GuardList.end(); ++itr) + for (std::list<Creature*>::const_iterator itr = GuardList.begin(); itr != GuardList.end(); ++itr) { if (Creature* pGuard = *itr) { @@ -122,7 +122,7 @@ struct npc_sinclariAI : public ScriptedAI std::list<Creature*> GuardList; m_creature->GetCreatureListWithEntryInGrid(GuardList, NPC_VIOLET_HOLD_GUARD, 40.0f); if (!GuardList.empty()) - for (std::list<Creature*>::iterator itr = GuardList.begin(); itr != GuardList.end(); ++itr) + for (std::list<Creature*>::const_iterator itr = GuardList.begin(); itr != GuardList.end(); ++itr) { if (Creature* pGuard = *itr) { diff --git a/src/scripts/northrend/zuldrak.cpp b/src/scripts/northrend/zuldrak.cpp index 359a7389f3a..0dbedc2d22f 100644 --- a/src/scripts/northrend/zuldrak.cpp +++ b/src/scripts/northrend/zuldrak.cpp @@ -37,11 +37,11 @@ struct npc_drakuru_shacklesAI : public ScriptedAI { npc_drakuru_shacklesAI(Creature* pCreature) : ScriptedAI(pCreature) {} - Unit* Rageclaw; + uint64 RageclawGUID; void Reset() { - Rageclaw = NULL; + RageclawGUID = 0; m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); float x, y, z; @@ -50,13 +50,15 @@ struct npc_drakuru_shacklesAI : public ScriptedAI if (Unit* summon = m_creature->SummonCreature(NPC_RAGECLAW, x, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 1000)) { - Rageclaw = summon; + RageclawGUID = summon->GetGUID(); LockRageclaw(); } } void LockRageclaw() { + Unit *Rageclaw = Unit::GetCreature(*m_creature, RageclawGUID); + // pointer check not needed m_creature->SetInFront(Rageclaw); Rageclaw->SetInFront(m_creature); @@ -69,6 +71,8 @@ struct npc_drakuru_shacklesAI : public ScriptedAI if (!pWho) return; + Creature *Rageclaw = Unit::GetCreature(*m_creature, RageclawGUID); + // pointer check not needed DoCast(Rageclaw, SPELL_FREE_RAGECLAW, true); m_creature->setDeathState(DEAD); @@ -78,7 +82,7 @@ struct npc_drakuru_shacklesAI : public ScriptedAI { if (pSpell->Id == SPELL_UNLOCK_SHACKLE) { - if (Rageclaw) + if (Creature *Rageclaw = Unit::GetCreature(*m_creature, RageclawGUID)) UnlockRageclaw(pCaster); else m_creature->setDeathState(JUST_DIED); @@ -240,10 +244,9 @@ struct npc_gurgthockAI : public ScriptedAI { npc_gurgthockAI(Creature* pCreature) : ScriptedAI(pCreature) { - pSummon = NULL; } - Unit* pSummon; + uint64 SummonGUID; std::list<uint64> SummonList; @@ -257,6 +260,7 @@ struct npc_gurgthockAI : public ScriptedAI void Reset() { + SummonGUID = 0; m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); uiTimer = 0; uiPhase = 0; @@ -275,7 +279,7 @@ struct npc_gurgthockAI : public ScriptedAI m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - for(std::list<uint64>::iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) + for(std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr) { if (Creature* pTemp = Unit::GetCreature(*m_creature, *itr)) if (pTemp) @@ -344,15 +348,16 @@ struct npc_gurgthockAI : public ScriptedAI switch(uiPhase) { case 1: - pSummon = m_creature->SummonCreature(NPC_ORINOKO_TUSKBREAKER, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000); + if (Creature *pSummon = m_creature->SummonCreature(NPC_ORINOKO_TUSKBREAKER, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000)) + SummonGUID = pSummon->GetGUID(); uiPhase = 2; uiTimer = 4000; break; case 2: - if (pSummon) + if (Creature *pSummon = Unit::GetCreature(*m_creature, SummonGUID)) pSummon->GetMotionMaster()->MoveJump(5776.319824, -2981.005371, 273.100037, 10.0f, 20.0f); uiPhase = 0; - pSummon = NULL; + SummonGUID = 0; break; case 3: DoScriptText(SAY_QUEST_ACCEPT_KORRAK_2, m_creature); @@ -360,7 +365,8 @@ struct npc_gurgthockAI : public ScriptedAI uiPhase = 4; break; case 4: - pSummon = m_creature->SummonCreature(NPC_KORRAK_BLOODRAGER, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000); + if (Creature *pSummon = m_creature->SummonCreature(NPC_KORRAK_BLOODRAGER, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000)) + SummonGUID = pSummon->GetGUID(); uiTimer = 3000; uiPhase = 0; break; @@ -454,7 +460,7 @@ struct npc_orinoko_tuskbreakerAI : public ScriptedAI uint32 uiBattleShoutTimer; uint32 uiFishyScentTimer; - Unit* pAffected; + uint64 AffectedGUID; uint64 uiWhisker; void Reset() @@ -465,7 +471,7 @@ struct npc_orinoko_tuskbreakerAI : public ScriptedAI uiBattleShoutTimer = 0; uiFishyScentTimer = 20000; uiWhisker = 0; - pAffected = NULL; + AffectedGUID = 0; } void EnterEvadeMode() @@ -509,8 +515,11 @@ struct npc_orinoko_tuskbreakerAI : public ScriptedAI if (uiFishyScentTimer <= uiDiff) { - if (pAffected = SelectUnit(SELECT_TARGET_RANDOM,0)) + if (Unit *pAffected = SelectUnit(SELECT_TARGET_RANDOM,0)) + { DoCast(pAffected, SPELL_FISHY_SCENT); + AffectedGUID = pAffected->GetGUID(); + } uiFishyScentTimer = 20000; } else uiFishyScentTimer -= uiDiff; @@ -535,8 +544,11 @@ struct npc_orinoko_tuskbreakerAI : public ScriptedAI pSummon->AI()->AttackStart(m_creature->getVictim()); break; case NPC_HUNGRY_PENGUIN: - if (pAffected && pAffected->isAlive()) - pSummon->AI()->AttackStart(pAffected); + if(Unit *pAffected = Unit::GetUnit(*m_creature, AffectedGUID)) + { + if (pAffected->isAlive()) + pSummon->AI()->AttackStart(pAffected); + } break; } } |
