Core/Script: Clean-Up in Scripts.

InstanceScript* m_instance -> InstanceScript* instance

Signed-off-by: Gyx <[email protected]>
This commit is contained in:
Gyx
2012-03-16 19:35:13 +08:00
parent 76c18e00c7
commit ddc0f5d7d6
19 changed files with 454 additions and 454 deletions
@@ -61,10 +61,10 @@ class boss_arlokk : public CreatureScript
{ {
boss_arlokkAI(Creature* creature) : ScriptedAI(creature) boss_arlokkAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiShadowWordPain_Timer; uint32 m_uiShadowWordPain_Timer;
uint32 m_uiGouge_Timer; uint32 m_uiGouge_Timer;
@@ -110,8 +110,8 @@ class boss_arlokk : public CreatureScript
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
m_instance->SetData(DATA_ARLOKK, NOT_STARTED); instance->SetData(DATA_ARLOKK, NOT_STARTED);
//we should be summoned, so despawn //we should be summoned, so despawn
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
@@ -124,8 +124,8 @@ class boss_arlokk : public CreatureScript
me->SetDisplayId(MODEL_ID_NORMAL); me->SetDisplayId(MODEL_ID_NORMAL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
if (m_instance) if (instance)
m_instance->SetData(DATA_ARLOKK, DONE); instance->SetData(DATA_ARLOKK, DONE);
} }
void DoSummonPhanters() void DoSummonPhanters()
@@ -271,12 +271,12 @@ class go_gong_of_bethekk : public GameObjectScript
bool OnGossipHello(Player* /*player*/, GameObject* go) bool OnGossipHello(Player* /*player*/, GameObject* go)
{ {
if (InstanceScript* m_instance = go->GetInstanceScript()) if (InstanceScript* instance = go->GetInstanceScript())
{ {
if (m_instance->GetData(DATA_ARLOKK) == DONE || m_instance->GetData(DATA_ARLOKK) == IN_PROGRESS) if (instance->GetData(DATA_ARLOKK) == DONE || instance->GetData(DATA_ARLOKK) == IN_PROGRESS)
return true; return true;
m_instance->SetData(DATA_ARLOKK, IN_PROGRESS); instance->SetData(DATA_ARLOKK, IN_PROGRESS);
return true; return true;
} }
@@ -57,10 +57,10 @@ class boss_hakkar : public CreatureScript
{ {
boss_hakkarAI(Creature* creature) : ScriptedAI(creature) boss_hakkarAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 BloodSiphon_Timer; uint32 BloodSiphon_Timer;
uint32 CorruptedBlood_Timer; uint32 CorruptedBlood_Timer;
@@ -156,9 +156,9 @@ class boss_hakkar : public CreatureScript
//Checking if Jeklik is dead. If not we cast her Aspect //Checking if Jeklik is dead. If not we cast her Aspect
if (CheckJeklik_Timer <= diff) if (CheckJeklik_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_JEKLIK) != DONE) if (instance->GetData(DATA_JEKLIK) != DONE)
{ {
if (AspectOfJeklik_Timer <= diff) if (AspectOfJeklik_Timer <= diff)
{ {
@@ -173,9 +173,9 @@ class boss_hakkar : public CreatureScript
//Checking if Venoxis is dead. If not we cast his Aspect //Checking if Venoxis is dead. If not we cast his Aspect
if (CheckVenoxis_Timer <= diff) if (CheckVenoxis_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_VENOXIS) != DONE) if (instance->GetData(DATA_VENOXIS) != DONE)
{ {
if (AspectOfVenoxis_Timer <= diff) if (AspectOfVenoxis_Timer <= diff)
{ {
@@ -190,9 +190,9 @@ class boss_hakkar : public CreatureScript
//Checking if Marli is dead. If not we cast her Aspect //Checking if Marli is dead. If not we cast her Aspect
if (CheckMarli_Timer <= diff) if (CheckMarli_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_MARLI) != DONE) if (instance->GetData(DATA_MARLI) != DONE)
{ {
if (AspectOfMarli_Timer <= diff) if (AspectOfMarli_Timer <= diff)
{ {
@@ -208,9 +208,9 @@ class boss_hakkar : public CreatureScript
//Checking if Thekal is dead. If not we cast his Aspect //Checking if Thekal is dead. If not we cast his Aspect
if (CheckThekal_Timer <= diff) if (CheckThekal_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_THEKAL) != DONE) if (instance->GetData(DATA_THEKAL) != DONE)
{ {
if (AspectOfThekal_Timer <= diff) if (AspectOfThekal_Timer <= diff)
{ {
@@ -225,9 +225,9 @@ class boss_hakkar : public CreatureScript
//Checking if Arlokk is dead. If yes we cast her Aspect //Checking if Arlokk is dead. If yes we cast her Aspect
if (CheckArlokk_Timer <= diff) if (CheckArlokk_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_ARLOKK) != DONE) if (instance->GetData(DATA_ARLOKK) != DONE)
{ {
if (AspectOfArlokk_Timer <= diff) if (AspectOfArlokk_Timer <= diff)
{ {
@@ -56,10 +56,10 @@ class boss_jeklik : public CreatureScript
{ {
boss_jeklikAI(Creature* creature) : ScriptedAI(creature) boss_jeklikAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 Charge_Timer; uint32 Charge_Timer;
uint32 SonicBurst_Timer; uint32 SonicBurst_Timer;
@@ -98,8 +98,8 @@ class boss_jeklik : public CreatureScript
{ {
DoScriptText(SAY_DEATH, me); DoScriptText(SAY_DEATH, me);
if (m_instance) if (instance)
m_instance->SetData(DATA_JEKLIK, DONE); instance->SetData(DATA_JEKLIK, DONE);
} }
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
@@ -238,10 +238,10 @@ class mob_batrider : public CreatureScript
{ {
mob_batriderAI(Creature* creature) : ScriptedAI(creature) mob_batriderAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 Bomb_Timer; uint32 Bomb_Timer;
uint32 Check_Timer; uint32 Check_Timer;
@@ -274,9 +274,9 @@ class mob_batrider : public CreatureScript
//Check_Timer //Check_Timer
if (Check_Timer <= diff) if (Check_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_JEKLIK) == DONE) if (instance->GetData(DATA_JEKLIK) == DONE)
{ {
me->setDeathState(JUST_DIED); me->setDeathState(JUST_DIED);
me->RemoveCorpse(); me->RemoveCorpse();
@@ -57,7 +57,7 @@ class boss_mandokir : public CreatureScript
{ {
boss_mandokirAI(Creature* creature) : ScriptedAI(creature) boss_mandokirAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
uint32 KillCount; uint32 KillCount;
@@ -72,7 +72,7 @@ class boss_mandokir : public CreatureScript
float targetY; float targetY;
float targetZ; float targetZ;
InstanceScript* m_instance; InstanceScript* instance;
bool endWatch; bool endWatch;
bool someWatched; bool someWatched;
@@ -116,9 +116,9 @@ class boss_mandokir : public CreatureScript
{ {
DoScriptText(SAY_DING_KILL, me); DoScriptText(SAY_DING_KILL, me);
if (m_instance) if (instance)
{ {
uint64 JindoGUID = m_instance->GetData64(DATA_JINDO); uint64 JindoGUID = instance->GetData64(DATA_JINDO);
if (JindoGUID) if (JindoGUID)
{ {
if (Unit* jTemp = Unit::GetUnit(*me, JindoGUID)) if (Unit* jTemp = Unit::GetUnit(*me, JindoGUID))
@@ -256,9 +256,9 @@ class boss_mandokir : public CreatureScript
//Checking if Ohgan is dead. If yes Mandokir will enrage. //Checking if Ohgan is dead. If yes Mandokir will enrage.
if (Check_Timer <= diff) if (Check_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_OHGAN) == DONE) if (instance->GetData(DATA_OHGAN) == DONE)
{ {
if (!RaptorDead) if (!RaptorDead)
{ {
@@ -296,11 +296,11 @@ class mob_ohgan : public CreatureScript
{ {
mob_ohganAI(Creature* creature) : ScriptedAI(creature) mob_ohganAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
uint32 SunderArmor_Timer; uint32 SunderArmor_Timer;
InstanceScript* m_instance; InstanceScript* instance;
void Reset() void Reset()
{ {
@@ -311,8 +311,8 @@ class mob_ohgan : public CreatureScript
void JustDied(Unit* /*Killer*/) void JustDied(Unit* /*Killer*/)
{ {
if (m_instance) if (instance)
m_instance->SetData(DATA_OHGAN, DONE); instance->SetData(DATA_OHGAN, DONE);
} }
void UpdateAI (const uint32 diff) void UpdateAI (const uint32 diff)
@@ -53,10 +53,10 @@ class boss_marli : public CreatureScript
{ {
boss_marliAI(Creature* creature) : ScriptedAI(creature) boss_marliAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 SpawnStartSpiders_Timer; uint32 SpawnStartSpiders_Timer;
uint32 PoisonVolley_Timer; uint32 PoisonVolley_Timer;
@@ -91,8 +91,8 @@ class boss_marli : public CreatureScript
void JustDied(Unit* /*Killer*/) void JustDied(Unit* /*Killer*/)
{ {
DoScriptText(SAY_DEATH, me); DoScriptText(SAY_DEATH, me);
if (m_instance) if (instance)
m_instance->SetData(DATA_MARLI, DONE); instance->SetData(DATA_MARLI, DONE);
} }
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
@@ -68,7 +68,7 @@ class boss_thekal : public CreatureScript
{ {
boss_thekalAI(Creature* creature) : ScriptedAI(creature) boss_thekalAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
uint32 MortalCleave_Timer; uint32 MortalCleave_Timer;
@@ -81,7 +81,7 @@ class boss_thekal : public CreatureScript
uint32 Check_Timer; uint32 Check_Timer;
uint32 Resurrect_Timer; uint32 Resurrect_Timer;
InstanceScript* m_instance; InstanceScript* instance;
bool Enraged; bool Enraged;
bool PhaseTwo; bool PhaseTwo;
bool WasDead; bool WasDead;
@@ -111,14 +111,14 @@ class boss_thekal : public CreatureScript
void JustDied(Unit* /*Killer*/) void JustDied(Unit* /*Killer*/)
{ {
DoScriptText(SAY_DEATH, me); DoScriptText(SAY_DEATH, me);
if (m_instance) if (instance)
m_instance->SetData(DATA_THEKAL, DONE); instance->SetData(DATA_THEKAL, DONE);
} }
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
m_instance->SetData(DATA_THEKAL, NOT_STARTED); instance->SetData(DATA_THEKAL, NOT_STARTED);
} }
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
@@ -129,26 +129,26 @@ class boss_thekal : public CreatureScript
//Check_Timer for the death of LorKhan and Zath. //Check_Timer for the death of LorKhan and Zath.
if (!WasDead && Check_Timer <= diff) if (!WasDead && Check_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_LORKHAN) == SPECIAL) if (instance->GetData(DATA_LORKHAN) == SPECIAL)
{ {
//Resurrect LorKhan //Resurrect LorKhan
if (Unit* pLorKhan = Unit::GetUnit((*me), m_instance->GetData64(DATA_LORKHAN))) if (Unit* pLorKhan = Unit::GetUnit((*me), instance->GetData64(DATA_LORKHAN)))
{ {
pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pLorKhan->setFaction(14); pLorKhan->setFaction(14);
pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
pLorKhan->SetFullHealth(); pLorKhan->SetFullHealth();
m_instance->SetData(DATA_LORKHAN, DONE); instance->SetData(DATA_LORKHAN, DONE);
} }
} }
if (m_instance->GetData(DATA_ZATH) == SPECIAL) if (instance->GetData(DATA_ZATH) == SPECIAL)
{ {
//Resurrect Zath //Resurrect Zath
Unit* pZath = Unit::GetUnit((*me), m_instance->GetData64(DATA_ZATH)); Unit* pZath = Unit::GetUnit((*me), instance->GetData64(DATA_ZATH));
if (pZath) if (pZath)
{ {
pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
@@ -156,7 +156,7 @@ class boss_thekal : public CreatureScript
pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
pZath->SetFullHealth(); pZath->SetFullHealth();
m_instance->SetData(DATA_ZATH, DONE); instance->SetData(DATA_ZATH, DONE);
} }
} }
} }
@@ -185,8 +185,8 @@ class boss_thekal : public CreatureScript
me->SetStandState(UNIT_STAND_STATE_SLEEP); me->SetStandState(UNIT_STAND_STATE_SLEEP);
me->AttackStop(); me->AttackStop();
if (m_instance) if (instance)
m_instance->SetData(DATA_THEKAL, SPECIAL); instance->SetData(DATA_THEKAL, SPECIAL);
WasDead=true; WasDead=true;
} }
@@ -279,7 +279,7 @@ class mob_zealot_lorkhan : public CreatureScript
{ {
mob_zealot_lorkhanAI(Creature* creature) : ScriptedAI(creature) mob_zealot_lorkhanAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
uint32 Shield_Timer; uint32 Shield_Timer;
@@ -290,7 +290,7 @@ class mob_zealot_lorkhan : public CreatureScript
bool FakeDeath; bool FakeDeath;
InstanceScript* m_instance; InstanceScript* instance;
void Reset() void Reset()
{ {
@@ -302,8 +302,8 @@ class mob_zealot_lorkhan : public CreatureScript
FakeDeath = false; FakeDeath = false;
if (m_instance) if (instance)
m_instance->SetData(DATA_LORKHAN, NOT_STARTED); instance->SetData(DATA_LORKHAN, NOT_STARTED);
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -335,10 +335,10 @@ class mob_zealot_lorkhan : public CreatureScript
//Casting Greaterheal to Thekal or Zath if they are in meele range. //Casting Greaterheal to Thekal or Zath if they are in meele range.
if (GreaterHeal_Timer <= diff) if (GreaterHeal_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
Unit* pThekal = Unit::GetUnit((*me), m_instance->GetData64(DATA_THEKAL)); Unit* pThekal = Unit::GetUnit((*me), instance->GetData64(DATA_THEKAL));
Unit* pZath = Unit::GetUnit((*me), m_instance->GetData64(DATA_ZATH)); Unit* pZath = Unit::GetUnit((*me), instance->GetData64(DATA_ZATH));
if (!pThekal || !pZath) if (!pThekal || !pZath)
return; return;
@@ -369,12 +369,12 @@ class mob_zealot_lorkhan : public CreatureScript
//Check_Timer for the death of LorKhan and Zath. //Check_Timer for the death of LorKhan and Zath.
if (!FakeDeath && Check_Timer <= diff) if (!FakeDeath && Check_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_THEKAL) == SPECIAL) if (instance->GetData(DATA_THEKAL) == SPECIAL)
{ {
//Resurrect Thekal //Resurrect Thekal
if (Unit* pThekal = Unit::GetUnit((*me), m_instance->GetData64(DATA_THEKAL))) if (Unit* pThekal = Unit::GetUnit((*me), instance->GetData64(DATA_THEKAL)))
{ {
pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -383,10 +383,10 @@ class mob_zealot_lorkhan : public CreatureScript
} }
} }
if (m_instance->GetData(DATA_ZATH) == SPECIAL) if (instance->GetData(DATA_ZATH) == SPECIAL)
{ {
//Resurrect Zath //Resurrect Zath
if (Unit* pZath = Unit::GetUnit((*me), m_instance->GetData64(DATA_ZATH))) if (Unit* pZath = Unit::GetUnit((*me), instance->GetData64(DATA_ZATH)))
{ {
pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -409,8 +409,8 @@ class mob_zealot_lorkhan : public CreatureScript
me->setFaction(35); me->setFaction(35);
me->AttackStop(); me->AttackStop();
if (m_instance) if (instance)
m_instance->SetData(DATA_LORKHAN, SPECIAL); instance->SetData(DATA_LORKHAN, SPECIAL);
FakeDeath = true; FakeDeath = true;
} }
@@ -439,7 +439,7 @@ class mob_zealot_zath : public CreatureScript
{ {
mob_zealot_zathAI(Creature* creature) : ScriptedAI(creature) mob_zealot_zathAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
uint32 SweepingStrikes_Timer; uint32 SweepingStrikes_Timer;
@@ -451,7 +451,7 @@ class mob_zealot_zath : public CreatureScript
bool FakeDeath; bool FakeDeath;
InstanceScript* m_instance; InstanceScript* instance;
void Reset() void Reset()
{ {
@@ -464,8 +464,8 @@ class mob_zealot_zath : public CreatureScript
FakeDeath = false; FakeDeath = false;
if (m_instance) if (instance)
m_instance->SetData(DATA_ZATH, NOT_STARTED); instance->SetData(DATA_ZATH, NOT_STARTED);
me->SetStandState(UNIT_STAND_STATE_STAND); me->SetStandState(UNIT_STAND_STATE_STAND);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -522,12 +522,12 @@ class mob_zealot_zath : public CreatureScript
//Check_Timer for the death of LorKhan and Zath. //Check_Timer for the death of LorKhan and Zath.
if (!FakeDeath && Check_Timer <= diff) if (!FakeDeath && Check_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(DATA_LORKHAN) == SPECIAL) if (instance->GetData(DATA_LORKHAN) == SPECIAL)
{ {
//Resurrect LorKhan //Resurrect LorKhan
if (Unit* pLorKhan = Unit::GetUnit((*me), m_instance->GetData64(DATA_LORKHAN))) if (Unit* pLorKhan = Unit::GetUnit((*me), instance->GetData64(DATA_LORKHAN)))
{ {
pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -536,10 +536,10 @@ class mob_zealot_zath : public CreatureScript
} }
} }
if (m_instance->GetData(DATA_THEKAL) == SPECIAL) if (instance->GetData(DATA_THEKAL) == SPECIAL)
{ {
//Resurrect Thekal //Resurrect Thekal
if (Unit* pThekal = Unit::GetUnit((*me), m_instance->GetData64(DATA_THEKAL))) if (Unit* pThekal = Unit::GetUnit((*me), instance->GetData64(DATA_THEKAL)))
{ {
pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -562,8 +562,8 @@ class mob_zealot_zath : public CreatureScript
me->setFaction(35); me->setFaction(35);
me->AttackStop(); me->AttackStop();
if (m_instance) if (instance)
m_instance->SetData(DATA_ZATH, SPECIAL); instance->SetData(DATA_ZATH, SPECIAL);
FakeDeath = true; FakeDeath = true;
} }
@@ -114,11 +114,11 @@ public:
{ {
boss_onyxiaAI(Creature* creature) : ScriptedAI(creature), Summons(me) boss_onyxiaAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
Reset(); Reset();
} }
InstanceScript* m_instance; InstanceScript* instance;
SummonList Summons; SummonList Summons;
uint32 m_uiPhase; uint32 m_uiPhase;
@@ -169,11 +169,11 @@ public:
m_uiSummonWhelpCount = 0; m_uiSummonWhelpCount = 0;
m_bIsMoving = false; m_bIsMoving = false;
if (m_instance) if (instance)
{ {
m_instance->SetData(DATA_ONYXIA, NOT_STARTED); instance->SetData(DATA_ONYXIA, NOT_STARTED);
m_instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase); instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
m_instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
} }
} }
@@ -182,17 +182,17 @@ public:
DoScriptText(SAY_AGGRO, me); DoScriptText(SAY_AGGRO, me);
me->SetInCombatWithZone(); me->SetInCombatWithZone();
if (m_instance) if (instance)
{ {
m_instance->SetData(DATA_ONYXIA, IN_PROGRESS); instance->SetData(DATA_ONYXIA, IN_PROGRESS);
m_instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
} }
} }
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
if (m_instance) if (instance)
m_instance->SetData(DATA_ONYXIA, DONE); instance->SetData(DATA_ONYXIA, DONE);
Summons.DespawnAll(); Summons.DespawnAll();
} }
@@ -265,8 +265,8 @@ public:
me->GetMotionMaster()->MovePoint(11, Phase2Location.GetPositionX(), Phase2Location.GetPositionY(), Phase2Location.GetPositionZ()+25); me->GetMotionMaster()->MovePoint(11, Phase2Location.GetPositionX(), Phase2Location.GetPositionY(), Phase2Location.GetPositionZ()+25);
me->SetSpeed(MOVE_FLIGHT, 1.0f); me->SetSpeed(MOVE_FLIGHT, 1.0f);
DoScriptText(SAY_PHASE_2_TRANS, me); DoScriptText(SAY_PHASE_2_TRANS, me);
if (m_instance) if (instance)
m_instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase); instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
m_uiWhelpTimer = 5000; m_uiWhelpTimer = 5000;
m_uiLairGuardTimer = 15000; m_uiLairGuardTimer = 15000;
break; break;
@@ -301,9 +301,9 @@ public:
(pSpell->Id >= 22267 && pSpell->Id <= 22268)) && (pSpell->Id >= 22267 && pSpell->Id <= 22268)) &&
(target->GetTypeId() == TYPEID_PLAYER)) (target->GetTypeId() == TYPEID_PLAYER))
{ {
if (m_instance) if (instance)
{ {
m_instance->SetData(DATA_SHE_DEEP_BREATH_MORE, FAIL); instance->SetData(DATA_SHE_DEEP_BREATH_MORE, FAIL);
} }
} }
} }
@@ -362,8 +362,8 @@ public:
Trinity::GameObjectInRangeCheck check(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 15); Trinity::GameObjectInRangeCheck check(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 15);
Trinity::GameObjectLastSearcher<Trinity::GameObjectInRangeCheck> searcher(me, pFloor, check); Trinity::GameObjectLastSearcher<Trinity::GameObjectInRangeCheck> searcher(me, pFloor, check);
me->VisitNearbyGridObject(30, searcher); me->VisitNearbyGridObject(30, searcher);
if (m_instance && pFloor) if (instance && pFloor)
m_instance->SetData64(DATA_FLOOR_ERUPTION_GUID, pFloor->GetGUID()); instance->SetData64(DATA_FLOOR_ERUPTION_GUID, pFloor->GetGUID());
m_uiBellowingRoarTimer = 30000; m_uiBellowingRoarTimer = 30000;
} }
else else
@@ -409,8 +409,8 @@ public:
if (HealthBelowPct(40)) if (HealthBelowPct(40))
{ {
m_uiPhase = PHASE_END; m_uiPhase = PHASE_END;
if (m_instance) if (instance)
m_instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase); instance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
DoScriptText(SAY_PHASE_3_TRANS, me); DoScriptText(SAY_PHASE_3_TRANS, me);
SetCombatMovement(true); SetCombatMovement(true);
@@ -141,10 +141,10 @@ public:
{ {
boss_anubarak_trialAI(Creature* creature) : ScriptedAI(creature), Summons(me) boss_anubarak_trialAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
SummonList Summons; SummonList Summons;
std::list<uint64> m_vBurrowGUID; std::list<uint64> m_vBurrowGUID;
@@ -195,8 +195,8 @@ public:
if (who->GetTypeId() == TYPEID_PLAYER) if (who->GetTypeId() == TYPEID_PLAYER)
{ {
DoScriptText(urand(0, 1) ? SAY_KILL1 : SAY_KILL2, me); DoScriptText(urand(0, 1) ? SAY_KILL1 : SAY_KILL2, me);
if (m_instance) if (instance)
m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0); instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
} }
} }
@@ -211,8 +211,8 @@ public:
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
m_instance->SetData(TYPE_ANUBARAK, FAIL); instance->SetData(TYPE_ANUBARAK, FAIL);
//Summon Scarab Swarms neutral at random places //Summon Scarab Swarms neutral at random places
for (int i=0; i < 10; i++) for (int i=0; i < 10; i++)
if (Creature* temp = me->SummonCreature(NPC_SCARAB, AnubarakLoc[1].GetPositionX()+urand(0, 50)-25, AnubarakLoc[1].GetPositionY()+urand(0, 50)-25, AnubarakLoc[1].GetPositionZ())) if (Creature* temp = me->SummonCreature(NPC_SCARAB, AnubarakLoc[1].GetPositionX()+urand(0, 50)-25, AnubarakLoc[1].GetPositionY()+urand(0, 50)-25, AnubarakLoc[1].GetPositionZ()))
@@ -223,8 +223,8 @@ public:
{ {
Summons.DespawnAll(); Summons.DespawnAll();
DoScriptText(SAY_DEATH, me); DoScriptText(SAY_DEATH, me);
if (m_instance) if (instance)
m_instance->SetData(TYPE_ANUBARAK, DONE); instance->SetData(TYPE_ANUBARAK, DONE);
} }
void JustSummoned(Creature* summoned) void JustSummoned(Creature* summoned)
@@ -260,8 +260,8 @@ public:
DoScriptText(SAY_AGGRO, me); DoScriptText(SAY_AGGRO, me);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetInCombatWithZone(); me->SetInCombatWithZone();
if (m_instance) if (instance)
m_instance->SetData(TYPE_ANUBARAK, IN_PROGRESS); instance->SetData(TYPE_ANUBARAK, IN_PROGRESS);
//Despawn Scarab Swarms neutral //Despawn Scarab Swarms neutral
Summons.DoAction(NPC_SCARAB, ACTION_SCARAB_SUBMERGE); Summons.DoAction(NPC_SCARAB, ACTION_SCARAB_SUBMERGE);
//Spawn Burrow //Spawn Burrow
@@ -426,10 +426,10 @@ public:
{ {
mob_swarm_scarabAI(Creature* creature) : ScriptedAI(creature) mob_swarm_scarabAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiDeterminationTimer; uint32 m_uiDeterminationTimer;
@@ -493,10 +493,10 @@ public:
{ {
mob_nerubian_burrowerAI(Creature* creature) : ScriptedAI(creature) mob_nerubian_burrowerAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiSpiderFrenzyTimer; uint32 m_uiSpiderFrenzyTimer;
uint32 m_uiSubmergeTimer; uint32 m_uiSubmergeTimer;
@@ -639,10 +639,10 @@ public:
{ {
mob_anubarak_spikeAI(Creature* creature) : ScriptedAI(creature) mob_anubarak_spikeAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiIncreaseSpeedTimer; uint32 m_uiIncreaseSpeedTimer;
uint8 m_uiSpeed; uint8 m_uiSpeed;
uint64 m_uiTargetGUID; uint64 m_uiTargetGUID;
@@ -674,7 +674,7 @@ public:
Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID); Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID);
if (!target || !target->isAlive() || !target->HasAura(SPELL_MARK)) if (!target || !target->isAlive() || !target->HasAura(SPELL_MARK))
{ {
if (Creature* pAnubarak = Unit::GetCreature((*me), m_instance->GetData64(NPC_ANUBARAK))) if (Creature* pAnubarak = Unit::GetCreature((*me), instance->GetData64(NPC_ANUBARAK)))
pAnubarak->CastSpell(pAnubarak, SPELL_SPIKE_TELE, false); pAnubarak->CastSpell(pAnubarak, SPELL_SPIKE_TELE, false);
me->DisappearAndDie(); me->DisappearAndDie();
return; return;
@@ -64,10 +64,10 @@ public:
{ {
boss_toc_champion_controllerAI(Creature* creature) : ScriptedAI(creature), Summons(me) boss_toc_champion_controllerAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{ {
m_instance = (InstanceScript*) creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
SummonList Summons; SummonList Summons;
uint32 m_uiChampionsNotStarted; uint32 m_uiChampionsNotStarted;
uint32 m_uiChampionsFailed; uint32 m_uiChampionsFailed;
@@ -101,7 +101,7 @@ public:
vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_WARRIOR : NPC_ALLIANCE_WARRIOR); vOtherEntries.push_back(playerTeam == ALLIANCE ? NPC_HORDE_WARRIOR : NPC_ALLIANCE_WARRIOR);
uint8 healersSubtracted = 2; uint8 healersSubtracted = 2;
if (m_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_NORMAL || m_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_HEROIC) if (instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_NORMAL || instance->instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_HEROIC)
healersSubtracted = 1; healersSubtracted = 1;
for (uint8 i = 0; i < healersSubtracted; ++i) for (uint8 i = 0; i < healersSubtracted; ++i)
{ {
@@ -136,7 +136,7 @@ public:
vHealersEntries.erase(vHealersEntries.begin()+pos); vHealersEntries.erase(vHealersEntries.begin()+pos);
} }
if (m_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_NORMAL || m_instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_HEROIC) if (instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_NORMAL || instance->instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_HEROIC)
for (uint8 i = 0; i < 4; ++i) for (uint8 i = 0; i < 4; ++i)
vOtherEntries.erase(vOtherEntries.begin()+urand(0, vOtherEntries.size()-1)); vOtherEntries.erase(vOtherEntries.begin()+urand(0, vOtherEntries.size()-1));
@@ -214,7 +214,7 @@ public:
m_uiChampionsFailed++; m_uiChampionsFailed++;
if (m_uiChampionsFailed + m_uiChampionsKilled >= Summons.size()) if (m_uiChampionsFailed + m_uiChampionsKilled >= Summons.size())
{ {
m_instance->SetData(TYPE_CRUSADERS, FAIL); instance->SetData(TYPE_CRUSADERS, FAIL);
Summons.DespawnAll(); Summons.DespawnAll();
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
} }
@@ -227,16 +227,16 @@ public:
m_uiChampionsKilled = 0; m_uiChampionsKilled = 0;
m_bInProgress = true; m_bInProgress = true;
Summons.DoZoneInCombat(); Summons.DoZoneInCombat();
m_instance->SetData(TYPE_CRUSADERS, IN_PROGRESS); instance->SetData(TYPE_CRUSADERS, IN_PROGRESS);
} }
break; break;
case DONE: case DONE:
m_uiChampionsKilled++; m_uiChampionsKilled++;
if (m_uiChampionsKilled == 1) if (m_uiChampionsKilled == 1)
m_instance->SetData(TYPE_CRUSADERS, SPECIAL); instance->SetData(TYPE_CRUSADERS, SPECIAL);
else if (m_uiChampionsKilled >= Summons.size()) else if (m_uiChampionsKilled >= Summons.size())
{ {
m_instance->SetData(TYPE_CRUSADERS, DONE); instance->SetData(TYPE_CRUSADERS, DONE);
Summons.DespawnAll(); Summons.DespawnAll();
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
} }
@@ -253,11 +253,11 @@ struct boss_faction_championsAI : public ScriptedAI
{ {
boss_faction_championsAI(Creature* creature, uint32 aitype) : ScriptedAI(creature) boss_faction_championsAI(Creature* creature, uint32 aitype) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*) creature->GetInstanceScript(); instance = creature->GetInstanceScript();
mAIType = aitype; mAIType = aitype;
} }
InstanceScript* m_instance; InstanceScript* instance;
uint64 championControllerGUID; uint64 championControllerGUID;
uint32 mAIType; uint32 mAIType;
@@ -273,8 +273,8 @@ struct boss_faction_championsAI : public ScriptedAI
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
if (Creature* pChampionController = Unit::GetCreature((*me), m_instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, FAIL); pChampionController->AI()->SetData(2, FAIL);
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
} }
@@ -326,8 +326,8 @@ struct boss_faction_championsAI : public ScriptedAI
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
if (mAIType != AI_PET) if (mAIType != AI_PET)
if (m_instance) if (instance)
if (Creature* pChampionController = Unit::GetCreature((*me), m_instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, DONE); pChampionController->AI()->SetData(2, DONE);
} }
@@ -335,8 +335,8 @@ struct boss_faction_championsAI : public ScriptedAI
{ {
DoCast(me, SPELL_ANTI_AOE, true); DoCast(me, SPELL_ANTI_AOE, true);
me->SetInCombatWithZone(); me->SetInCombatWithZone();
if (m_instance) if (instance)
if (Creature* pChampionController = Unit::GetCreature((*me), m_instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, IN_PROGRESS); pChampionController->AI()->SetData(2, IN_PROGRESS);
} }
@@ -351,18 +351,18 @@ struct boss_faction_championsAI : public ScriptedAI
if (Player* player = players.begin()->getSource()) if (Player* player = players.begin()->getSource())
TeamInInstance = player->GetTeam(); TeamInInstance = player->GetTeam();
if (m_instance) if (instance)
{ {
if (TeamInInstance == ALLIANCE) if (TeamInInstance == ALLIANCE)
{ {
if (Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_VARIAN))) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_VARIAN)))
DoScriptText(SAY_VARIAN_KILL_HORDE_PLAYER4+urand(0, 3), temp); // + cause we are on negative DoScriptText(SAY_VARIAN_KILL_HORDE_PLAYER4+urand(0, 3), temp); // + cause we are on negative
} }
else else
if (Creature* temp = me->FindNearestCreature(NPC_GARROSH, 300.f)) if (Creature* temp = me->FindNearestCreature(NPC_GARROSH, 300.f))
DoScriptText(SAY_GARROSH_KILL_ALLIANCE_PLAYER4+urand(0, 3), temp); // + cause we are on negative DoScriptText(SAY_GARROSH_KILL_ALLIANCE_PLAYER4+urand(0, 3), temp); // + cause we are on negative
m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0); instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
} }
} }
} }
@@ -106,11 +106,11 @@ public:
{ {
boss_jaraxxusAI(Creature* creature) : ScriptedAI(creature), Summons(me) boss_jaraxxusAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
Reset(); Reset();
} }
InstanceScript* m_instance; InstanceScript* instance;
SummonList Summons; SummonList Summons;
@@ -124,8 +124,8 @@ public:
void Reset() void Reset()
{ {
if (m_instance) if (instance)
m_instance->SetData(TYPE_JARAXXUS, NOT_STARTED); instance->SetData(TYPE_JARAXXUS, NOT_STARTED);
SetEquipmentSlots(false, EQUIP_MAIN, EQUIP_OFFHAND, EQUIP_RANGED); SetEquipmentSlots(false, EQUIP_MAIN, EQUIP_OFFHAND, EQUIP_RANGED);
m_uiFelFireballTimer = 5*IN_MILLISECONDS; m_uiFelFireballTimer = 5*IN_MILLISECONDS;
m_uiFelLightningTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS); m_uiFelLightningTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
@@ -139,8 +139,8 @@ public:
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
m_instance->SetData(TYPE_JARAXXUS, FAIL); instance->SetData(TYPE_JARAXXUS, FAIL);
DoCast(me, SPELL_JARAXXUS_CHAINS); DoCast(me, SPELL_JARAXXUS_CHAINS);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_PASSIVE); me->SetReactState(REACT_PASSIVE);
@@ -150,8 +150,8 @@ public:
{ {
if (who->GetTypeId() == TYPEID_PLAYER) if (who->GetTypeId() == TYPEID_PLAYER)
{ {
if (m_instance) if (instance)
m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0); instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
} }
} }
@@ -159,8 +159,8 @@ public:
{ {
Summons.DespawnAll(); Summons.DespawnAll();
DoScriptText(SAY_DEATH, me); DoScriptText(SAY_DEATH, me);
if (m_instance) if (instance)
m_instance->SetData(TYPE_JARAXXUS, DONE); instance->SetData(TYPE_JARAXXUS, DONE);
} }
void JustSummoned(Creature* summoned) void JustSummoned(Creature* summoned)
@@ -171,8 +171,8 @@ public:
void EnterCombat(Unit* /*who*/) void EnterCombat(Unit* /*who*/)
{ {
me->SetInCombatWithZone(); me->SetInCombatWithZone();
if (m_instance) if (instance)
m_instance->SetData(TYPE_JARAXXUS, IN_PROGRESS); instance->SetData(TYPE_JARAXXUS, IN_PROGRESS);
DoScriptText(SAY_AGGRO, me); DoScriptText(SAY_AGGRO, me);
} }
@@ -289,11 +289,11 @@ public:
{ {
mob_infernal_volcanoAI(Creature* creature) : Scripted_NoMovementAI(creature), Summons(me) mob_infernal_volcanoAI(Creature* creature) : Scripted_NoMovementAI(creature), Summons(me)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
Reset(); Reset();
} }
InstanceScript* m_instance; InstanceScript* instance;
SummonList Summons; SummonList Summons;
@@ -344,11 +344,11 @@ public:
{ {
mob_fel_infernalAI(Creature* creature) : ScriptedAI(creature) mob_fel_infernalAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
Reset(); Reset();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiFelStreakTimer; uint32 m_uiFelStreakTimer;
void Reset() void Reset()
@@ -368,7 +368,7 @@ public:
if (!UpdateVictim()) if (!UpdateVictim())
return; return;
if (m_instance && m_instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS) if (instance && instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
if (m_uiFelStreakTimer <= uiDiff) if (m_uiFelStreakTimer <= uiDiff)
@@ -398,11 +398,11 @@ public:
{ {
mob_nether_portalAI(Creature* creature) : ScriptedAI(creature), Summons(me) mob_nether_portalAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
Reset(); Reset();
} }
InstanceScript* m_instance; InstanceScript* instance;
SummonList Summons; SummonList Summons;
@@ -453,13 +453,13 @@ public:
{ {
mob_mistress_of_painAI(Creature* creature) : ScriptedAI(creature) mob_mistress_of_painAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
if (m_instance) if (instance)
m_instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, INCREASE); instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, INCREASE);
Reset(); Reset();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiShivanSlashTimer; uint32 m_uiShivanSlashTimer;
uint32 m_uiSpinningStrikeTimer; uint32 m_uiSpinningStrikeTimer;
uint32 m_uiMistressKissTimer; uint32 m_uiMistressKissTimer;
@@ -474,13 +474,13 @@ public:
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
if (m_instance) if (instance)
m_instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, DECREASE); instance->SetData(DATA_MISTRESS_OF_PAIN_COUNT, DECREASE);
} }
void UpdateAI(const uint32 uiDiff) void UpdateAI(const uint32 uiDiff)
{ {
if (m_instance && m_instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS) if (instance && instance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
{ {
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
return; return;
@@ -123,10 +123,10 @@ public:
{ {
boss_gormokAI(Creature* creature) : ScriptedAI(creature), Summons(me) boss_gormokAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiImpaleTimer; uint32 m_uiImpaleTimer;
uint32 m_uiStaggeringStompTimer; uint32 m_uiStaggeringStompTimer;
@@ -151,7 +151,7 @@ public:
void EnterEvadeMode() void EnterEvadeMode()
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
ScriptedAI::EnterEvadeMode(); ScriptedAI::EnterEvadeMode();
} }
@@ -163,7 +163,7 @@ public:
switch (pointId) switch (pointId)
{ {
case 0: case 0:
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_AGGRESSIVE); me->SetReactState(REACT_AGGRESSIVE);
me->SetInCombatWithZone(); me->SetInCombatWithZone();
@@ -173,16 +173,16 @@ public:
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
if (m_instance) if (instance)
m_instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_DONE); instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_DONE);
} }
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
m_instance->SetData(TYPE_NORTHREND_BEASTS, FAIL); instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
} }
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
} }
@@ -190,7 +190,7 @@ public:
void EnterCombat(Unit* /*who*/) void EnterCombat(Unit* /*who*/)
{ {
me->SetInCombatWithZone(); me->SetInCombatWithZone();
m_instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_IN_PROGRESS); instance->SetData(TYPE_NORTHREND_BEASTS, GORMOK_IN_PROGRESS);
} }
void JustSummoned(Creature* summon) void JustSummoned(Creature* summon)
@@ -263,12 +263,12 @@ public:
{ {
mob_snobold_vassalAI(Creature* creature) : ScriptedAI(creature) mob_snobold_vassalAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
if (m_instance) if (instance)
m_instance->SetData(DATA_SNOBOLD_COUNT, INCREASE); instance->SetData(DATA_SNOBOLD_COUNT, INCREASE);
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiFireBombTimer; uint32 m_uiFireBombTimer;
uint32 m_uiBatterTimer; uint32 m_uiBatterTimer;
uint32 m_uiHeadCrackTimer; uint32 m_uiHeadCrackTimer;
@@ -284,15 +284,15 @@ public:
m_uiTargetGUID = 0; m_uiTargetGUID = 0;
m_bTargetDied = false; m_bTargetDied = false;
if (m_instance) if (instance)
m_uiBossGUID = m_instance->GetData64(NPC_GORMOK); m_uiBossGUID = instance->GetData64(NPC_GORMOK);
//Workaround for Snobold //Workaround for Snobold
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
} }
void EnterEvadeMode() void EnterEvadeMode()
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
ScriptedAI::EnterEvadeMode(); ScriptedAI::EnterEvadeMode();
} }
@@ -328,8 +328,8 @@ public:
if (Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID)) if (Unit* target = Unit::GetPlayer(*me, m_uiTargetGUID))
if (target->isAlive()) if (target->isAlive())
target->RemoveAurasDueToSpell(SPELL_SNOBOLLED); target->RemoveAurasDueToSpell(SPELL_SNOBOLLED);
if (m_instance) if (instance)
m_instance->SetData(DATA_SNOBOLD_COUNT, DECREASE); instance->SetData(DATA_SNOBOLD_COUNT, DECREASE);
} }
void UpdateAI(uint32 const diff) void UpdateAI(uint32 const diff)
@@ -341,9 +341,9 @@ public:
{ {
if (!target->isAlive()) if (!target->isAlive())
{ {
if (m_instance) if (instance)
{ {
Unit* gormok = ObjectAccessor::GetCreature(*me, m_instance->GetData64(NPC_GORMOK)); Unit* gormok = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GORMOK));
if (gormok && gormok->isAlive()) if (gormok && gormok->isAlive())
{ {
SetCombatMovement(false); SetCombatMovement(false);
@@ -757,10 +757,10 @@ public:
{ {
boss_icehowlAI(Creature* creature) : ScriptedAI(creature) boss_icehowlAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiFerociousButtTimer; uint32 m_uiFerociousButtTimer;
uint32 m_uiArticBreathTimer; uint32 m_uiArticBreathTimer;
@@ -794,8 +794,8 @@ public:
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
if (m_instance) if (instance)
m_instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_DONE); instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_DONE);
} }
void MovementInform(uint32 type, uint32 pointId) void MovementInform(uint32 type, uint32 pointId)
@@ -826,7 +826,7 @@ public:
m_bMovementFinish = true; m_bMovementFinish = true;
break; break;
case 2: case 2:
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_AGGRESSIVE); me->SetReactState(REACT_AGGRESSIVE);
me->SetInCombatWithZone(); me->SetInCombatWithZone();
@@ -836,16 +836,16 @@ public:
void EnterEvadeMode() void EnterEvadeMode()
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
ScriptedAI::EnterEvadeMode(); ScriptedAI::EnterEvadeMode();
} }
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
m_instance->SetData(TYPE_NORTHREND_BEASTS, FAIL); instance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
} }
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
} }
@@ -854,15 +854,15 @@ public:
{ {
if (who->GetTypeId() == TYPEID_PLAYER) if (who->GetTypeId() == TYPEID_PLAYER)
{ {
if (m_instance) if (instance)
m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0); instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
} }
} }
void EnterCombat(Unit* /*who*/) void EnterCombat(Unit* /*who*/)
{ {
if (m_instance) if (instance)
m_instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_IN_PROGRESS); instance->SetData(TYPE_NORTHREND_BEASTS, ICEHOWL_IN_PROGRESS);
me->SetInCombatWithZone(); me->SetInCombatWithZone();
} }
@@ -143,10 +143,10 @@ struct boss_twin_baseAI : public ScriptedAI
{ {
boss_twin_baseAI(Creature* creature) : ScriptedAI(creature), Summons(me) boss_twin_baseAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
SummonList Summons; SummonList Summons;
AuraStateType m_uiAuraState; AuraStateType m_uiAuraState;
@@ -190,8 +190,8 @@ struct boss_twin_baseAI : public ScriptedAI
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
m_instance->SetData(TYPE_VALKIRIES, FAIL); instance->SetData(TYPE_VALKIRIES, FAIL);
Summons.DespawnAll(); Summons.DespawnAll();
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
@@ -204,7 +204,7 @@ struct boss_twin_baseAI : public ScriptedAI
switch (uiId) switch (uiId)
{ {
case 1: case 1:
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_AGGRESSIVE); me->SetReactState(REACT_AGGRESSIVE);
break; break;
@@ -216,8 +216,8 @@ struct boss_twin_baseAI : public ScriptedAI
if (who->GetTypeId() == TYPEID_PLAYER) if (who->GetTypeId() == TYPEID_PLAYER)
{ {
DoScriptText(urand(0, 1) ? SAY_KILL1 : SAY_KILL2, me); DoScriptText(urand(0, 1) ? SAY_KILL1 : SAY_KILL2, me);
if (m_instance) if (instance)
m_instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0); instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
} }
} }
@@ -231,12 +231,12 @@ struct boss_twin_baseAI : public ScriptedAI
switch (summoned->GetEntry()) switch (summoned->GetEntry())
{ {
case NPC_LIGHT_ESSENCE: case NPC_LIGHT_ESSENCE:
m_instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_LIGHT_ESSENCE_HELPER); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_LIGHT_ESSENCE_HELPER);
m_instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_POWERING_UP_HELPER); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_POWERING_UP_HELPER);
break; break;
case NPC_DARK_ESSENCE: case NPC_DARK_ESSENCE:
m_instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_DARK_ESSENCE_HELPER); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_DARK_ESSENCE_HELPER);
m_instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_POWERING_UP_HELPER); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_POWERING_UP_HELPER);
break; break;
case NPC_BULLET_CONTROLLER: case NPC_BULLET_CONTROLLER:
me->m_Events.AddEvent(new OrbsDespawner(me), me->m_Events.CalculateTime(100)); me->m_Events.AddEvent(new OrbsDespawner(me), me->m_Events.CalculateTime(100));
@@ -248,7 +248,7 @@ struct boss_twin_baseAI : public ScriptedAI
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
DoScriptText(SAY_DEATH, me); DoScriptText(SAY_DEATH, me);
if (m_instance) if (instance)
{ {
if (Creature* pSister = GetSister()) if (Creature* pSister = GetSister())
{ {
@@ -257,13 +257,13 @@ struct boss_twin_baseAI : public ScriptedAI
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
pSister->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); pSister->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
m_instance->SetData(TYPE_VALKIRIES, DONE); instance->SetData(TYPE_VALKIRIES, DONE);
Summons.DespawnAll(); Summons.DespawnAll();
} }
else else
{ {
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
m_instance->SetData(TYPE_VALKIRIES, SPECIAL); instance->SetData(TYPE_VALKIRIES, SPECIAL);
} }
} }
} }
@@ -273,20 +273,20 @@ struct boss_twin_baseAI : public ScriptedAI
// Called when sister pointer needed // Called when sister pointer needed
Creature* GetSister() Creature* GetSister()
{ {
return Unit::GetCreature((*me), m_instance->GetData64(m_uiSisterNpcId)); return Unit::GetCreature((*me), instance->GetData64(m_uiSisterNpcId));
} }
void EnterCombat(Unit* /*who*/) void EnterCombat(Unit* /*who*/)
{ {
me->SetInCombatWithZone(); me->SetInCombatWithZone();
if (m_instance) if (instance)
{ {
if (Creature* pSister = GetSister()) if (Creature* pSister = GetSister())
{ {
me->AddAura(m_uiMyEmphatySpellId, pSister); me->AddAura(m_uiMyEmphatySpellId, pSister);
pSister->SetInCombatWithZone(); pSister->SetInCombatWithZone();
} }
m_instance->SetData(TYPE_VALKIRIES, IN_PROGRESS); instance->SetData(TYPE_VALKIRIES, IN_PROGRESS);
} }
DoScriptText(SAY_AGGRO, me); DoScriptText(SAY_AGGRO, me);
@@ -315,7 +315,7 @@ struct boss_twin_baseAI : public ScriptedAI
void UpdateAI(const uint32 uiDiff) void UpdateAI(const uint32 uiDiff)
{ {
if (!m_instance || !UpdateVictim()) if (!instance || !UpdateVictim())
return; return;
switch (m_uiStage) switch (m_uiStage)
@@ -406,10 +406,10 @@ public:
{ {
boss_fjolaAI(Creature* creature) : boss_twin_baseAI(creature) boss_fjolaAI(Creature* creature) : boss_twin_baseAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
void Reset() { void Reset() {
boss_twin_baseAI::Reset(); boss_twin_baseAI::Reset();
@@ -429,17 +429,17 @@ public:
m_uiTouchSpellId = SPELL_LIGHT_TOUCH; m_uiTouchSpellId = SPELL_LIGHT_TOUCH;
m_uiSpikeSpellId = SPELL_LIGHT_TWIN_SPIKE; m_uiSpikeSpellId = SPELL_LIGHT_TWIN_SPIKE;
if (m_instance) if (instance)
{ {
m_instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
} }
} }
void EnterCombat(Unit* who) void EnterCombat(Unit* who)
{ {
if (m_instance) if (instance)
{ {
m_instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT); instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_START_TWINS_FIGHT);
} }
me->SummonCreature(NPC_BULLET_CONTROLLER, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 0.0f, TEMPSUMMON_MANUAL_DESPAWN); me->SummonCreature(NPC_BULLET_CONTROLLER, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 0.0f, TEMPSUMMON_MANUAL_DESPAWN);
@@ -448,14 +448,14 @@ public:
void EnterEvadeMode() void EnterEvadeMode()
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
boss_twin_baseAI::EnterEvadeMode(); boss_twin_baseAI::EnterEvadeMode();
} }
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
boss_twin_baseAI::JustReachedHome(); boss_twin_baseAI::JustReachedHome();
} }
@@ -552,10 +552,10 @@ struct mob_unleashed_ballAI : public ScriptedAI
{ {
mob_unleashed_ballAI(Creature* creature) : ScriptedAI(creature) mob_unleashed_ballAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiRangeCheckTimer; uint32 m_uiRangeCheckTimer;
void MoveToNextPoint() void MoveToNextPoint()
@@ -106,10 +106,10 @@ class npc_announcer_toc10 : public CreatureScript
{ {
npc_announcer_toc10AI(Creature* creature) : ScriptedAI(creature) npc_announcer_toc10AI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
void Reset() void Reset()
{ {
@@ -239,10 +239,10 @@ class boss_lich_king_toc : public CreatureScript
{ {
boss_lich_king_tocAI(Creature* creature) : ScriptedAI(creature) boss_lich_king_tocAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiUpdateTimer; uint32 m_uiUpdateTimer;
void Reset() void Reset()
@@ -254,7 +254,7 @@ class boss_lich_king_toc : public CreatureScript
summoned->CastSpell(summoned, 51807, false); summoned->CastSpell(summoned, 51807, false);
summoned->SetDisplayId(11686); summoned->SetDisplayId(11686);
} }
if (m_instance) m_instance->SetData(TYPE_LICH_KING, IN_PROGRESS); if (instance) instance->SetData(TYPE_LICH_KING, IN_PROGRESS);
me->SetWalk(true); me->SetWalk(true);
} }
@@ -265,80 +265,80 @@ class boss_lich_king_toc : public CreatureScript
switch (uiId) switch (uiId)
{ {
case 0: case 0:
m_instance->SetData(TYPE_EVENT, 5030); instance->SetData(TYPE_EVENT, 5030);
break; break;
case 1: case 1:
m_instance->SetData(TYPE_EVENT, 5050); instance->SetData(TYPE_EVENT, 5050);
break; break;
} }
} }
void UpdateAI(const uint32 uiDiff) void UpdateAI(const uint32 uiDiff)
{ {
if (!m_instance) if (!instance)
return; return;
if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_LICH_KING_1) if (instance->GetData(TYPE_EVENT_NPC) != NPC_LICH_KING_1)
return; return;
m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER); m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff) if (m_uiUpdateTimer <= uiDiff)
{ {
switch (m_instance->GetData(TYPE_EVENT)) switch (instance->GetData(TYPE_EVENT))
{ {
case 5010: case 5010:
DoScriptText(SAY_STAGE_4_02, me); DoScriptText(SAY_STAGE_4_02, me);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
me->GetMotionMaster()->MovePoint(0, LichKingLoc[0]); me->GetMotionMaster()->MovePoint(0, LichKingLoc[0]);
m_instance->SetData(TYPE_EVENT, 5020); instance->SetData(TYPE_EVENT, 5020);
break; break;
case 5030: case 5030:
DoScriptText(SAY_STAGE_4_04, me); DoScriptText(SAY_STAGE_4_04, me);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
m_uiUpdateTimer = 10000; m_uiUpdateTimer = 10000;
m_instance->SetData(TYPE_EVENT, 5040); instance->SetData(TYPE_EVENT, 5040);
break; break;
case 5040: case 5040:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
me->GetMotionMaster()->MovePoint(1, LichKingLoc[1]); me->GetMotionMaster()->MovePoint(1, LichKingLoc[1]);
m_uiUpdateTimer = 1000; m_uiUpdateTimer = 1000;
m_instance->SetData(TYPE_EVENT, 0); instance->SetData(TYPE_EVENT, 0);
break; break;
case 5050: case 5050:
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION); me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 5060); instance->SetData(TYPE_EVENT, 5060);
break; break;
case 5060: case 5060:
DoScriptText(SAY_STAGE_4_05, me); DoScriptText(SAY_STAGE_4_05, me);
me->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL); me->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
m_uiUpdateTimer = 2500; m_uiUpdateTimer = 2500;
m_instance->SetData(TYPE_EVENT, 5070); instance->SetData(TYPE_EVENT, 5070);
break; break;
case 5070: case 5070:
me->CastSpell(me, 68198, false); me->CastSpell(me, 68198, false);
m_uiUpdateTimer = 1500; m_uiUpdateTimer = 1500;
m_instance->SetData(TYPE_EVENT, 5080); instance->SetData(TYPE_EVENT, 5080);
break; break;
case 5080: case 5080:
if (GameObject* go = m_instance->instance->GetGameObject(m_instance->GetData64(GO_ARGENT_COLISEUM_FLOOR))) if (GameObject* go = instance->instance->GetGameObject(instance->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
go->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED); go->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED);
me->CastSpell(me, 69016, false); me->CastSpell(me, 69016, false);
if (m_instance) if (instance)
{ {
m_instance->SetData(TYPE_LICH_KING, DONE); instance->SetData(TYPE_LICH_KING, DONE);
Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_ANUBARAK)); Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_ANUBARAK));
if (!temp || !temp->isAlive()) if (!temp || !temp->isAlive())
temp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); temp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
m_instance->SetData(TYPE_EVENT, 0); instance->SetData(TYPE_EVENT, 0);
} }
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
m_uiUpdateTimer = 20000; m_uiUpdateTimer = 20000;
break; break;
} }
} else m_uiUpdateTimer -= uiDiff; } else m_uiUpdateTimer -= uiDiff;
m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer); instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
} }
}; };
@@ -358,10 +358,10 @@ class npc_fizzlebang_toc : public CreatureScript
{ {
npc_fizzlebang_tocAI(Creature* creature) : ScriptedAI(creature), Summons(me) npc_fizzlebang_tocAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{ {
m_instance = (InstanceScript*)me->GetInstanceScript(); instance = me->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
SummonList Summons; SummonList Summons;
uint32 m_uiUpdateTimer; uint32 m_uiUpdateTimer;
uint64 m_uiPortalGUID; uint64 m_uiPortalGUID;
@@ -370,8 +370,8 @@ class npc_fizzlebang_toc : public CreatureScript
void JustDied(Unit* killer) void JustDied(Unit* killer)
{ {
DoScriptText(SAY_STAGE_1_06, me, killer); DoScriptText(SAY_STAGE_1_06, me, killer);
m_instance->SetData(TYPE_EVENT, 1180); instance->SetData(TYPE_EVENT, 1180);
if (Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_JARAXXUS))) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
{ {
temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
temp->SetReactState(REACT_AGGRESSIVE); temp->SetReactState(REACT_AGGRESSIVE);
@@ -394,11 +394,11 @@ class npc_fizzlebang_toc : public CreatureScript
{ {
case 1: case 1:
me->SetWalk(false); me->SetWalk(false);
if (m_instance) if (instance)
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
m_instance->SetData(TYPE_EVENT, 1120); instance->SetData(TYPE_EVENT, 1120);
m_instance->SetData(TYPE_EVENT_TIMER, 1000); instance->SetData(TYPE_EVENT_TIMER, 1000);
} }
break; break;
} }
@@ -411,22 +411,22 @@ class npc_fizzlebang_toc : public CreatureScript
void UpdateAI(const uint32 uiDiff) void UpdateAI(const uint32 uiDiff)
{ {
if (!m_instance) return; if (!instance) return;
if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_FIZZLEBANG) return; if (instance->GetData(TYPE_EVENT_NPC) != NPC_FIZZLEBANG) return;
m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER); m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff) if (m_uiUpdateTimer <= uiDiff)
{ {
switch (m_instance->GetData(TYPE_EVENT)) switch (instance->GetData(TYPE_EVENT))
{ {
case 1110: case 1110:
m_instance->SetData(TYPE_EVENT, 1120); instance->SetData(TYPE_EVENT, 1120);
m_uiUpdateTimer = 4000; m_uiUpdateTimer = 4000;
break; break;
case 1120: case 1120:
DoScriptText(SAY_STAGE_1_02, me); DoScriptText(SAY_STAGE_1_02, me);
m_instance->SetData(TYPE_EVENT, 1130); instance->SetData(TYPE_EVENT, 1130);
m_uiUpdateTimer = 12000; m_uiUpdateTimer = 12000;
break; break;
case 1130: case 1130:
@@ -440,12 +440,12 @@ class npc_fizzlebang_toc : public CreatureScript
pTrigger->SetDisplayId(22862); pTrigger->SetDisplayId(22862);
pTrigger->CastSpell(pTrigger, SPELL_WILFRED_PORTAL, false); pTrigger->CastSpell(pTrigger, SPELL_WILFRED_PORTAL, false);
} }
m_instance->SetData(TYPE_EVENT, 1132); instance->SetData(TYPE_EVENT, 1132);
m_uiUpdateTimer = 4000; m_uiUpdateTimer = 4000;
break; break;
case 1132: case 1132:
me->GetMotionMaster()->MovementExpired(); me->GetMotionMaster()->MovementExpired();
m_instance->SetData(TYPE_EVENT, 1134); instance->SetData(TYPE_EVENT, 1134);
m_uiUpdateTimer = 4000; m_uiUpdateTimer = 4000;
break; break;
case 1134: case 1134:
@@ -458,10 +458,10 @@ class npc_fizzlebang_toc : public CreatureScript
m_uiPortalGUID = pPortal->GetGUID(); m_uiPortalGUID = pPortal->GetGUID();
} }
m_uiUpdateTimer = 4000; m_uiUpdateTimer = 4000;
m_instance->SetData(TYPE_EVENT, 1135); instance->SetData(TYPE_EVENT, 1135);
break; break;
case 1135: case 1135:
m_instance->SetData(TYPE_EVENT, 1140); instance->SetData(TYPE_EVENT, 1140);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
break; break;
case 1140: case 1140:
@@ -472,27 +472,27 @@ class npc_fizzlebang_toc : public CreatureScript
temp->SetReactState(REACT_PASSIVE); temp->SetReactState(REACT_PASSIVE);
temp->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY()-10, ToCCommonLoc[1].GetPositionZ()); temp->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY()-10, ToCCommonLoc[1].GetPositionZ());
} }
m_instance->SetData(TYPE_EVENT, 1142); instance->SetData(TYPE_EVENT, 1142);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
break; break;
case 1142: case 1142:
if (Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_JARAXXUS))) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
temp->SetTarget(me->GetGUID()); temp->SetTarget(me->GetGUID());
if (Creature* pTrigger = Unit::GetCreature(*me, m_uiTriggerGUID)) if (Creature* pTrigger = Unit::GetCreature(*me, m_uiTriggerGUID))
pTrigger->DespawnOrUnsummon(); pTrigger->DespawnOrUnsummon();
if (Creature* pPortal = Unit::GetCreature(*me, m_uiPortalGUID)) if (Creature* pPortal = Unit::GetCreature(*me, m_uiPortalGUID))
pPortal->DespawnOrUnsummon(); pPortal->DespawnOrUnsummon();
m_instance->SetData(TYPE_EVENT, 1144); instance->SetData(TYPE_EVENT, 1144);
m_uiUpdateTimer = 10000; m_uiUpdateTimer = 10000;
break; break;
case 1144: case 1144:
if (Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_JARAXXUS))) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
DoScriptText(SAY_STAGE_1_05, temp); DoScriptText(SAY_STAGE_1_05, temp);
m_instance->SetData(TYPE_EVENT, 1150); instance->SetData(TYPE_EVENT, 1150);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
break; break;
case 1150: case 1150:
if (Creature* temp = Unit::GetCreature(*me, m_instance->GetData64(NPC_JARAXXUS))) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
{ {
//1-shot Fizzlebang //1-shot Fizzlebang
temp->CastSpell(me, 67888, false); temp->CastSpell(me, 67888, false);
@@ -500,12 +500,12 @@ class npc_fizzlebang_toc : public CreatureScript
temp->AddThreat(me, 1000.0f); temp->AddThreat(me, 1000.0f);
temp->AI()->AttackStart(me); temp->AI()->AttackStart(me);
} }
m_instance->SetData(TYPE_EVENT, 1160); instance->SetData(TYPE_EVENT, 1160);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
break; break;
} }
} else m_uiUpdateTimer -= uiDiff; } else m_uiUpdateTimer -= uiDiff;
m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer); instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
} }
}; };
@@ -525,10 +525,10 @@ class npc_tirion_toc : public CreatureScript
{ {
npc_tirion_tocAI(Creature* creature) : ScriptedAI(creature) npc_tirion_tocAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)me->GetInstanceScript(); instance = me->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiUpdateTimer; uint32 m_uiUpdateTimer;
void Reset() {} void Reset() {}
@@ -537,31 +537,31 @@ class npc_tirion_toc : public CreatureScript
void UpdateAI(const uint32 uiDiff) void UpdateAI(const uint32 uiDiff)
{ {
if (!m_instance) return; if (!instance) return;
if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_TIRION) return; if (instance->GetData(TYPE_EVENT_NPC) != NPC_TIRION) return;
m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER); m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff) if (m_uiUpdateTimer <= uiDiff)
{ {
switch (m_instance->GetData(TYPE_EVENT)) switch (instance->GetData(TYPE_EVENT))
{ {
case 110: case 110:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
DoScriptText(SAY_STAGE_0_01, me); DoScriptText(SAY_STAGE_0_01, me);
m_uiUpdateTimer = 22000; m_uiUpdateTimer = 22000;
m_instance->SetData(TYPE_EVENT, 120); instance->SetData(TYPE_EVENT, 120);
break; break;
case 140: case 140:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
DoScriptText(SAY_STAGE_0_02, me); DoScriptText(SAY_STAGE_0_02, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 150); instance->SetData(TYPE_EVENT, 150);
break; break;
case 150: case 150:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
if (m_instance->GetData(TYPE_BEASTS) != DONE) if (instance->GetData(TYPE_BEASTS) != DONE)
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
if (Creature* temp = me->SummonCreature(NPC_GORMOK, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30*IN_MILLISECONDS)) if (Creature* temp = me->SummonCreature(NPC_GORMOK, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30*IN_MILLISECONDS))
{ {
@@ -571,26 +571,26 @@ class npc_tirion_toc : public CreatureScript
} }
} }
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 155); instance->SetData(TYPE_EVENT, 155);
break; break;
case 155: case 155:
m_instance->SetData(TYPE_BEASTS, IN_PROGRESS); instance->SetData(TYPE_BEASTS, IN_PROGRESS);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 160); instance->SetData(TYPE_EVENT, 160);
break; break;
case 200: case 200:
DoScriptText(SAY_STAGE_0_04, me); DoScriptText(SAY_STAGE_0_04, me);
m_uiUpdateTimer = 8000; m_uiUpdateTimer = 8000;
m_instance->SetData(TYPE_EVENT, 205); instance->SetData(TYPE_EVENT, 205);
break; break;
case 205: case 205:
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 210); instance->SetData(TYPE_EVENT, 210);
break; break;
case 210: case 210:
if (m_instance->GetData(TYPE_BEASTS) != DONE) if (instance->GetData(TYPE_BEASTS) != DONE)
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
if (Creature* temp = me->SummonCreature(NPC_DREADSCALE, ToCSpawnLoc[1].GetPositionX(), ToCSpawnLoc[1].GetPositionY(), ToCSpawnLoc[1].GetPositionZ(), 5, TEMPSUMMON_MANUAL_DESPAWN)) if (Creature* temp = me->SummonCreature(NPC_DREADSCALE, ToCSpawnLoc[1].GetPositionX(), ToCSpawnLoc[1].GetPositionY(), ToCSpawnLoc[1].GetPositionZ(), 5, TEMPSUMMON_MANUAL_DESPAWN))
{ {
temp->GetMotionMaster()->MovePoint(0, ToCCommonLoc[8].GetPositionX(), ToCCommonLoc[8].GetPositionY(), ToCCommonLoc[8].GetPositionZ()); temp->GetMotionMaster()->MovePoint(0, ToCCommonLoc[8].GetPositionX(), ToCCommonLoc[8].GetPositionY(), ToCCommonLoc[8].GetPositionZ());
@@ -605,24 +605,24 @@ class npc_tirion_toc : public CreatureScript
} }
} }
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 220); instance->SetData(TYPE_EVENT, 220);
break; break;
case 220: case 220:
m_instance->SetData(TYPE_EVENT, 230); instance->SetData(TYPE_EVENT, 230);
break; break;
case 300: case 300:
DoScriptText(SAY_STAGE_0_05, me); DoScriptText(SAY_STAGE_0_05, me);
m_uiUpdateTimer = 8000; m_uiUpdateTimer = 8000;
m_instance->SetData(TYPE_EVENT, 305); instance->SetData(TYPE_EVENT, 305);
break; break;
case 305: case 305:
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 310); instance->SetData(TYPE_EVENT, 310);
break; break;
case 310: case 310:
if (m_instance->GetData(TYPE_BEASTS) != DONE) if (instance->GetData(TYPE_BEASTS) != DONE)
{ {
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
if (Creature* temp = me->SummonCreature(NPC_ICEHOWL, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5, TEMPSUMMON_DEAD_DESPAWN)) if (Creature* temp = me->SummonCreature(NPC_ICEHOWL, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5, TEMPSUMMON_DEAD_DESPAWN))
{ {
temp->GetMotionMaster()->MovePoint(2, ToCCommonLoc[5].GetPositionX(), ToCCommonLoc[5].GetPositionY(), ToCCommonLoc[5].GetPositionZ()); temp->GetMotionMaster()->MovePoint(2, ToCCommonLoc[5].GetPositionX(), ToCCommonLoc[5].GetPositionY(), ToCCommonLoc[5].GetPositionZ());
@@ -632,92 +632,92 @@ class npc_tirion_toc : public CreatureScript
} }
} }
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 315); instance->SetData(TYPE_EVENT, 315);
break; break;
case 315: case 315:
m_instance->SetData(TYPE_EVENT, 320); instance->SetData(TYPE_EVENT, 320);
break; break;
case 400: case 400:
DoScriptText(SAY_STAGE_0_06, me); DoScriptText(SAY_STAGE_0_06, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 0); instance->SetData(TYPE_EVENT, 0);
break; break;
case 666: case 666:
DoScriptText(SAY_STAGE_0_WIPE, me); DoScriptText(SAY_STAGE_0_WIPE, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 0); instance->SetData(TYPE_EVENT, 0);
break; break;
case 1010: case 1010:
DoScriptText(SAY_STAGE_1_01, me); DoScriptText(SAY_STAGE_1_01, me);
m_uiUpdateTimer = 7000; m_uiUpdateTimer = 7000;
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
me->SummonCreature(NPC_FIZZLEBANG, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 2, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); me->SummonCreature(NPC_FIZZLEBANG, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 2, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
m_instance->SetData(TYPE_EVENT, 0); instance->SetData(TYPE_EVENT, 0);
break; break;
case 1180: case 1180:
DoScriptText(SAY_STAGE_1_07, me); DoScriptText(SAY_STAGE_1_07, me);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 0); instance->SetData(TYPE_EVENT, 0);
break; break;
case 2000: case 2000:
DoScriptText(SAY_STAGE_1_08, me); DoScriptText(SAY_STAGE_1_08, me);
m_uiUpdateTimer = 18000; m_uiUpdateTimer = 18000;
m_instance->SetData(TYPE_EVENT, 2010); instance->SetData(TYPE_EVENT, 2010);
break; break;
case 2030: case 2030:
DoScriptText(SAY_STAGE_1_11, me); DoScriptText(SAY_STAGE_1_11, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 0); instance->SetData(TYPE_EVENT, 0);
break; break;
case 3000: case 3000:
DoScriptText(SAY_STAGE_2_01, me); DoScriptText(SAY_STAGE_2_01, me);
m_uiUpdateTimer = 12000; m_uiUpdateTimer = 12000;
m_instance->SetData(TYPE_EVENT, 3050); instance->SetData(TYPE_EVENT, 3050);
break; break;
case 3001: case 3001:
DoScriptText(SAY_STAGE_2_01, me); DoScriptText(SAY_STAGE_2_01, me);
m_uiUpdateTimer = 12000; m_uiUpdateTimer = 12000;
m_instance->SetData(TYPE_EVENT, 3051); instance->SetData(TYPE_EVENT, 3051);
break; break;
case 3060: case 3060:
DoScriptText(SAY_STAGE_2_03, me); DoScriptText(SAY_STAGE_2_03, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 3070); instance->SetData(TYPE_EVENT, 3070);
break; break;
case 3061: case 3061:
DoScriptText(SAY_STAGE_2_03, me); DoScriptText(SAY_STAGE_2_03, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 3071); instance->SetData(TYPE_EVENT, 3071);
break; break;
//Summoning crusaders //Summoning crusaders
case 3091: case 3091:
if (Creature* pChampionController = me->SummonCreature(NPC_CHAMPIONS_CONTROLLER, ToCCommonLoc[1])) if (Creature* pChampionController = me->SummonCreature(NPC_CHAMPIONS_CONTROLLER, ToCCommonLoc[1]))
pChampionController->AI()->SetData(0, HORDE); pChampionController->AI()->SetData(0, HORDE);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 3092); instance->SetData(TYPE_EVENT, 3092);
break; break;
//Summoning crusaders //Summoning crusaders
case 3090: case 3090:
if (Creature* pChampionController = me->SummonCreature(NPC_CHAMPIONS_CONTROLLER, ToCCommonLoc[1])) if (Creature* pChampionController = me->SummonCreature(NPC_CHAMPIONS_CONTROLLER, ToCCommonLoc[1]))
pChampionController->AI()->SetData(0, ALLIANCE); pChampionController->AI()->SetData(0, ALLIANCE);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 3092); instance->SetData(TYPE_EVENT, 3092);
break; break;
case 3092: case 3092:
if (Creature* pChampionController = Unit::GetCreature((*me), m_instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(1, NOT_STARTED); pChampionController->AI()->SetData(1, NOT_STARTED);
m_instance->SetData(TYPE_EVENT, 3095); instance->SetData(TYPE_EVENT, 3095);
break; break;
//Crusaders battle end //Crusaders battle end
case 3100: case 3100:
DoScriptText(SAY_STAGE_2_06, me); DoScriptText(SAY_STAGE_2_06, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 0); instance->SetData(TYPE_EVENT, 0);
break; break;
case 4000: case 4000:
DoScriptText(SAY_STAGE_3_01, me); DoScriptText(SAY_STAGE_3_01, me);
m_uiUpdateTimer = 13000; m_uiUpdateTimer = 13000;
m_instance->SetData(TYPE_EVENT, 4010); instance->SetData(TYPE_EVENT, 4010);
break; break;
case 4010: case 4010:
DoScriptText(SAY_STAGE_3_02, me); DoScriptText(SAY_STAGE_3_02, me);
@@ -736,72 +736,72 @@ class npc_tirion_toc : public CreatureScript
temp->SummonCreature(NPC_DARK_ESSENCE, TwinValkyrsLoc[3].GetPositionX(), TwinValkyrsLoc[3].GetPositionY(), TwinValkyrsLoc[3].GetPositionZ()); temp->SummonCreature(NPC_DARK_ESSENCE, TwinValkyrsLoc[3].GetPositionX(), TwinValkyrsLoc[3].GetPositionY(), TwinValkyrsLoc[3].GetPositionZ());
} }
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 4015); instance->SetData(TYPE_EVENT, 4015);
break; break;
case 4015: case 4015:
m_instance->DoUseDoorOrButton(m_instance->GetData64(GO_MAIN_GATE_DOOR)); instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
if (Creature* temp = Unit::GetCreature((*me), m_instance->GetData64(NPC_LIGHTBANE))) if (Creature* temp = Unit::GetCreature((*me), instance->GetData64(NPC_LIGHTBANE)))
{ {
temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[8].GetPositionX(), ToCCommonLoc[8].GetPositionY(), ToCCommonLoc[8].GetPositionZ()); temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[8].GetPositionX(), ToCCommonLoc[8].GetPositionY(), ToCCommonLoc[8].GetPositionZ());
temp->SetVisible(true); temp->SetVisible(true);
} }
if (Creature* temp = Unit::GetCreature((*me), m_instance->GetData64(NPC_DARKBANE))) if (Creature* temp = Unit::GetCreature((*me), instance->GetData64(NPC_DARKBANE)))
{ {
temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[9].GetPositionX(), ToCCommonLoc[9].GetPositionY(), ToCCommonLoc[9].GetPositionZ()); temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[9].GetPositionX(), ToCCommonLoc[9].GetPositionY(), ToCCommonLoc[9].GetPositionZ());
temp->SetVisible(true); temp->SetVisible(true);
} }
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 4016); instance->SetData(TYPE_EVENT, 4016);
break; break;
case 4016: case 4016:
m_instance->SetData(TYPE_EVENT, 4017); instance->SetData(TYPE_EVENT, 4017);
break; break;
case 4040: case 4040:
m_uiUpdateTimer = 60000; m_uiUpdateTimer = 60000;
m_instance->SetData(TYPE_EVENT, 5000); instance->SetData(TYPE_EVENT, 5000);
break; break;
case 5000: case 5000:
DoScriptText(SAY_STAGE_4_01, me); DoScriptText(SAY_STAGE_4_01, me);
m_uiUpdateTimer = 10000; m_uiUpdateTimer = 10000;
m_instance->SetData(TYPE_EVENT, 5005); instance->SetData(TYPE_EVENT, 5005);
break; break;
case 5005: case 5005:
m_uiUpdateTimer = 8000; m_uiUpdateTimer = 8000;
m_instance->SetData(TYPE_EVENT, 5010); instance->SetData(TYPE_EVENT, 5010);
me->SummonCreature(NPC_LICH_KING_1, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5); me->SummonCreature(NPC_LICH_KING_1, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5);
break; break;
case 5020: case 5020:
DoScriptText(SAY_STAGE_4_03, me); DoScriptText(SAY_STAGE_4_03, me);
m_uiUpdateTimer = 1000; m_uiUpdateTimer = 1000;
m_instance->SetData(TYPE_EVENT, 0); instance->SetData(TYPE_EVENT, 0);
break; break;
case 6000: case 6000:
me->NearTeleportTo(AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 4.0f); me->NearTeleportTo(AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 4.0f);
m_uiUpdateTimer = 20000; m_uiUpdateTimer = 20000;
m_instance->SetData(TYPE_EVENT, 6005); instance->SetData(TYPE_EVENT, 6005);
break; break;
case 6005: case 6005:
DoScriptText(SAY_STAGE_4_06, me); DoScriptText(SAY_STAGE_4_06, me);
m_uiUpdateTimer = 20000; m_uiUpdateTimer = 20000;
m_instance->SetData(TYPE_EVENT, 6010); instance->SetData(TYPE_EVENT, 6010);
break; break;
case 6010: case 6010:
if (IsHeroic()) if (IsHeroic())
{ {
DoScriptText(SAY_STAGE_4_07, me); DoScriptText(SAY_STAGE_4_07, me);
m_uiUpdateTimer = 60000; m_uiUpdateTimer = 60000;
m_instance->SetData(TYPE_ANUBARAK, SPECIAL); instance->SetData(TYPE_ANUBARAK, SPECIAL);
m_instance->SetData(TYPE_EVENT, 6020); instance->SetData(TYPE_EVENT, 6020);
} else m_instance->SetData(TYPE_EVENT, 6030); } else instance->SetData(TYPE_EVENT, 6030);
break; break;
case 6020: case 6020:
me->DespawnOrUnsummon(); me->DespawnOrUnsummon();
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 6030); instance->SetData(TYPE_EVENT, 6030);
break; break;
} }
} else m_uiUpdateTimer -= uiDiff; } else m_uiUpdateTimer -= uiDiff;
m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer); instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
} }
}; };
@@ -821,10 +821,10 @@ class npc_garrosh_toc : public CreatureScript
{ {
npc_garrosh_tocAI(Creature* creature) : ScriptedAI(creature) npc_garrosh_tocAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)me->GetInstanceScript(); instance = me->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiUpdateTimer; uint32 m_uiUpdateTimer;
void Reset() {} void Reset() {}
@@ -833,53 +833,53 @@ class npc_garrosh_toc : public CreatureScript
void UpdateAI(const uint32 uiDiff) void UpdateAI(const uint32 uiDiff)
{ {
if (!m_instance) return; if (!instance) return;
if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_GARROSH) return; if (instance->GetData(TYPE_EVENT_NPC) != NPC_GARROSH) return;
m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER); m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff) if (m_uiUpdateTimer <= uiDiff)
{ {
switch (m_instance->GetData(TYPE_EVENT)) switch (instance->GetData(TYPE_EVENT))
{ {
case 130: case 130:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
DoScriptText(SAY_STAGE_0_03h, me); DoScriptText(SAY_STAGE_0_03h, me);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 132); instance->SetData(TYPE_EVENT, 132);
break; break;
case 132: case 132:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 140); instance->SetData(TYPE_EVENT, 140);
break; break;
case 2010: case 2010:
DoScriptText(SAY_STAGE_1_09, me); DoScriptText(SAY_STAGE_1_09, me);
m_uiUpdateTimer = 9000; m_uiUpdateTimer = 9000;
m_instance->SetData(TYPE_EVENT, 2020); instance->SetData(TYPE_EVENT, 2020);
break; break;
case 3050: case 3050:
DoScriptText(SAY_STAGE_2_02h, me); DoScriptText(SAY_STAGE_2_02h, me);
m_uiUpdateTimer = 15000; m_uiUpdateTimer = 15000;
m_instance->SetData(TYPE_EVENT, 3060); instance->SetData(TYPE_EVENT, 3060);
break; break;
case 3070: case 3070:
DoScriptText(SAY_STAGE_2_04h, me); DoScriptText(SAY_STAGE_2_04h, me);
m_uiUpdateTimer = 6000; m_uiUpdateTimer = 6000;
m_instance->SetData(TYPE_EVENT, 3080); instance->SetData(TYPE_EVENT, 3080);
break; break;
case 3081: case 3081:
DoScriptText(SAY_STAGE_2_05h, me); DoScriptText(SAY_STAGE_2_05h, me);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 3091); instance->SetData(TYPE_EVENT, 3091);
break; break;
case 4030: case 4030:
DoScriptText(SAY_STAGE_3_03h, me); DoScriptText(SAY_STAGE_3_03h, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 4040); instance->SetData(TYPE_EVENT, 4040);
break; break;
} }
} else m_uiUpdateTimer -= uiDiff; } else m_uiUpdateTimer -= uiDiff;
m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer); instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
} }
}; };
@@ -899,10 +899,10 @@ class npc_varian_toc : public CreatureScript
{ {
npc_varian_tocAI(Creature* creature) : ScriptedAI(creature) npc_varian_tocAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = (InstanceScript*)me->GetInstanceScript(); instance = me->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiUpdateTimer; uint32 m_uiUpdateTimer;
void Reset() {} void Reset() {}
@@ -911,53 +911,53 @@ class npc_varian_toc : public CreatureScript
void UpdateAI(const uint32 uiDiff) void UpdateAI(const uint32 uiDiff)
{ {
if (!m_instance) return; if (!instance) return;
if (m_instance->GetData(TYPE_EVENT_NPC) != NPC_VARIAN) return; if (instance->GetData(TYPE_EVENT_NPC) != NPC_VARIAN) return;
m_uiUpdateTimer = m_instance->GetData(TYPE_EVENT_TIMER); m_uiUpdateTimer = instance->GetData(TYPE_EVENT_TIMER);
if (m_uiUpdateTimer <= uiDiff) if (m_uiUpdateTimer <= uiDiff)
{ {
switch (m_instance->GetData(TYPE_EVENT)) switch (instance->GetData(TYPE_EVENT))
{ {
case 120: case 120:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
DoScriptText(SAY_STAGE_0_03a, me); DoScriptText(SAY_STAGE_0_03a, me);
m_uiUpdateTimer = 2000; m_uiUpdateTimer = 2000;
m_instance->SetData(TYPE_EVENT, 122); instance->SetData(TYPE_EVENT, 122);
break; break;
case 122: case 122:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 130); instance->SetData(TYPE_EVENT, 130);
break; break;
case 2020: case 2020:
DoScriptText(SAY_STAGE_1_10, me); DoScriptText(SAY_STAGE_1_10, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 2030); instance->SetData(TYPE_EVENT, 2030);
break; break;
case 3051: case 3051:
DoScriptText(SAY_STAGE_2_02a, me); DoScriptText(SAY_STAGE_2_02a, me);
m_uiUpdateTimer = 10000; m_uiUpdateTimer = 10000;
m_instance->SetData(TYPE_EVENT, 3061); instance->SetData(TYPE_EVENT, 3061);
break; break;
case 3071: case 3071:
DoScriptText(SAY_STAGE_2_04a, me); DoScriptText(SAY_STAGE_2_04a, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 3081); instance->SetData(TYPE_EVENT, 3081);
break; break;
case 3080: case 3080:
DoScriptText(SAY_STAGE_2_05a, me); DoScriptText(SAY_STAGE_2_05a, me);
m_uiUpdateTimer = 3000; m_uiUpdateTimer = 3000;
m_instance->SetData(TYPE_EVENT, 3090); instance->SetData(TYPE_EVENT, 3090);
break; break;
case 4020: case 4020:
DoScriptText(SAY_STAGE_3_03a, me); DoScriptText(SAY_STAGE_3_03a, me);
m_uiUpdateTimer = 5000; m_uiUpdateTimer = 5000;
m_instance->SetData(TYPE_EVENT, 4040); instance->SetData(TYPE_EVENT, 4040);
break; break;
} }
} else m_uiUpdateTimer -= uiDiff; } else m_uiUpdateTimer -= uiDiff;
m_instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer); instance->SetData(TYPE_EVENT_TIMER, m_uiUpdateTimer);
} }
}; };
@@ -93,13 +93,13 @@ public:
{ {
boss_bjarngrimAI(Creature* creature) : ScriptedAI(creature) boss_bjarngrimAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
m_uiStance = STANCE_DEFENSIVE; m_uiStance = STANCE_DEFENSIVE;
memset(&m_auiStormforgedLieutenantGUID, 0, sizeof(m_auiStormforgedLieutenantGUID)); memset(&m_auiStormforgedLieutenantGUID, 0, sizeof(m_auiStormforgedLieutenantGUID));
canBuff = true; canBuff = true;
} }
InstanceScript* m_instance; InstanceScript* instance;
bool m_bIsChangingStance; bool m_bIsChangingStance;
bool canBuff; bool canBuff;
@@ -167,8 +167,8 @@ public:
SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_SHIELD, EQUIP_NO_CHANGE); SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_SHIELD, EQUIP_NO_CHANGE);
if (m_instance) if (instance)
m_instance->SetData(TYPE_BJARNGRIM, NOT_STARTED); instance->SetData(TYPE_BJARNGRIM, NOT_STARTED);
} }
void EnterEvadeMode() void EnterEvadeMode()
@@ -188,8 +188,8 @@ public:
//must get both lieutenants here and make sure they are with him //must get both lieutenants here and make sure they are with him
me->CallForHelp(30.0f); me->CallForHelp(30.0f);
if (m_instance) if (instance)
m_instance->SetData(TYPE_BJARNGRIM, IN_PROGRESS); instance->SetData(TYPE_BJARNGRIM, IN_PROGRESS);
} }
void KilledUnit(Unit* /*victim*/) void KilledUnit(Unit* /*victim*/)
@@ -201,8 +201,8 @@ public:
{ {
Talk(SAY_DEATH); Talk(SAY_DEATH);
if (m_instance) if (instance)
m_instance->SetData(TYPE_BJARNGRIM, DONE); instance->SetData(TYPE_BJARNGRIM, DONE);
} }
//TODO: remove when removal is done by the core //TODO: remove when removal is done by the core
@@ -385,10 +385,10 @@ public:
{ {
mob_stormforged_lieutenantAI(Creature* creature) : ScriptedAI(creature) mob_stormforged_lieutenantAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 m_uiArcWeld_Timer; uint32 m_uiArcWeld_Timer;
uint32 m_uiRenewSteel_Timer; uint32 m_uiRenewSteel_Timer;
@@ -401,9 +401,9 @@ public:
void EnterCombat(Unit* who) void EnterCombat(Unit* who)
{ {
if (m_instance) if (instance)
{ {
if (Creature* pBjarngrim = m_instance->instance->GetCreature(m_instance->GetData64(DATA_BJARNGRIM))) if (Creature* pBjarngrim = instance->instance->GetCreature(instance->GetData64(DATA_BJARNGRIM)))
{ {
if (pBjarngrim->isAlive() && !pBjarngrim->getVictim()) if (pBjarngrim->isAlive() && !pBjarngrim->getVictim())
pBjarngrim->AI()->AttackStart(who); pBjarngrim->AI()->AttackStart(who);
@@ -427,9 +427,9 @@ public:
if (m_uiRenewSteel_Timer <= uiDiff) if (m_uiRenewSteel_Timer <= uiDiff)
{ {
if (m_instance) if (instance)
{ {
if (Creature* pBjarngrim = m_instance->instance->GetCreature(m_instance->GetData64(DATA_BJARNGRIM))) if (Creature* pBjarngrim = instance->instance->GetCreature(instance->GetData64(DATA_BJARNGRIM)))
{ {
if (pBjarngrim->isAlive()) if (pBjarngrim->isAlive())
DoCast(pBjarngrim, SPELL_RENEW_STEEL_N); DoCast(pBjarngrim, SPELL_RENEW_STEEL_N);
@@ -68,10 +68,10 @@ public:
{ {
boss_lokenAI(Creature* creature) : ScriptedAI(creature) boss_lokenAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
bool m_bIsAura; bool m_bIsAura;
@@ -93,10 +93,10 @@ public:
m_uiHealthAmountModifier = 1; m_uiHealthAmountModifier = 1;
if (m_instance) if (instance)
{ {
m_instance->SetData(TYPE_LOKEN, NOT_STARTED); instance->SetData(TYPE_LOKEN, NOT_STARTED);
m_instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMELY_DEATH_START_EVENT); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMELY_DEATH_START_EVENT);
} }
} }
@@ -104,10 +104,10 @@ public:
{ {
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
if (m_instance) if (instance)
{ {
m_instance->SetData(TYPE_LOKEN, IN_PROGRESS); instance->SetData(TYPE_LOKEN, IN_PROGRESS);
m_instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMELY_DEATH_START_EVENT); instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMELY_DEATH_START_EVENT);
} }
} }
@@ -115,8 +115,8 @@ public:
{ {
Talk(SAY_DEATH); Talk(SAY_DEATH);
if (m_instance) if (instance)
m_instance->SetData(TYPE_LOKEN, DONE); instance->SetData(TYPE_LOKEN, DONE);
} }
void KilledUnit(Unit* /*victim*/) void KilledUnit(Unit* /*victim*/)
@@ -79,10 +79,10 @@ public:
{ {
boss_volkhanAI(Creature* creature) : ScriptedAI(creature) boss_volkhanAI(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
std::list<uint64> m_lGolemGUIDList; std::list<uint64> m_lGolemGUIDList;
@@ -117,16 +117,16 @@ public:
DespawnGolem(); DespawnGolem();
m_lGolemGUIDList.clear(); m_lGolemGUIDList.clear();
if (m_instance) if (instance)
m_instance->SetData(TYPE_VOLKHAN, NOT_STARTED); instance->SetData(TYPE_VOLKHAN, NOT_STARTED);
} }
void EnterCombat(Unit* /*who*/) void EnterCombat(Unit* /*who*/)
{ {
Talk(SAY_AGGRO); Talk(SAY_AGGRO);
if (m_instance) if (instance)
m_instance->SetData(TYPE_VOLKHAN, IN_PROGRESS); instance->SetData(TYPE_VOLKHAN, IN_PROGRESS);
} }
void AttackStart(Unit* who) void AttackStart(Unit* who)
@@ -147,8 +147,8 @@ public:
Talk(SAY_DEATH); Talk(SAY_DEATH);
DespawnGolem(); DespawnGolem();
if (m_instance) if (instance)
m_instance->SetData(TYPE_VOLKHAN, DONE); instance->SetData(TYPE_VOLKHAN, DONE);
if (IsHeroic() && GolemsShattered < 5) if (IsHeroic() && GolemsShattered < 5)
{ {
@@ -170,10 +170,10 @@ public:
{ {
boss_skadiAI(Creature* creature) : ScriptedAI(creature), Summons(me) boss_skadiAI(Creature* creature) : ScriptedAI(creature), Summons(me)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
SummonList Summons; SummonList Summons;
uint64 m_uiGraufGUID; uint64 m_uiGraufGUID;
std::vector<uint64> triggersGUID; std::vector<uint64> triggersGUID;
@@ -208,10 +208,10 @@ public:
me->SetSpeed(MOVE_FLIGHT, 3.0f); me->SetSpeed(MOVE_FLIGHT, 3.0f);
if ((Unit::GetCreature((*me), m_uiGraufGUID) == NULL) && !me->IsMounted()) if ((Unit::GetCreature((*me), m_uiGraufGUID) == NULL) && !me->IsMounted())
me->SummonCreature(CREATURE_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f); me->SummonCreature(CREATURE_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f);
if (m_instance) if (instance)
{ {
m_instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, NOT_STARTED); instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, NOT_STARTED);
m_instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
} }
} }
@@ -235,10 +235,10 @@ public:
m_uiMovementTimer = 1000; m_uiMovementTimer = 1000;
m_uiSummonTimer = 10000; m_uiSummonTimer = 10000;
me->SetInCombatWithZone(); me->SetInCombatWithZone();
if (m_instance) if (instance)
{ {
m_instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, IN_PROGRESS); instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, IN_PROGRESS);
m_instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
me->GetMotionMaster()->MoveJump(Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 5.0f, 10.0f); me->GetMotionMaster()->MoveJump(Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 5.0f, 10.0f);
me->SetWalk(false); me->SetWalk(false);
m_uiMountTimer = 1000; m_uiMountTimer = 1000;
@@ -411,8 +411,8 @@ public:
{ {
DoScriptText(SAY_DEATH, me); DoScriptText(SAY_DEATH, me);
Summons.DespawnAll(); Summons.DespawnAll();
if (m_instance) if (instance)
m_instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, DONE); instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, DONE);
} }
void KilledUnit(Unit* /*victim*/) void KilledUnit(Unit* /*victim*/)
@@ -463,11 +463,11 @@ public:
bool OnGossipHello(Player* player, GameObject* go) bool OnGossipHello(Player* player, GameObject* go)
{ {
InstanceScript* m_instance = go->GetInstanceScript(); InstanceScript* instance = go->GetInstanceScript();
if (!m_instance) if (!instance)
return false; return false;
if (Creature* pSkadi = Unit::GetCreature(*go, m_instance->GetData64(DATA_SKADI_THE_RUTHLESS))) if (Creature* pSkadi = Unit::GetCreature(*go, instance->GetData64(DATA_SKADI_THE_RUTHLESS)))
player->CastSpell(pSkadi, SPELL_RAPID_FIRE, true); player->CastSpell(pSkadi, SPELL_RAPID_FIRE, true);
return false; return false;
@@ -58,10 +58,10 @@ public:
{ {
boss_ambassador_hellmawAI(Creature* creature) : npc_escortAI(creature) boss_ambassador_hellmawAI(Creature* creature) : npc_escortAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 EventCheck_Timer; uint32 EventCheck_Timer;
uint32 CorrosiveAcid_Timer; uint32 CorrosiveAcid_Timer;
@@ -81,17 +81,17 @@ public:
IsBanished = true; IsBanished = true;
Enraged = false; Enraged = false;
if (m_instance && me->isAlive()) if (instance && me->isAlive())
{ {
if (m_instance->GetData(TYPE_OVERSEER) != DONE) if (instance->GetData(TYPE_OVERSEER) != DONE)
DoCast(me, SPELL_BANISH, true); DoCast(me, SPELL_BANISH, true);
} }
} }
void JustReachedHome() void JustReachedHome()
{ {
if (m_instance) if (instance)
m_instance->SetData(TYPE_HELLMAW, FAIL); instance->SetData(TYPE_HELLMAW, FAIL);
} }
void MoveInLineOfSight(Unit* who) void MoveInLineOfSight(Unit* who)
@@ -114,15 +114,15 @@ public:
IsBanished = false; IsBanished = false;
Intro = true; Intro = true;
if (m_instance) if (instance)
{ {
if (m_instance->GetData(TYPE_HELLMAW) != FAIL) if (instance->GetData(TYPE_HELLMAW) != FAIL)
{ {
DoScriptText(SAY_INTRO, me); DoScriptText(SAY_INTRO, me);
Start(true, false, 0, NULL, false, true); Start(true, false, 0, NULL, false, true);
} }
m_instance->SetData(TYPE_HELLMAW, IN_PROGRESS); instance->SetData(TYPE_HELLMAW, IN_PROGRESS);
} }
} }
@@ -140,8 +140,8 @@ public:
{ {
DoScriptText(SAY_DEATH, me); DoScriptText(SAY_DEATH, me);
if (m_instance) if (instance)
m_instance->SetData(TYPE_HELLMAW, DONE); instance->SetData(TYPE_HELLMAW, DONE);
} }
void UpdateAI(const uint32 diff) void UpdateAI(const uint32 diff)
@@ -150,9 +150,9 @@ public:
{ {
if (EventCheck_Timer <= diff) if (EventCheck_Timer <= diff)
{ {
if (m_instance) if (instance)
{ {
if (m_instance->GetData(TYPE_OVERSEER) == DONE) if (instance->GetData(TYPE_OVERSEER) == DONE)
{ {
DoIntro(); DoIntro();
return; return;
@@ -147,11 +147,11 @@ struct advisorbase_ai : public ScriptedAI
{ {
advisorbase_ai(Creature* creature) : ScriptedAI(creature) advisorbase_ai(Creature* creature) : ScriptedAI(creature)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
m_bDoubled_Health = false; m_bDoubled_Health = false;
} }
InstanceScript* m_instance; InstanceScript* instance;
bool FakeDeath; bool FakeDeath;
bool m_bDoubled_Health; bool m_bDoubled_Health;
uint32 DelayRes_Timer; uint32 DelayRes_Timer;
@@ -174,8 +174,8 @@ struct advisorbase_ai : public ScriptedAI
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
//reset encounter //reset encounter
if (m_instance && (m_instance->GetData(DATA_KAELTHASEVENT) == 1 || m_instance->GetData(DATA_KAELTHASEVENT) == 3)) if (instance && (instance->GetData(DATA_KAELTHASEVENT) == 1 || instance->GetData(DATA_KAELTHASEVENT) == 3))
if (Creature* Kaelthas = Unit::GetCreature((*me), m_instance->GetData64(DATA_KAELTHAS))) if (Creature* Kaelthas = Unit::GetCreature((*me), instance->GetData64(DATA_KAELTHAS)))
Kaelthas->AI()->EnterEvadeMode(); Kaelthas->AI()->EnterEvadeMode();
} }
@@ -214,14 +214,14 @@ struct advisorbase_ai : public ScriptedAI
return; return;
//Prevent glitch if in fake death //Prevent glitch if in fake death
if (FakeDeath && m_instance && m_instance->GetData(DATA_KAELTHASEVENT) != 0) if (FakeDeath && instance && instance->GetData(DATA_KAELTHASEVENT) != 0)
{ {
damage = 0; damage = 0;
return; return;
} }
//Don't really die in phase 1 & 3, only die after that //Don't really die in phase 1 & 3, only die after that
if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) != 0) if (instance && instance->GetData(DATA_KAELTHASEVENT) != 0)
{ {
//prevent death //prevent death
damage = 0; damage = 0;
@@ -280,11 +280,11 @@ class boss_kaelthas : public CreatureScript
{ {
boss_kaelthasAI(Creature* creature) : ScriptedAI(creature), summons(me) boss_kaelthasAI(Creature* creature) : ScriptedAI(creature), summons(me)
{ {
m_instance = creature->GetInstanceScript(); instance = creature->GetInstanceScript();
memset(&m_auiAdvisorGuid, 0, sizeof(m_auiAdvisorGuid)); memset(&m_auiAdvisorGuid, 0, sizeof(m_auiAdvisorGuid));
} }
InstanceScript* m_instance; InstanceScript* instance;
uint32 Fireball_Timer; uint32 Fireball_Timer;
uint32 ArcaneDisruption_Timer; uint32 ArcaneDisruption_Timer;
@@ -335,8 +335,8 @@ class boss_kaelthas : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
if (m_instance) if (instance)
m_instance->SetData(DATA_KAELTHASEVENT, 0); instance->SetData(DATA_KAELTHASEVENT, 0);
} }
void PrepareAdvisors() void PrepareAdvisors()
@@ -355,13 +355,13 @@ class boss_kaelthas : public CreatureScript
void StartEvent() void StartEvent()
{ {
if (!m_instance) if (!instance)
return; return;
m_auiAdvisorGuid[0] = m_instance->GetData64(DATA_THALADREDTHEDARKENER); m_auiAdvisorGuid[0] = instance->GetData64(DATA_THALADREDTHEDARKENER);
m_auiAdvisorGuid[1] = m_instance->GetData64(DATA_LORDSANGUINAR); m_auiAdvisorGuid[1] = instance->GetData64(DATA_LORDSANGUINAR);
m_auiAdvisorGuid[2] = m_instance->GetData64(DATA_GRANDASTROMANCERCAPERNIAN); m_auiAdvisorGuid[2] = instance->GetData64(DATA_GRANDASTROMANCERCAPERNIAN);
m_auiAdvisorGuid[3] = m_instance->GetData64(DATA_MASTERENGINEERTELONICUS); m_auiAdvisorGuid[3] = instance->GetData64(DATA_MASTERENGINEERTELONICUS);
if (!m_auiAdvisorGuid[0] || !m_auiAdvisorGuid[1] || !m_auiAdvisorGuid[2] || !m_auiAdvisorGuid[3]) if (!m_auiAdvisorGuid[0] || !m_auiAdvisorGuid[1] || !m_auiAdvisorGuid[2] || !m_auiAdvisorGuid[3])
{ {
@@ -371,7 +371,7 @@ class boss_kaelthas : public CreatureScript
Phase = 4; Phase = 4;
m_instance->SetData(DATA_KAELTHASEVENT, 4); instance->SetData(DATA_KAELTHASEVENT, 4);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -386,7 +386,7 @@ class boss_kaelthas : public CreatureScript
DoScriptText(SAY_INTRO, me); DoScriptText(SAY_INTRO, me);
m_instance->SetData(DATA_KAELTHASEVENT, 1); instance->SetData(DATA_KAELTHASEVENT, 1);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
PhaseSubphase = 0; PhaseSubphase = 0;
@@ -412,7 +412,7 @@ class boss_kaelthas : public CreatureScript
} }
else if (me->GetMap()->IsDungeon()) else if (me->GetMap()->IsDungeon())
{ {
if (m_instance && !m_instance->GetData(DATA_KAELTHASEVENT) && !Phase) if (instance && !instance->GetData(DATA_KAELTHASEVENT) && !Phase)
StartEvent(); StartEvent();
who->SetInCombatWith(me); who->SetInCombatWith(me);
@@ -424,7 +424,7 @@ class boss_kaelthas : public CreatureScript
void EnterCombat(Unit* /*who*/) void EnterCombat(Unit* /*who*/)
{ {
if (m_instance && !m_instance->GetData(DATA_KAELTHASEVENT) && !Phase) if (instance && !instance->GetData(DATA_KAELTHASEVENT) && !Phase)
StartEvent(); StartEvent();
} }
@@ -456,8 +456,8 @@ class boss_kaelthas : public CreatureScript
summons.DespawnAll(); summons.DespawnAll();
if (m_instance) if (instance)
m_instance->SetData(DATA_KAELTHASEVENT, 0); instance->SetData(DATA_KAELTHASEVENT, 0);
for (uint8 i = 0; i < MAX_ADVISORS; ++i) for (uint8 i = 0; i < MAX_ADVISORS; ++i)
{ {
@@ -621,8 +621,8 @@ class boss_kaelthas : public CreatureScript
if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD)) if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))
{ {
Phase = 2; Phase = 2;
if (m_instance) if (instance)
m_instance->SetData(DATA_KAELTHASEVENT, 2); instance->SetData(DATA_KAELTHASEVENT, 2);
DoScriptText(SAY_PHASE2_WEAPON, me); DoScriptText(SAY_PHASE2_WEAPON, me);
@@ -666,8 +666,8 @@ class boss_kaelthas : public CreatureScript
if (Phase_Timer <= diff) if (Phase_Timer <= diff)
{ {
DoScriptText(SAY_PHASE3_ADVANCE, me); DoScriptText(SAY_PHASE3_ADVANCE, me);
if (m_instance) if (instance)
m_instance->SetData(DATA_KAELTHASEVENT, 3); instance->SetData(DATA_KAELTHASEVENT, 3);
Phase = 3; Phase = 3;
PhaseSubphase = 0; PhaseSubphase = 0;
} }
@@ -704,8 +704,8 @@ class boss_kaelthas : public CreatureScript
DoScriptText(SAY_PHASE4_INTRO2, me); DoScriptText(SAY_PHASE4_INTRO2, me);
Phase = 4; Phase = 4;
if (m_instance) if (instance)
m_instance->SetData(DATA_KAELTHASEVENT, 4); instance->SetData(DATA_KAELTHASEVENT, 4);
// Sometimes people can collect Aggro in Phase 1-3. Reset threat before releasing Kael. // Sometimes people can collect Aggro in Phase 1-3. Reset threat before releasing Kael.
DoResetThreat(); DoResetThreat();
@@ -809,8 +809,8 @@ class boss_kaelthas : public CreatureScript
{ {
if (HealthBelowPct(50)) if (HealthBelowPct(50))
{ {
if (m_instance) if (instance)
m_instance->SetData(DATA_KAELTHASEVENT, 4); instance->SetData(DATA_KAELTHASEVENT, 4);
Phase = 5; Phase = 5;
Phase_Timer = 10000; Phase_Timer = 10000;
@@ -1044,7 +1044,7 @@ class boss_thaladred_the_darkener : public CreatureScript
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) == 3) if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
DoScriptText(SAY_THALADRED_DEATH, me); DoScriptText(SAY_THALADRED_DEATH, me);
} }
@@ -1136,7 +1136,7 @@ class boss_lord_sanguinar : public CreatureScript
void JustDied(Unit* /*Killer*/) void JustDied(Unit* /*Killer*/)
{ {
if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) == 3) if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
DoScriptText(SAY_SANGUINAR_DEATH, me); DoScriptText(SAY_SANGUINAR_DEATH, me);
} }
@@ -1201,7 +1201,7 @@ class boss_grand_astromancer_capernian : public CreatureScript
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) == 3) if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
DoScriptText(SAY_CAPERNIAN_DEATH, me); DoScriptText(SAY_CAPERNIAN_DEATH, me);
} }
@@ -1340,7 +1340,7 @@ class boss_master_engineer_telonicus : public CreatureScript
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
if (m_instance && m_instance->GetData(DATA_KAELTHASEVENT) == 3) if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3)
DoScriptText(SAY_TELONICUS_DEATH, me); DoScriptText(SAY_TELONICUS_DEATH, me);
} }