feat(Core/Misc): implement ObjectGuid class (port from TC) (#4885)

This commit is contained in:
UltraNix
2021-04-25 22:18:03 +02:00
committed by GitHub
parent 91081f4ad8
commit f4c226423d
568 changed files with 10655 additions and 11019 deletions
@@ -26,8 +26,6 @@ public:
{
SetBossNumber(MAX_ENCOUNTERS);
LoadDoorData(doorData);
_krikthirGUID = 0;
_hadronoxGUID = 0;
};
void OnCreatureCreate(Creature* creature) override
@@ -114,8 +112,8 @@ public:
}
private:
uint64 _krikthirGUID;
uint64 _hadronoxGUID;
ObjectGuid _krikthirGUID;
ObjectGuid _hadronoxGUID;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const override
@@ -253,7 +253,7 @@ public:
if (me->GetEntry() == NPC_AHNKAHAR_GUARDIAN_ENTRY)
{
if (InstanceScript* pInstance = me->GetInstanceScript())
if (Creature* nadox = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_ELDER_NADOX)))
if (Creature* nadox = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_ELDER_NADOX)))
nadox->AI()->DoAction(ACTION_GUARDIAN_DIED);
me->RemoveAllAuras();
@@ -200,9 +200,9 @@ public:
}
uint16 phase = 1;
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
for (ObjectGuid guid : summons)
{
if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
if (Creature* summon = ObjectAccessor::GetCreature(*me, guid))
phase |= summon->GetPhaseMask();
}
@@ -144,7 +144,7 @@ public:
uint8 rnd = urand(0, summons.size() - 1);
uint8 loop = 0;
for (std::list<uint64>::iterator i = summons.begin(); i != summons.end();)
for (GuidList::iterator i = summons.begin(); i != summons.end();)
{
Creature* summon = ObjectAccessor::GetCreature(*me, *i);
if (summon && summon->GetEntry() == NPC_INITIATE && loop >= rnd)
@@ -450,7 +450,7 @@ public:
if (!pInstance || Killer == me)
return;
Creature* boss = me->GetMap()->GetCreature(pInstance->GetData64(DATA_JEDOGA_SHADOWSEEKER));
Creature* boss = me->GetMap()->GetCreature(pInstance->GetGuidData(DATA_JEDOGA_SHADOWSEEKER));
if (boss)
{
if (Timer)
@@ -475,7 +475,7 @@ public:
{
Unit::Kill(me, me);
me->DespawnOrUnsummon(5000);
Creature* boss = me->GetMap()->GetCreature(pInstance->GetData64(DATA_JEDOGA_SHADOWSEEKER));
Creature* boss = me->GetMap()->GetCreature(pInstance->GetGuidData(DATA_JEDOGA_SHADOWSEEKER));
if (boss)
boss->AI()->DoAction(ACTION_HERALD);
}
@@ -70,7 +70,7 @@ public:
InstanceScript* pInstance;
EventMap events;
SummonList summons;
uint64 vanishTarget;
ObjectGuid vanishTarget;
uint32 vanishDamage;
void Reset() override
@@ -81,7 +81,7 @@ public:
events.Reset();
summons.DespawnAll();
vanishDamage = 0;
vanishTarget = 0;
vanishTarget.Clear();
if (pInstance)
{
@@ -105,7 +105,7 @@ public:
me->UpdatePosition(me->GetPositionX(), me->GetPositionY(), DATA_GROUND_POSITION_Z, me->GetOrientation(), true);
if (pInstance)
pInstance->HandleGameObject(pInstance->GetData64(DATA_PRINCE_TALDARAM_PLATFORM), true);
pInstance->HandleGameObject(pInstance->GetGuidData(DATA_PRINCE_TALDARAM_PLATFORM), true);
}
}
@@ -126,7 +126,7 @@ public:
events.Reset();
events.ScheduleEvent(EVENT_PRINCE_FLAME_SPHERES, 10000);
events.ScheduleEvent(EVENT_PRINCE_BLOODTHIRST, 10000);
vanishTarget = 0;
vanishTarget.Clear();
vanishDamage = 0;
}
@@ -334,7 +334,7 @@ public:
if (!pInstance)
return false;
Creature* pPrinceTaldaram = ObjectAccessor::GetCreature(*go, pInstance->GetData64(DATA_PRINCE_TALDARAM));
Creature* pPrinceTaldaram = ObjectAccessor::GetCreature(*go, pInstance->GetGuidData(DATA_PRINCE_TALDARAM));
if (pPrinceTaldaram && pPrinceTaldaram->IsAlive())
{
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
@@ -17,14 +17,14 @@ public:
{
instance_ahnkahet_InstanceScript(Map* pMap) : InstanceScript(pMap) {Initialize();};
uint64 Elder_Nadox;
uint64 Prince_Taldaram;
uint64 Jedoga_Shadowseeker;
uint64 Herald_Volazj;
uint64 Amanitar;
ObjectGuid Elder_Nadox;
ObjectGuid Prince_Taldaram;
ObjectGuid Jedoga_Shadowseeker;
ObjectGuid Herald_Volazj;
ObjectGuid Amanitar;
uint64 Prince_TaldaramPlatform;
uint64 Prince_TaldaramGate;
ObjectGuid Prince_TaldaramPlatform;
ObjectGuid Prince_TaldaramGate;
uint32 m_auiEncounter[MAX_ENCOUNTER];
uint32 spheres;
@@ -36,14 +36,6 @@ public:
{
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
Elder_Nadox = 0;
Prince_Taldaram = 0;
Jedoga_Shadowseeker = 0;
Herald_Volazj = 0;
Amanitar = 0;
Prince_TaldaramPlatform = 0;
Prince_TaldaramGate = 0;
spheres = NOT_STARTED;
nadoxAchievement = false;
@@ -87,7 +79,7 @@ public:
case 193564:
Prince_TaldaramPlatform = pGo->GetGUID();
if (m_auiEncounter[1] == DONE)
HandleGameObject(0, true, pGo);
HandleGameObject(ObjectGuid::Empty, true, pGo);
break;
case 193093:
@@ -113,13 +105,13 @@ public:
case 192236:
Prince_TaldaramGate = pGo->GetGUID(); // Web gate past Prince Taldaram
if (m_auiEncounter[1] == DONE)
HandleGameObject(0, true, pGo);
HandleGameObject(ObjectGuid::Empty, true, pGo);
break;
}
}
uint64 GetData64(uint32 identifier) const override
ObjectGuid GetGuidData(uint32 identifier) const override
{
switch(identifier)
{
@@ -137,7 +129,7 @@ public:
return Prince_TaldaramPlatform;
}
return 0;
return ObjectGuid::Empty;
}
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target*/, uint32 /*miscvalue1*/) override
@@ -291,7 +291,7 @@ public:
// Store dragons
for (uint8 i = 0; i < MAX_DRAGONS; ++i)
{
Creature* dragon = ObjectAccessor::GetCreature(*me, instance->GetData64(dragons[i]));
Creature* dragon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(dragons[i]));
if (!dragon || !dragon->IsAlive() || instance->GetBossState(dragons[i]) == DONE)
{
continue;
@@ -420,7 +420,7 @@ public:
summons.RemoveNotExisting();
if (!summons.empty())
{
for (uint64 const summonGuid : summons)
for (ObjectGuid const summonGuid : summons)
{
Creature* summon = ObjectAccessor::GetCreature(*me, summonGuid);
if (summon && summon->GetEntry() == NPC_FIRE_CYCLONE)
@@ -486,7 +486,7 @@ public:
case EVENT_SARTHARION_CALL_TENEBRON:
{
Talk(SAY_SARTHARION_CALL_TENEBRON);
if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TENEBRON)))
if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TENEBRON)))
{
tenebron->AI()->DoAction(ACTION_CALL_DRAGON);
}
@@ -495,7 +495,7 @@ public:
case EVENT_SARTHARION_CALL_SHADRON:
{
Talk(SAY_SARTHARION_CALL_SHADRON);
if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON)))
if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADRON)))
{
shadron->AI()->DoAction(ACTION_CALL_DRAGON);
}
@@ -504,7 +504,7 @@ public:
case EVENT_SARTHARION_CALL_VESPERON:
{
Talk(SAY_SARTHARION_CALL_VESPERON);
if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VESPERON)))
if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VESPERON)))
{
vesperon->AI()->DoAction(ACTION_CALL_DRAGON);
}
@@ -556,7 +556,7 @@ public:
uint8 iter = 0;
if (!summons.empty())
{
for (uint64 const summonGuid : summons)
for (ObjectGuid const summonGuid : summons)
{
Creature* summon = ObjectAccessor::GetCreature(*me, summonGuid);
if (summon && summon->GetEntry() == NPC_FIRE_CYCLONE && iter == rand)
@@ -636,7 +636,7 @@ public:
return;
}
for (uint64 const guid : summons)
for (ObjectGuid const guid : summons)
{
Creature* tsunami = ObjectAccessor::GetCreature(*me, guid);
if (!tsunami || tsunami->GetEntry() != NPC_FLAME_TSUNAMI)
@@ -664,7 +664,7 @@ public:
continue;
}
if (Creature* dragon = ObjectAccessor::GetCreature(*me, instance->GetData64(dragons[i])))
if (Creature* dragon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(dragons[i])))
{
if (checkCombat && dragon->IsInCombat())
{
@@ -706,9 +706,7 @@ public:
struct boss_sartharion_dragonAI : public BossAI
{
boss_sartharion_dragonAI(Creature* pCreature, uint32 bossId) : BossAI(pCreature, bossId),
portalGUID(0),
isCalledBySartharion(false)
boss_sartharion_dragonAI(Creature* pCreature, uint32 bossId) : BossAI(pCreature, bossId), isCalledBySartharion(false)
{
}
@@ -722,7 +720,7 @@ struct boss_sartharion_dragonAI : public BossAI
me->SetSpeed(MOVE_FLIGHT, 1.0f);
me->SetCanFly(false);
me->ResetLootMode();
portalGUID = 0;
portalGUID.Clear();
isCalledBySartharion = false;
instance->DoAction(ACTION_CLEAR_PORTAL);
}
@@ -788,7 +786,7 @@ struct boss_sartharion_dragonAI : public BossAI
// Transfer summons to Sartharion
if (isCalledBySartharion && instance->GetBossState(DATA_SARTHARION) == IN_PROGRESS)
{
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
{
sartharion->AI()->JustSummoned(summon);
}
@@ -872,7 +870,7 @@ struct boss_sartharion_dragonAI : public BossAI
Talk(SAY_SHADRON_DEATH);
if (isCalledBySartharion)
{
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
{
sartharion->RemoveAura(SPELL_GIFT_OF_TWILIGHT_FIRE);
}
@@ -902,7 +900,7 @@ struct boss_sartharion_dragonAI : public BossAI
}
else
{
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
{
sartharion->AI()->DoAction(ACTION_DRAKE_DIED);
}
@@ -989,12 +987,12 @@ protected:
gobj->Delete();
}
portalGUID = 0;
portalGUID.Clear();
}
}
EventMap extraEvents;
uint64 portalGUID;
ObjectGuid portalGUID;
bool isCalledBySartharion;
};
@@ -1115,7 +1113,7 @@ public:
summons.Summon(egg);
if (isCalledBySartharion && instance->GetBossState(DATA_SARTHARION) == IN_PROGRESS)
{
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
{
sartharion->AI()->JustSummoned(egg);
}
@@ -1131,7 +1129,7 @@ public:
{
summons.RemoveNotExisting();
summons.DespawnEntry(NPC_TWILIGHT_WHELP);
for (uint64 const summonGuid : summons)
for (ObjectGuid const summonGuid : summons)
{
Creature const* summon = ObjectAccessor::GetCreature(*me, summonGuid);
if (!summon || !summon->IsAlive() || summon->GetEntry() != NPC_TWILIGHT_EGG)
@@ -1144,7 +1142,7 @@ public:
summons2.Summon(whelp);
if (isCalledBySartharion && instance->GetBossState(DATA_SARTHARION) == IN_PROGRESS)
{
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
{
sartharion->AI()->JustSummoned(whelp);
}
@@ -1219,7 +1217,7 @@ public:
instance->DoAction(ACTION_CLEAR_PORTAL);
}
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SARTHARION)))
if (Creature* sartharion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SARTHARION)))
{
sartharion->RemoveAurasDueToSpell(SPELL_GIFT_OF_TWILIGHT_FIRE);
}
@@ -1534,9 +1532,9 @@ public:
if (InstanceScript* pInstance = GetCaster()->GetInstanceScript())
{
if (Creature* sarth = ObjectAccessor::GetCreature(*GetHitUnit(), pInstance->GetData64(DATA_SARTHARION)))
if (Creature* sarth = ObjectAccessor::GetCreature(*GetHitUnit(), pInstance->GetGuidData(DATA_SARTHARION)))
{
sarth->AI()->SetData(DATA_VOLCANO_BLOWS, GetHitUnit()->GetGUIDLow());
sarth->AI()->SetData(DATA_VOLCANO_BLOWS, GetHitUnit()->GetGUID().GetCounter());
sarth->CastSpell(GetHitUnit(), SPELL_LAVA_STRIKE_SUMMON, true);
spawned = true;
}
@@ -20,13 +20,7 @@ public:
struct instance_obsidian_sanctum_InstanceMapScript : public InstanceScript
{
instance_obsidian_sanctum_InstanceMapScript(Map* pMap) : InstanceScript(pMap),
m_uiSartharionGUID(0),
m_uiTenebronGUID(0),
m_uiShadronGUID(0),
m_uiVesperonGUID(0),
m_uiPortalGUID(0),
portalCount(0)
instance_obsidian_sanctum_InstanceMapScript(Map* pMap) : InstanceScript(pMap), portalCount(0)
{
SetBossNumber(MAX_ENCOUNTERS);
}
@@ -61,7 +55,7 @@ public:
}
}
uint64 GetData64(uint32 uiData) const override
ObjectGuid GetGuidData(uint32 uiData) const override
{
switch(uiData)
{
@@ -74,7 +68,8 @@ public:
case DATA_VESPERON:
return m_uiVesperonGUID;
}
return 0;
return ObjectGuid::Empty;
}
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* source, Unit const* /*target*/, uint32 /*miscvalue1*/) override
@@ -87,7 +82,7 @@ public:
case 7327:
{
Creature const* sartharion = instance->GetCreature(m_uiSartharionGUID);
return sartharion && !sartharion->AI()->GetData(source->GetGUIDLow());
return sartharion && !sartharion->AI()->GetData(source->GetGUID().GetCounter());
}
// Less Is More (10 player) (624)
case 7189:
@@ -182,7 +177,7 @@ public:
}
DoRemoveAurasDueToSpellOnPlayers(SPELL_TWILIGHT_SHIFT);
m_uiPortalGUID = 0;
m_uiPortalGUID.Clear();
}
break;
}
@@ -232,11 +227,11 @@ public:
}
private:
uint64 m_uiSartharionGUID;
uint64 m_uiTenebronGUID;
uint64 m_uiShadronGUID;
uint64 m_uiVesperonGUID;
uint64 m_uiPortalGUID;
ObjectGuid m_uiSartharionGUID;
ObjectGuid m_uiTenebronGUID;
ObjectGuid m_uiShadronGUID;
ObjectGuid m_uiVesperonGUID;
ObjectGuid m_uiPortalGUID;
uint8 portalCount;
};
};
@@ -168,7 +168,7 @@ public:
Talk(SAY_DEATH);
BossAI::JustDied(killer);
if (Creature* xerestrasza = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_XERESTRASZA)))
if (Creature* xerestrasza = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_XERESTRASZA)))
xerestrasza->AI()->DoAction(ACTION_BALTHARUS_DEATH);
}
@@ -454,10 +454,10 @@ public:
{
if (InstanceScript* instance = player->GetInstanceScript())
{
if (Creature* xerestrasza = ObjectAccessor::GetCreature(*player, instance->GetData64(NPC_XERESTRASZA)))
if (Creature* xerestrasza = ObjectAccessor::GetCreature(*player, instance->GetGuidData(NPC_XERESTRASZA)))
xerestrasza->AI()->DoAction(ACTION_INTRO_BALTHARUS);
if (Creature* baltharus = ObjectAccessor::GetCreature(*player, instance->GetData64(NPC_BALTHARUS_THE_WARBORN)))
if (Creature* baltharus = ObjectAccessor::GetCreature(*player, instance->GetGuidData(NPC_BALTHARUS_THE_WARBORN)))
baltharus->AI()->DoAction(ACTION_INTRO_BALTHARUS);
}
@@ -140,16 +140,16 @@ public:
{
case EVENT_SUMMON_ADDS1:
Talk(SAY_ADDS);
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
stalker1->CastSpell(stalker1, SPELL_SUMMON_FLAMECALLER, false);
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
stalker2->CastSpell(stalker2, SPELL_SUMMON_FLAMECALLER, false);
events.ScheduleEvent(EVENT_SUMMON_ADDS1, 40000);
break;
case EVENT_SUMMON_ADDS2:
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
stalker1->CastSpell(stalker1, SPELL_SUMMON_FLAMECALLER, false);
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
stalker2->CastSpell(stalker2, SPELL_SUMMON_FLAMECALLER, false);
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 40000);
break;
@@ -213,7 +213,7 @@ public:
void IsSummonedBy(Unit* /*summoner*/) override
{
// Let Zarithrian count as summoner. _instance cant be null since we got GetRubySanctumAI
if (Creature* zarithrian = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_GENERAL_ZARITHRIAN)))
if (Creature* zarithrian = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_GENERAL_ZARITHRIAN)))
zarithrian->AI()->JustSummoned(me);
}
@@ -275,7 +275,7 @@ public:
void JustReachedHome() override
{
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_HALION_CONTROLLER)))
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_HALION_CONTROLLER)))
controller->AI()->DoAction(ACTION_RESET_ENCOUNTER);
BossAI::JustReachedHome();
}
@@ -312,11 +312,11 @@ public:
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
me->CastSpell(me, SPELL_CLEAR_DEBUFFS, false);
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_TWILIGHT_HALION)))
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_TWILIGHT_HALION)))
if (twilightHalion->IsAlive())
Unit::Kill(twilightHalion, twilightHalion);
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_HALION_CONTROLLER)))
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_HALION_CONTROLLER)))
if (controller->IsAlive())
Unit::Kill(controller, controller);
}
@@ -329,7 +329,7 @@ public:
if (!attacker || !me->InSamePhase(attacker))
return;
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_HALION_CONTROLLER)))
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_HALION_CONTROLLER)))
controller->AI()->SetData(DATA_MATERIAL_DAMAGE_TAKEN, damage);
}
@@ -344,7 +344,7 @@ public:
break;
case EVENT_TRIGGER_BERSERK:
me->CastSpell(me, SPELL_BERSERK, true);
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_TWILIGHT_HALION)))
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_TWILIGHT_HALION)))
twilightHalion->CastSpell(twilightHalion, SPELL_BERSERK, true);
break;
}
@@ -375,8 +375,8 @@ public:
events.ScheduleEvent(EVENT_BREATH, urand(10000, 12000));
break;
case EVENT_ACTIVATE_FIREWALL:
instance->HandleGameObject(instance->GetData64(GO_FLAME_RING), false, nullptr);
instance->HandleGameObject(instance->GetData64(GO_TWILIGHT_FLAME_RING), false, nullptr);
instance->HandleGameObject(instance->GetGuidData(GO_FLAME_RING), false, nullptr);
instance->HandleGameObject(instance->GetGuidData(GO_TWILIGHT_FLAME_RING), false, nullptr);
break;
case EVENT_METEOR_STRIKE:
_livingEmberCount = summons.GetEntryCount(NPC_LIVING_EMBER);
@@ -424,7 +424,7 @@ public:
{
boss_twilight_halionAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript())
{
Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION));
Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION));
if (!halion)
return;
@@ -474,7 +474,7 @@ public:
void JustDied(Unit* killer) override
{
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION)))
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION)))
{
// Ensure looting
if (me->IsDamageEnoughForLootingAndReward())
@@ -484,7 +484,7 @@ public:
Unit::Kill(killer, halion);
}
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION_CONTROLLER)))
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION_CONTROLLER)))
if (controller->IsAlive())
Unit::Kill(controller, controller);
@@ -497,7 +497,7 @@ public:
if (!attacker || !me->InSamePhase(attacker))
return;
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION_CONTROLLER)))
if (Creature* controller = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION_CONTROLLER)))
controller->AI()->SetData(DATA_TWILIGHT_DAMAGE_TAKEN, damage);
}
@@ -549,7 +549,7 @@ public:
_events.ScheduleEvent(EVENT_SHADOW_PULSARS_SHOOT, 5000);
break;
case EVENT_SHADOW_PULSARS_SHOOT:
if (Creature* orbCarrier = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ORB_CARRIER)))
if (Creature* orbCarrier = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_ORB_CARRIER)))
orbCarrier->AI()->DoAction(ACTION_SHOOT);
break;
}
@@ -642,7 +642,7 @@ public:
_events.ScheduleEvent(EVENT_INTRO_PROGRESS_4, 500);
break;
case EVENT_INTRO_PROGRESS_4:
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION)))
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION)))
{
halion->SetVisible(true);
halion->SetReactState(REACT_AGGRESSIVE);
@@ -708,14 +708,14 @@ public:
_instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, _corporeality * 10);
_instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 100 - _corporeality * 10);
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_TWILIGHT_HALION)))
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_TWILIGHT_HALION)))
{
twilightHalion->RemoveAurasDueToSpell(_corporealityReference[MAX_CORPOREALITY_STATE - 1 - oldValue]);
twilightHalion->CastSpell(twilightHalion, _corporealityReference[MAX_CORPOREALITY_STATE - 1 - _corporeality], true);
twilightHalion->AI()->Talk(oldValue < _corporeality ? EMOTE_CORPOREALITY_TOT : EMOTE_CORPOREALITY_TIT);
}
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_HALION)))
if (Creature* halion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_HALION)))
{
halion->RemoveAurasDueToSpell(_corporealityReference[oldValue]);
halion->CastSpell(halion, _corporealityReference[_corporeality], true);
@@ -928,7 +928,7 @@ public:
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
GetTarget()->RemoveAurasDueToSpell(_markSpell, 0, 0, AURA_REMOVE_BY_EXPIRE);
GetTarget()->RemoveAurasDueToSpell(_markSpell, ObjectGuid::Empty, 0, AURA_REMOVE_BY_EXPIRE);
}
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -978,7 +978,7 @@ public:
if (Unit* dispelledUnit = GetUnitOwner())
if (dispelledUnit->HasAura(_removeSpellId))
dispelledUnit->RemoveAurasDueToSpell(_removeSpellId, 0, 0, AURA_REMOVE_BY_EXPIRE);
dispelledUnit->RemoveAurasDueToSpell(_removeSpellId, ObjectGuid::Empty, 0, AURA_REMOVE_BY_EXPIRE);
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -1188,7 +1188,7 @@ public:
if (!target)
return;
target->RemoveAurasDueToSpell(SPELL_FIERY_COMBUSTION, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL);
target->RemoveAurasDueToSpell(SPELL_FIERY_COMBUSTION, ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL);
if (GetTarget()->GetTypeId() != TYPEID_PLAYER)
return;
GetTarget()->m_Events.AddEvent(new SendEncounterUnit(GetTarget()->ToPlayer()), GetTarget()->m_Events.CalculateTime(500));
@@ -1221,7 +1221,7 @@ public:
if (!target)
return;
target->RemoveAurasDueToSpell(SPELL_SOUL_CONSUMPTION, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL);
target->RemoveAurasDueToSpell(SPELL_SOUL_CONSUMPTION, ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL);
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*handle*/)
@@ -1373,8 +1373,8 @@ public:
void HandleDummy(SpellEffIndex /*effIndex*/)
{
InstanceScript* instance = GetCaster()->GetInstanceScript();
Creature* controller = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(NPC_HALION_CONTROLLER));
Creature* halion = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(NPC_HALION));
Creature* controller = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(NPC_HALION_CONTROLLER));
Creature* halion = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(NPC_HALION));
if (!controller || !halion)
return;
@@ -1449,7 +1449,7 @@ public:
me->CastSpell(me, SPELL_BLAZING_AURA, true);
if (InstanceScript* instance = me->GetInstanceScript())
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_HALION_CONTROLLER)))
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_HALION_CONTROLLER)))
controller->AI()->JustSummoned(me);
}
@@ -34,17 +34,6 @@ public:
{
SetBossNumber(MAX_ENCOUNTERS);
LoadDoorData(doorData);
BaltharusTheWarbornGUID = 0;
XerestraszaGUID = 0;
GeneralZarithrianGUID = 0;
memset(ZarithrianSpawnStalkerGUID, 0, 2 * sizeof(uint64));
HalionGUID = 0;
TwilightHalionGUID = 0;
OrbCarrierGUID = 0;
HalionControllerGUID = 0;
FlameRingGUID = 0;
}
void OnPlayerEnter(Player* /*player*/) override
@@ -138,7 +127,7 @@ public:
}
}
uint64 GetData64(uint32 type) const override
ObjectGuid GetGuidData(uint32 type) const override
{
switch (type)
{
@@ -164,7 +153,7 @@ public:
return FlameRingGUID;
}
return 0;
return ObjectGuid::Empty;
}
bool SetBossState(uint32 type, EncounterState state) override
@@ -255,16 +244,16 @@ public:
}
protected:
uint64 BaltharusTheWarbornGUID;
uint64 XerestraszaGUID;
uint64 GeneralZarithrianGUID;
uint64 ZarithrianSpawnStalkerGUID[2];
ObjectGuid BaltharusTheWarbornGUID;
ObjectGuid XerestraszaGUID;
ObjectGuid GeneralZarithrianGUID;
ObjectGuid ZarithrianSpawnStalkerGUID[2];
uint64 HalionGUID;
uint64 TwilightHalionGUID;
uint64 HalionControllerGUID;
uint64 OrbCarrierGUID;
uint64 FlameRingGUID;
ObjectGuid HalionGUID;
ObjectGuid TwilightHalionGUID;
ObjectGuid HalionControllerGUID;
ObjectGuid OrbCarrierGUID;
ObjectGuid FlameRingGUID;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const override
@@ -210,7 +210,7 @@ public:
InstanceScript* pInstance;
EventMap events;
bool summoned;
uint64 MemoryGUID;
ObjectGuid MemoryGUID;
void Reset() override
{
@@ -220,7 +220,7 @@ public:
{
if( Creature* memory = ObjectAccessor::GetCreature(*me, MemoryGUID) )
memory->DespawnOrUnsummon();
MemoryGUID = 0;
MemoryGUID.Clear();
}
me->SetReactState(REACT_PASSIVE);
if( pInstance )
@@ -259,7 +259,7 @@ public:
{
if( param == 1 )
{
MemoryGUID = 0;
MemoryGUID.Clear();
me->RemoveAura(SPELL_SHIELD);
Talk(TEXT_PALETRESS_MEMORY_DEFEATED);
}
@@ -269,7 +269,7 @@ public:
if( Creature* memory = ObjectAccessor::GetCreature(*me, MemoryGUID) )
{
memory->DespawnOrUnsummon();
MemoryGUID = 0;
MemoryGUID.Clear();
}
}
}
@@ -403,7 +403,7 @@ public:
{
me->DespawnOrUnsummon(20000);
if( pInstance )
if( Creature* paletress = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_PALETRESS)) )
if( Creature* paletress = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_PALETRESS)) )
paletress->AI()->DoAction(1);
}
@@ -598,7 +598,7 @@ public:
break;
}
Start(false, true, 0);
Start(false, true);
uiWaypoint = uiType;
}
@@ -162,7 +162,7 @@ public:
pInstance->SetData(BOSS_BLACK_KNIGHT, IN_PROGRESS);
Talk(TEXT_BK_AGGRO);
me->CastSpell((Unit*)nullptr, (pInstance->GetData(DATA_TEAMID_IN_INSTANCE) == TEAM_HORDE ? SPELL_RAISE_DEAD_JAEREN : SPELL_RAISE_DEAD_ARELAS), false);
if( Creature* announcer = pInstance->instance->GetCreature(pInstance->GetData64(DATA_ANNOUNCER)) )
if( Creature* announcer = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_ANNOUNCER)) )
announcer->DespawnOrUnsummon();
events.Reset();
@@ -327,7 +327,7 @@ public:
void Reset() override
{
Start(false, true, 0, nullptr);
Start(false, true, ObjectGuid::Empty, nullptr);
SetDespawnAtEnd(true);
}
@@ -263,7 +263,7 @@ public:
break;
case EVENT_MOUNT_CHARGE:
{
std::vector<uint64> LIST;
GuidVector LIST;
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
if( Player* plr = itr->GetSource() )
@@ -294,7 +294,7 @@ public:
break;
case EVENT_SHIELD_BREAKER:
{
std::vector<uint64> LIST;
GuidVector LIST;
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
if( Player* plr = itr->GetSource() )
@@ -346,7 +346,7 @@ public:
SetDespawnAtEnd(false);
me->SetReactState(REACT_PASSIVE);
BossOrder = 0;
NewMountGUID = 0;
NewMountGUID.Clear();
me->CastSpell(me, SPELL_BOSS_DEFEND_PERIODIC, true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
@@ -379,8 +379,8 @@ public:
EventMap events;
uint32 BossOrder;
bool MountPhase;
uint64 NewMountGUID;
uint64 UnitTargetGUID;
ObjectGuid NewMountGUID;
ObjectGuid UnitTargetGUID;
void Reset() override
{
@@ -471,7 +471,7 @@ public:
if( param == 1 )
{
MountPhase = false;
NewMountGUID = 0;
NewMountGUID.Clear();
me->SetHealth(me->GetMaxHealth());
me->SetRegeneratingHealth(true);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
@@ -522,7 +522,7 @@ public:
return;
}
Start(false, true, 0, nullptr);
Start(false, true);
}
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
@@ -621,7 +621,7 @@ public:
me->CastSpell(me, SPELL_TRAMPLE_AURA, true);
if( pInstance )
pInstance->SetData(DATA_REACHED_NEW_MOUNT, 0);
NewMountGUID = 0;
NewMountGUID.Clear();
}
}
else if( id == 9 )
@@ -716,7 +716,7 @@ public:
break;
case EVENT_MOUNT_CHARGE:
{
std::vector<uint64> LIST;
GuidVector LIST;
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
if( Player* plr = itr->GetSource() )
@@ -747,7 +747,7 @@ public:
break;
case EVENT_SHIELD_BREAKER:
{
std::vector<uint64> LIST;
GuidVector LIST;
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
if( Player* plr = itr->GetSource() )
@@ -865,7 +865,7 @@ public:
}
}
}
UnitTargetGUID = 0;
UnitTargetGUID.Clear();
}
events.RepeatEvent(urand(15000, 20000));
}
@@ -34,24 +34,24 @@ public:
uint32 m_auiEncounter[MAX_ENCOUNTER];
std::string str_data;
std::list<uint64> VehicleList;
GuidList VehicleList;
EventMap events;
uint8 Counter;
uint8 temp1, temp2;
bool shortver;
bool bAchievIveHadWorse;
uint64 NPC_AnnouncerGUID;
uint64 NPC_TirionGUID;
uint64 NPC_GrandChampionGUID[3];
uint64 NPC_GrandChampionMinionsGUID[3][3];
uint64 NPC_ArgentChampionGUID;
uint64 NPC_ArgentSoldierGUID[3][3];
uint64 NPC_MemoryEntry;
uint64 NPC_BlackKnightVehicleGUID;
uint64 NPC_BlackKnightGUID;
uint64 GO_MainGateGUID;
uint64 GO_EnterGateGUID;
ObjectGuid NPC_AnnouncerGUID;
ObjectGuid NPC_TirionGUID;
ObjectGuid NPC_GrandChampionGUID[3];
ObjectGuid NPC_GrandChampionMinionsGUID[3][3];
ObjectGuid NPC_ArgentChampionGUID;
ObjectGuid NPC_ArgentSoldierGUID[3][3];
uint32 NPC_MemoryEntry;
ObjectGuid NPC_BlackKnightVehicleGUID;
ObjectGuid NPC_BlackKnightGUID;
ObjectGuid GO_MainGateGUID;
ObjectGuid GO_EnterGateGUID;
void Initialize() override
{
@@ -68,18 +68,6 @@ public:
temp2 = 0;
shortver = false;
bAchievIveHadWorse = true;
NPC_AnnouncerGUID = 0;
NPC_TirionGUID = 0;
memset(&NPC_GrandChampionGUID, 0, sizeof(NPC_GrandChampionGUID));
memset(&NPC_GrandChampionMinionsGUID, 0, sizeof(NPC_GrandChampionMinionsGUID));
memset(&NPC_ArgentSoldierGUID, 0, sizeof(NPC_ArgentSoldierGUID));
NPC_ArgentChampionGUID = 0;
NPC_MemoryEntry = 0;
NPC_BlackKnightVehicleGUID = 0;
NPC_BlackKnightGUID = 0;
GO_MainGateGUID = 0;
GO_EnterGateGUID = 0;
}
bool IsEncounterInProgress() const override
@@ -291,8 +279,8 @@ public:
case INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_3:
// revert to INSTANCE_PROGRESS_INITIAL
{
for( std::list<uint64>::const_iterator itr = VehicleList.begin(); itr != VehicleList.end(); ++itr )
if( Creature* veh = instance->GetCreature(*itr) )
for (ObjectGuid const guid : VehicleList)
if (Creature* veh = instance->GetCreature(guid))
{
veh->DespawnOrUnsummon();
veh->SetRespawnTime(3);
@@ -303,11 +291,11 @@ public:
{
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[i][j]) )
c->DespawnOrUnsummon();
NPC_GrandChampionMinionsGUID[i][j] = 0;
NPC_GrandChampionMinionsGUID[i][j].Clear();
}
if( Creature* c = instance->GetCreature(NPC_GrandChampionGUID[i]) )
c->DespawnOrUnsummon();
NPC_GrandChampionGUID[i] = 0;
NPC_GrandChampionGUID[i].Clear();
}
if( Creature* c = instance->GetCreature(NPC_AnnouncerGUID) )
{
@@ -372,14 +360,14 @@ public:
{
if( Creature* c = instance->GetCreature(NPC_ArgentSoldierGUID[i][j]) )
c->DespawnOrUnsummon();
NPC_ArgentSoldierGUID[i][j] = 0;
NPC_ArgentSoldierGUID[i][j].Clear();
}
if( Creature* c = instance->GetCreature(NPC_ArgentChampionGUID) )
{
c->AI()->DoAction(-1); // paletress despawn memory
c->DespawnOrUnsummon();
}
NPC_ArgentChampionGUID = 0;
NPC_ArgentChampionGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_AnnouncerGUID) )
{
c->DespawnOrUnsummon();
@@ -397,13 +385,13 @@ public:
{
if( Creature* c = instance->GetCreature(NPC_BlackKnightVehicleGUID) )
c->DespawnOrUnsummon();
NPC_BlackKnightVehicleGUID = 0;
NPC_BlackKnightVehicleGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_BlackKnightGUID) )
{
c->AI()->DoAction(-1);
c->DespawnOrUnsummon();
}
NPC_BlackKnightGUID = 0;
NPC_BlackKnightGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_AnnouncerGUID) )
{
c->DespawnOrUnsummon();
@@ -444,7 +432,7 @@ public:
return 0;
}
uint64 GetData64(uint32 uiData) const override
ObjectGuid GetGuidData(uint32 uiData) const override
{
switch( uiData )
{
@@ -454,7 +442,7 @@ public:
return NPC_ArgentChampionGUID;
}
return 0;
return ObjectGuid::Empty;
}
void SetData(uint32 uiType, uint32 uiData) override
@@ -579,8 +567,8 @@ public:
{
Counter = 0;
InstanceProgress = INSTANCE_PROGRESS_CHAMPIONS_UNMOUNTED;
for( std::list<uint64>::const_iterator itr = VehicleList.begin(); itr != VehicleList.end(); ++itr )
if( Creature* veh = instance->GetCreature(*itr) )
for (ObjectGuid const guid : VehicleList)
if (Creature* veh = instance->GetCreature(guid))
veh->DespawnOrUnsummon();
events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_MOVE_SIDE, 0);
}
@@ -157,8 +157,8 @@ public:
EventMap events;
bool bIntro;
bool bPhase3;
uint64 SphereGUID[6];
uint64 BurrowGUID[4];
ObjectGuid SphereGUID[6];
ObjectGuid BurrowGUID[4];
void Reset() override
{
@@ -200,9 +200,9 @@ public:
if( !IsHeroic() )
events.RescheduleEvent(EVENT_RESPAWN_SPHERE, 4000);
for( std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr )
for (ObjectGuid guid : summons)
if (pInstance)
if(Creature* c = pInstance->instance->GetCreature(*itr) )
if (Creature* c = pInstance->instance->GetCreature(guid))
{
c->GetMotionMaster()->MoveIdle();
c->StopMoving();
@@ -621,7 +621,7 @@ public:
{
// I am summoned by another npc (SPELL_EFFECT_FORCE_CAST), inform Anub'arak
if (InstanceScript* pInstance = me->GetInstanceScript())
if (uint64 guid = pInstance->GetData64(TYPE_ANUBARAK))
if (ObjectGuid guid = pInstance->GetGuidData(TYPE_ANUBARAK))
if (Creature* anub = pInstance->instance->GetCreature(guid))
CAST_AI(boss_anubarak_trial::boss_anubarak_trialAI, anub->AI())->JustSummoned(me);
}
@@ -743,7 +743,7 @@ public:
}
EventMap events;
uint64 TargetGUID;
ObjectGuid TargetGUID;
void DoAction(int32 param) override
{
@@ -751,7 +751,7 @@ public:
{
if( Unit* target = ObjectAccessor::GetPlayer(*me, TargetGUID) )
target->RemoveAura(SPELL_MARK);
TargetGUID = 0;
TargetGUID.Clear();
me->RemoveAllAuras();
me->GetMotionMaster()->MoveIdle();
events.Reset();
@@ -764,7 +764,7 @@ public:
if (TargetGUID)
if( Unit* target = ObjectAccessor::GetPlayer(*me, TargetGUID) )
target->RemoveAura(SPELL_MARK);
TargetGUID = 0;
TargetGUID.Clear();
if (!next)
{
events.Reset();
@@ -76,13 +76,13 @@ public:
npc_snobold_vassalAI(Creature* pCreature) : ScriptedAI(pCreature)
{
pInstance = pCreature->GetInstanceScript();
TargetGUID = 0;
TargetGUID.Clear();
me->SetReactState(REACT_PASSIVE);
}
InstanceScript* pInstance;
EventMap events;
uint64 TargetGUID;
ObjectGuid TargetGUID;
void Reset() override
{
@@ -124,7 +124,7 @@ public:
me->CombatStop(true);
me->SetHealth(me->GetMaxHealth());
if( pInstance )
if( Creature* gormok = ObjectAccessor::GetCreature(*me, pInstance->GetData64(TYPE_GORMOK)) )
if( Creature* gormok = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_GORMOK)) )
if( gormok->IsAlive() )
if( Vehicle* vk = gormok->GetVehicleKit() )
for( uint8 i = 0; i < 4; ++i )
@@ -134,7 +134,7 @@ public:
Reset();
break;
}
TargetGUID = 0;
TargetGUID.Clear();
return;
}
@@ -161,9 +161,9 @@ public:
{
if( t->GetTypeId() != TYPEID_PLAYER && pInstance )
{
std::vector<uint64> validPlayers;
GuidVector validPlayers;
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
Creature* gormok = ObjectAccessor::GetCreature(*me, pInstance->GetData64(TYPE_GORMOK));
Creature* gormok = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_GORMOK));
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
{
@@ -234,13 +234,13 @@ public:
InstanceScript* pInstance;
EventMap events;
SummonList summons;
uint64 PlayerGUID;
ObjectGuid PlayerGUID;
void Reset() override
{
events.Reset();
summons.DespawnAll();
PlayerGUID = 0;
PlayerGUID.Clear();
}
void EnterCombat(Unit* /*who*/) override
@@ -298,7 +298,7 @@ public:
for( uint8 i = 0; i < 4; ++i )
if( Unit* snobold = vk->GetPassenger(i) )
{
std::vector<uint64> validPlayers;
GuidVector validPlayers;
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
{
@@ -358,7 +358,7 @@ public:
snobold->ToCreature()->DespawnOrUnsummon();
}
}
PlayerGUID = 0;
PlayerGUID.Clear();
}
break;
}
@@ -561,7 +561,7 @@ struct boss_jormungarAI : public ScriptedAI
// second one submerge 1.5sec after the first one, used also for synchronizing
if( pInstance )
if( Creature* c = ObjectAccessor::GetCreature(*me, pInstance->GetData64(_TYPE_OTHER)) )
if( Creature* c = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(_TYPE_OTHER)) )
c->AI()->DoAction(-1);
events.Reset();
@@ -647,7 +647,7 @@ struct boss_jormungarAI : public ScriptedAI
{
if( pInstance )
{
if( Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(_TYPE_OTHER)) )
if( Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(_TYPE_OTHER)) )
if( c->IsAlive() )
c->AI()->DoAction(-2);
pInstance->SetData(TYPE_JORMUNGAR, DONE);
@@ -776,7 +776,7 @@ public:
InstanceScript* pInstance;
EventMap events;
uint64 TargetGUID;
ObjectGuid TargetGUID;
float destX, destY, destZ;
void AttackStart(Unit* who) override
@@ -882,7 +882,7 @@ public:
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
me->GetMotionMaster()->MoveJump(Locs[LOC_CENTER].GetPositionX(), Locs[LOC_CENTER].GetPositionY(), Locs[LOC_CENTER].GetPositionZ(), 40.0f, 12.0f);
me->SetUInt64Value(UNIT_FIELD_TARGET, 0);
me->SetGuidValue(UNIT_FIELD_TARGET, ObjectGuid::Empty);
events.Reset();
events.RescheduleEvent(EVENT_SPELL_MASSIVE_CRASH, 2000);
break;
@@ -893,10 +893,10 @@ public:
events.RescheduleEvent(EVENT_GAZE, 2000);
break;
case EVENT_GAZE:
if( Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 500.0f, true) )
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 500.0f, true) )
{
TargetGUID = target->GetGUID();
me->SetUInt64Value(UNIT_FIELD_TARGET, TargetGUID);
me->SetGuidValue(UNIT_FIELD_TARGET, TargetGUID);
me->SetFacingToObject(target);
Talk(EMOTE_TRAMPLE_STARE, target);
me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
@@ -958,7 +958,7 @@ public:
me->DisableSpline();
me->GetMotionMaster()->Clear();
me->GetMotionMaster()->MoveCharge(destX, destY, destZ + 1.0f, 65.0f);
me->SetUInt64Value(UNIT_FIELD_TARGET, 0);
me->SetGuidValue(UNIT_FIELD_TARGET, ObjectGuid::Empty);
events.RescheduleEvent(EVENT_CHECK_TRAMPLE_PLAYERS, 100);
break;
@@ -187,7 +187,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
Creature* GetSister()
{
return ObjectAccessor::GetCreature(*me, pInstance->GetData64(me->GetEntry() == NPC_DARKBANE ? NPC_LIGHTBANE : NPC_DARKBANE));
return ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(me->GetEntry() == NPC_DARKBANE ? NPC_LIGHTBANE : NPC_DARKBANE));
}
/*void AttackStart(Unit* victim)
@@ -371,7 +371,7 @@ struct boss_twin_valkyrAI : public ScriptedAI
events.RepeatEvent(urand(45000,50000));
*/
std::vector<uint64> tList;
GuidVector tList;
Map::PlayerList const& pList = me->GetMap()->GetPlayers();
if (pList.getSize())
{
@@ -34,30 +34,30 @@ public:
std::string str_data;
EventMap events;
uint64 NPC_BarrettGUID;
uint64 NPC_TirionGUID;
uint64 NPC_FizzlebangGUID;
uint64 NPC_GarroshGUID;
uint64 NPC_VarianGUID;
ObjectGuid NPC_BarrettGUID;
ObjectGuid NPC_TirionGUID;
ObjectGuid NPC_FizzlebangGUID;
ObjectGuid NPC_GarroshGUID;
ObjectGuid NPC_VarianGUID;
uint64 NPC_GormokGUID;
uint64 NPC_DreadscaleGUID;
uint64 NPC_AcidmawGUID;
uint64 NPC_IcehowlGUID;
uint64 NPC_JaraxxusGUID;
std::vector<uint64> NPC_ChampionGUIDs;
uint64 NPC_LightbaneGUID;
uint64 NPC_DarkbaneGUID;
uint64 NPC_LichKingGUID;
uint64 NPC_AnubarakGUID;
ObjectGuid NPC_GormokGUID;
ObjectGuid NPC_DreadscaleGUID;
ObjectGuid NPC_AcidmawGUID;
ObjectGuid NPC_IcehowlGUID;
ObjectGuid NPC_JaraxxusGUID;
GuidVector NPC_ChampionGUIDs;
ObjectGuid NPC_LightbaneGUID;
ObjectGuid NPC_DarkbaneGUID;
ObjectGuid NPC_LichKingGUID;
ObjectGuid NPC_AnubarakGUID;
uint64 NPC_PurpleGroundGUID;
uint64 NPC_PortalGUID;
ObjectGuid NPC_PurpleGroundGUID;
ObjectGuid NPC_PortalGUID;
uint64 GO_MainGateGUID;
uint64 GO_EnterGateGUID;
uint64 GO_WebDoorGUID;
uint64 GO_FloorGUID;
ObjectGuid GO_MainGateGUID;
ObjectGuid GO_EnterGateGUID;
ObjectGuid GO_WebDoorGUID;
ObjectGuid GO_FloorGUID;
void SpawnAnubArak()
{
@@ -72,8 +72,8 @@ public:
}
// move corpses
const uint64 npcs[4] = { NPC_IcehowlGUID, NPC_JaraxxusGUID, NPC_LightbaneGUID, NPC_DarkbaneGUID };
for (const uint64 i : npcs)
const ObjectGuid npcs[4] = { NPC_IcehowlGUID, NPC_JaraxxusGUID, NPC_LightbaneGUID, NPC_DarkbaneGUID };
for (const ObjectGuid i : npcs)
{
if (Creature* c = instance->GetCreature(i))
{
@@ -161,30 +161,7 @@ public:
events.Reset();
events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0);
NPC_BarrettGUID = 0;
NPC_TirionGUID = 0;
NPC_FizzlebangGUID = 0;
NPC_GarroshGUID = 0;
NPC_VarianGUID = 0;
NPC_GormokGUID = 0;
NPC_DreadscaleGUID = 0;
NPC_AcidmawGUID = 0;
NPC_IcehowlGUID = 0;
NPC_JaraxxusGUID = 0;
NPC_ChampionGUIDs.clear();
NPC_LightbaneGUID = 0;
NPC_DarkbaneGUID = 0;
NPC_LichKingGUID = 0;
NPC_AnubarakGUID = 0;
NPC_PurpleGroundGUID = 0;
NPC_PortalGUID = 0;
GO_MainGateGUID = 0;
GO_EnterGateGUID = 0;
GO_WebDoorGUID = 0;
GO_FloorGUID = 0;
}
bool IsEncounterInProgress() const override
@@ -425,8 +402,8 @@ public:
InstanceProgress = INSTANCE_PROGRESS_FACTION_CHAMPIONS_DEAD;
events.RescheduleEvent(EVENT_SCENE_FACTION_CHAMPIONS_DEAD, 2500);
for( std::vector<uint64>::iterator itr = NPC_ChampionGUIDs.begin(); itr != NPC_ChampionGUIDs.end(); ++itr )
if( Creature* c = instance->GetCreature(*itr) )
for (ObjectGuid guid : NPC_ChampionGUIDs)
if (Creature* c = instance->GetCreature(guid))
c->DespawnOrUnsummon(15000);
NPC_ChampionGUIDs.clear();
@@ -478,10 +455,10 @@ public:
{
EncounterStatus = IN_PROGRESS;
AchievementTimer = 0;
for( std::vector<uint64>::iterator itr = NPC_ChampionGUIDs.begin(); itr != NPC_ChampionGUIDs.end(); ++itr )
if( Creature* c = instance->GetCreature(*itr) )
if( !c->IsInCombat() )
if( Unit* target = c->SelectNearestTarget(200.0f) )
for (ObjectGuid guid : NPC_ChampionGUIDs)
if (Creature* c = instance->GetCreature(guid))
if (!c->IsInCombat())
if (Unit* target = c->SelectNearestTarget(200.0f))
c->AI()->AttackStart(target);
}
break;
@@ -549,7 +526,7 @@ public:
return 0;
}
uint64 GetData64(uint32 type) const override
ObjectGuid GetGuidData(uint32 type) const override
{
switch( type )
{
@@ -566,7 +543,8 @@ public:
case TYPE_ANUBARAK:
return NPC_AnubarakGUID;
}
return 0;
return ObjectGuid::Empty;
}
void Update(uint32 diff) override
@@ -866,10 +844,10 @@ public:
c->SetFacingTo(M_PI / 2);
if( Creature* c = instance->GetCreature(NPC_PurpleGroundGUID) )
c->DespawnOrUnsummon();
NPC_PurpleGroundGUID = 0;
NPC_PurpleGroundGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_PortalGUID) )
c->DespawnOrUnsummon();
NPC_PortalGUID = 0;
NPC_PortalGUID.Clear();
events.RescheduleEvent(EVENT_SCENE_106, 10000);
break;
@@ -1115,8 +1093,8 @@ public:
}
case EVENT_CHAMPIONS_ATTACK:
{
for( std::vector<uint64>::iterator itr = NPC_ChampionGUIDs.begin(); itr != NPC_ChampionGUIDs.end(); ++itr )
if( Creature* c = instance->GetCreature(*itr) )
for (ObjectGuid guid : NPC_ChampionGUIDs)
if (Creature* c = instance->GetCreature(guid))
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -1469,16 +1447,16 @@ public:
c->AI()->DoAction(-1); // despawn summons
c->DespawnOrUnsummon();
}
NPC_GormokGUID = 0;
NPC_GormokGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_AcidmawGUID) )
c->DespawnOrUnsummon();
NPC_AcidmawGUID = 0;
NPC_AcidmawGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_DreadscaleGUID) )
c->DespawnOrUnsummon();
NPC_DreadscaleGUID = 0;
NPC_DreadscaleGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_IcehowlGUID) )
c->DespawnOrUnsummon();
NPC_IcehowlGUID = 0;
NPC_IcehowlGUID.Clear();
northrendBeastsMask = 0;
break;
case INSTANCE_PROGRESS_BEASTS_DEAD:
@@ -1486,16 +1464,16 @@ public:
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) )
c->DespawnOrUnsummon();
NPC_FizzlebangGUID = 0;
NPC_FizzlebangGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
c->DespawnOrUnsummon();
NPC_JaraxxusGUID = 0;
NPC_JaraxxusGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_PurpleGroundGUID) )
c->DespawnOrUnsummon();
NPC_PurpleGroundGUID = 0;
NPC_PurpleGroundGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_PortalGUID) )
c->DespawnOrUnsummon();
NPC_PortalGUID = 0;
NPC_PortalGUID.Clear();
break;
case INSTANCE_PROGRESS_JARAXXUS_INTRO_DONE:
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
@@ -1515,8 +1493,8 @@ public:
case INSTANCE_PROGRESS_JARAXXUS_DEAD:
if( Creature* c = instance->GetCreature(NPC_BarrettGUID) )
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
for( std::vector<uint64>::iterator itr = NPC_ChampionGUIDs.begin(); itr != NPC_ChampionGUIDs.end(); ++itr )
if( Creature* c = instance->GetCreature(*itr) )
for (ObjectGuid guid : NPC_ChampionGUIDs)
if (Creature* c = instance->GetCreature(guid))
c->DespawnOrUnsummon();
NPC_ChampionGUIDs.clear();
break;
@@ -1528,13 +1506,13 @@ public:
c->AI()->DoAction(-1);
c->DespawnOrUnsummon();
}
NPC_DarkbaneGUID = 0;
NPC_DarkbaneGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_LightbaneGUID) )
{
c->AI()->DoAction(-1);
c->DespawnOrUnsummon();
}
NPC_LightbaneGUID = 0;
NPC_LightbaneGUID.Clear();
break;
case INSTANCE_PROGRESS_VALKYR_DEAD:
case INSTANCE_PROGRESS_ANUB_ARAK:
@@ -1558,14 +1536,14 @@ public:
}
if( Creature* c = instance->GetCreature(NPC_LichKingGUID) )
c->DespawnOrUnsummon();
NPC_LichKingGUID = 0;
NPC_LichKingGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_AnubarakGUID) )
{
c->AI()->DoAction(-1);
c->DespawnOrUnsummon();
}
NPC_AnubarakGUID = 0;
NPC_AnubarakGUID.Clear();
break;
case INSTANCE_PROGRESS_DONE:
@@ -77,7 +77,10 @@ public:
BossAI::Reset();
instance->SetBossState(DATA_NOVOS_CRYSTALS, IN_PROGRESS);
instance->SetBossState(DATA_NOVOS_CRYSTALS, NOT_STARTED);
_crystalCounter = _summonTargetRightGUID = _summonTargetLeftGUID = _stage = 0;
_crystalCounter = 0;
_summonTargetRightGUID.Clear();
_summonTargetLeftGUID.Clear();
_stage = 0;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -133,7 +136,7 @@ public:
}
}
me->SetUInt64Value(UNIT_FIELD_TARGET, 0);
me->SetGuidValue(UNIT_FIELD_TARGET, ObjectGuid::Empty);
me->RemoveAllAuras();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -240,8 +243,8 @@ public:
private:
uint8 _crystalCounter;
uint8 _stage;
uint64 _summonTargetRightGUID;
uint64 _summonTargetLeftGUID;
ObjectGuid _summonTargetRightGUID;
ObjectGuid _summonTargetLeftGUID;
bool _achievement;
};
@@ -221,7 +221,7 @@ public:
void UpdateAI(uint32 diff) override
{
if (pInstance)
if (Creature* b = pInstance->instance->GetCreature(pInstance->GetData64(DATA_BRONJAHM)))
if (Creature* b = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_BRONJAHM)))
{
if (me->GetExactDist2d(b) <= 2.0f)
{
@@ -140,7 +140,7 @@ public:
me->SetOrientation(me->GetAngle(target));
me->SetControlled(true, UNIT_STATE_ROOT);
me->DisableRotate(true);
me->SetUInt64Value(UNIT_FIELD_TARGET, 0);
me->SetGuidValue(UNIT_FIELD_TARGET, ObjectGuid::Empty);
me->SetReactState(REACT_PASSIVE);
me->GetMotionMaster()->Clear(false);
me->GetMotionMaster()->MoveIdle();
@@ -337,7 +337,7 @@ public:
t->ToCreature()->SetReactState(REACT_AGGRESSIVE);
if (t->GetVictim())
{
t->SetUInt64Value(UNIT_FIELD_TARGET, t->GetVictim()->GetGUID());
t->SetGuidValue(UNIT_FIELD_TARGET, t->GetVictim()->GetGUID());
t->GetMotionMaster()->MoveChase(t->GetVictim());
}
}
@@ -24,25 +24,18 @@ public:
uint32 m_auiEncounter[MAX_ENCOUNTER];
TeamId teamIdInInstance;
std::string str_data;
uint64 NPC_BronjahmGUID;
uint64 NPC_DevourerGUID;
ObjectGuid NPC_BronjahmGUID;
ObjectGuid NPC_DevourerGUID;
uint64 NPC_LeaderFirstGUID;
uint64 NPC_LeaderSecondGUID;
uint64 NPC_GuardFirstGUID;
uint64 NPC_GuardSecondGUID;
ObjectGuid NPC_LeaderFirstGUID;
ObjectGuid NPC_LeaderSecondGUID;
ObjectGuid NPC_GuardFirstGUID;
ObjectGuid NPC_GuardSecondGUID;
void Initialize() override
{
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
teamIdInInstance = TEAM_NEUTRAL;
NPC_BronjahmGUID = 0;
NPC_DevourerGUID = 0;
NPC_LeaderFirstGUID = 0;
NPC_LeaderSecondGUID = 0;
NPC_GuardFirstGUID = 0;
NPC_GuardSecondGUID = 0;
}
bool IsEncounterInProgress() const override
@@ -150,7 +143,7 @@ public:
SaveToDB();
}
uint64 GetData64(uint32 type) const override
ObjectGuid GetGuidData(uint32 type) const override
{
switch (type)
{
@@ -158,7 +151,7 @@ public:
return NPC_BronjahmGUID;
}
return 0;
return ObjectGuid::Empty;
}
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target*/, uint32 /*miscvalue1*/) override
@@ -210,7 +210,7 @@ public:
if (pInstance)
{
me->SetVisible(true);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
c->SetVisible(true);
}
break;
@@ -229,7 +229,7 @@ public:
shortver = false;
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
me->GetMotionMaster()->MovePoint(0, MoveThronePos);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
c->GetMotionMaster()->MovePoint(0, LoralenFollowPos);
// Begining of intro is differents between factions as the speech sequence and timers are differents.
if (me->GetEntry() == NPC_JAINA_PART1)
@@ -241,7 +241,7 @@ public:
shortver = true;
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, (me->GetEntry() == NPC_JAINA_PART1 ? EMOTE_STATE_READY2H : EMOTE_STATE_READY1H));
me->GetMotionMaster()->MovePoint(0, MoveThronePos);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
c->GetMotionMaster()->MovePoint(0, LoralenFollowPos);
events.ScheduleEvent(EVENT_INTRO_LK_1, 0);
break;
@@ -256,13 +256,13 @@ public:
events.ScheduleEvent(EVENT_INTRO_A2_3, 10000);
break;
case EVENT_INTRO_A2_3:
pInstance->HandleGameObject(pInstance->GetData64(GO_FROSTMOURNE), true);
pInstance->HandleGameObject(pInstance->GetGuidData(GO_FROSTMOURNE), true);
me->CastSpell(me, SPELL_FROSTMOURNE_SPAWN_SOUND, true);
me->CastSpell(me, SPELL_ARCANE_CAST_VISUAL, false);
events.ScheduleEvent(EVENT_INTRO_A2_4, 10000);
break;
case EVENT_INTRO_A2_4:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
{
pUther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
pUther->SetVisible(true);
@@ -272,7 +272,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_A2_5, 2000);
break;
case EVENT_INTRO_A2_5:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_1);
events.ScheduleEvent(EVENT_INTRO_A2_6, 3000);
break;
@@ -281,7 +281,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_A2_7, 6000);
break;
case EVENT_INTRO_A2_7:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_2);
events.ScheduleEvent(EVENT_INTRO_A2_8, 6500);
break;
@@ -290,7 +290,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_A2_9, 2000);
break;
case EVENT_INTRO_A2_9:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_3);
events.ScheduleEvent(EVENT_INTRO_A2_10, 9000);
break;
@@ -299,7 +299,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_A2_11, 5000);
break;
case EVENT_INTRO_A2_11:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_4);
events.ScheduleEvent(EVENT_INTRO_A2_12, 11000);
break;
@@ -308,7 +308,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_A2_13, 4000);
break;
case EVENT_INTRO_A2_13:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_5);
events.ScheduleEvent(EVENT_INTRO_A2_14, 12500);
break;
@@ -317,12 +317,12 @@ public:
events.ScheduleEvent(EVENT_INTRO_A2_15, 10000);
break;
case EVENT_INTRO_A2_15:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_6);
events.ScheduleEvent(EVENT_INTRO_A2_16, 24000);
break;
case EVENT_INTRO_A2_16:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_7);
events.ScheduleEvent(EVENT_INTRO_A2_17, 4000);
break;
@@ -331,7 +331,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_A2_18, 2000);
break;
case EVENT_INTRO_A2_18:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
{
pUther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_8);
@@ -350,13 +350,13 @@ public:
break;
case EVENT_INTRO_H2_3:
Talk(SAY_SYLVANAS_INTRO_3);
pInstance->HandleGameObject(pInstance->GetData64(GO_FROSTMOURNE), true);
pInstance->HandleGameObject(pInstance->GetGuidData(GO_FROSTMOURNE), true);
me->CastSpell(me, SPELL_FROSTMOURNE_SPAWN_SOUND, true);
me->CastSpell(me, SPELL_ARCANE_CAST_VISUAL, false);
events.ScheduleEvent(EVENT_INTRO_H2_4, 6000);
break;
case EVENT_INTRO_H2_4:
if (Creature* pUther = pInstance->instance->GetCreature(pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_UTHER)))
{
pUther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
pUther->SetVisible(true);
@@ -366,7 +366,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_H2_5, 2000);
break;
case EVENT_INTRO_H2_5:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_1);
events.ScheduleEvent(EVENT_INTRO_H2_6, 11000);
break;
@@ -375,7 +375,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_H2_7, 3000);
break;
case EVENT_INTRO_H2_7:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_2);
events.ScheduleEvent(EVENT_INTRO_H2_8, 6000);
break;
@@ -384,7 +384,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_H2_9, 5000);
break;
case EVENT_INTRO_H2_9:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_3);
events.ScheduleEvent(EVENT_INTRO_H2_10, 19000);
break;
@@ -393,7 +393,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_H2_11, 1500);
break;
case EVENT_INTRO_H2_11:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_4);
events.ScheduleEvent(EVENT_INTRO_H2_12, 19500);
break;
@@ -402,7 +402,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_H2_13, 2000);
break;
case EVENT_INTRO_H2_13:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
{
pUther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_5);
@@ -410,7 +410,7 @@ public:
events.ScheduleEvent(EVENT_INTRO_H2_14, 12000);
break;
case EVENT_INTRO_H2_14:
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_6);
events.ScheduleEvent(EVENT_INTRO_H2_15, 8000);
break;
@@ -421,15 +421,15 @@ public:
// Remaining Intro Events common for both faction
case EVENT_INTRO_LK_1:
if (Creature* pLichKing = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_EVENT)))
if (Creature* pLichKing = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
{
pInstance->HandleGameObject(pInstance->GetData64(GO_ARTHAS_DOOR), true);
pInstance->HandleGameObject(pInstance->GetGuidData(GO_ARTHAS_DOOR), true);
pLichKing->SetVisible(true);
pLichKing->GetMotionMaster()->MovePoint(0, LichKingMoveThronePos, false);
}
if (!shortver)
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
{
if (me->GetEntry() == NPC_JAINA_PART1)
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_9);
@@ -444,52 +444,52 @@ public:
case EVENT_INTRO_LK_1_2:
if (!shortver)
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
break;
case EVENT_INTRO_LK_1_3:
pInstance->HandleGameObject(pInstance->GetData64(GO_ARTHAS_DOOR), false);
pInstance->HandleGameObject(pInstance->GetGuidData(GO_ARTHAS_DOOR), false);
break;
case EVENT_INTRO_LK_2:
if (!shortver)
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
pLichKing->AI()->Talk(SAY_LK_INTRO_1);
events.ScheduleEvent(EVENT_INTRO_LK_3, 2000);
break;
case EVENT_INTRO_LK_3:
if (!shortver)
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
pUther->SetVisible(false);
events.ScheduleEvent(EVENT_INTRO_LK_4, 4000);
break;
case EVENT_INTRO_LK_4:
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
pLichKing->AI()->Talk(SAY_LK_INTRO_2);
events.ScheduleEvent(EVENT_INTRO_LK_4_2, 10000);
break;
case EVENT_INTRO_LK_4_2:
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
{
pLichKing->LoadEquipment(1, true);
pLichKing->SendMovementFlagUpdate();
pLichKing->CastSpell(pLichKing, SPELL_FROSTMOURNE_EQUIP, false);
pInstance->HandleGameObject(pInstance->GetData64(GO_FROSTMOURNE), false);
pInstance->HandleGameObject(pInstance->GetGuidData(GO_FROSTMOURNE), false);
events.ScheduleEvent(EVENT_INTRO_LK_4_3, 1750);
}
events.ScheduleEvent(EVENT_INTRO_LK_5, 6000);
break;
case EVENT_INTRO_LK_4_3:
if (GameObject* go = pInstance->instance->GetGameObject(pInstance->GetData64(GO_FROSTMOURNE)))
if (GameObject* go = pInstance->instance->GetGameObject(pInstance->GetGuidData(GO_FROSTMOURNE)))
go->SetPhaseMask(2, true);
break;
case EVENT_INTRO_LK_5:
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_FALRIC)))
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_FALRIC)))
{
pFalric->UpdatePosition(5274.9f, 2039.2f, 709.319f, 5.4619f, true);
pFalric->StopMovingOnCurrentPos();
@@ -501,7 +501,7 @@ public:
a->SetDuration(8000);
}
}
if (Creature* pMarwyn = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_MARWYN)))
if (Creature* pMarwyn = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_MARWYN)))
{
pMarwyn->UpdatePosition(5343.77f, 1973.86f, 709.319f, 2.35173f, true);
pMarwyn->StopMovingOnCurrentPos();
@@ -514,7 +514,7 @@ public:
}
}
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
pLichKing->AI()->Talk(SAY_LK_INTRO_3);
events.ScheduleEvent(EVENT_INTRO_LK_5_2, 5000);
@@ -522,30 +522,30 @@ public:
break;
case EVENT_INTRO_LK_5_2:
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
pLichKing->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos, false);
break;
case EVENT_INTRO_LK_6:
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_FALRIC)))
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_FALRIC)))
pFalric->AI()->Talk(SAY_FALRIC_INTRO_1);
events.ScheduleEvent(EVENT_INTRO_LK_7, 2000);
break;
case EVENT_INTRO_LK_7:
if (Creature* pMarwyn = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_MARWYN)))
if (Creature* pMarwyn = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_MARWYN)))
pMarwyn->AI()->Talk(SAY_MARWYN_INTRO_1);
events.ScheduleEvent(EVENT_INTRO_LK_8, 2000);
break;
case EVENT_INTRO_LK_8:
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_FALRIC)))
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_FALRIC)))
pFalric->AI()->Talk(SAY_FALRIC_INTRO_2);
pInstance->SetData(ACTION_SHOW_TRASH, 1);
pInstance->HandleGameObject(pInstance->GetData64(GO_ARTHAS_DOOR), true);
pInstance->HandleGameObject(pInstance->GetGuidData(GO_ARTHAS_DOOR), true);
events.ScheduleEvent(EVENT_INTRO_LK_9, 5000);
break;
@@ -557,20 +557,20 @@ public:
Talk(SAY_SYLVANAS_INTRO_END);
me->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos, false);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
c->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos, false);
events.ScheduleEvent(EVENT_INTRO_END, 14000);
break;
case EVENT_INTRO_END:
pInstance->HandleGameObject(pInstance->GetData64(GO_ARTHAS_DOOR), false);
pInstance->HandleGameObject(pInstance->GetData64(GO_FRONT_DOOR), false);
pInstance->HandleGameObject(pInstance->GetGuidData(GO_ARTHAS_DOOR), false);
pInstance->HandleGameObject(pInstance->GetGuidData(GO_FRONT_DOOR), false);
events.ScheduleEvent(EVENT_INTRO_END_SET, 10000);
break;
case EVENT_INTRO_END_SET:
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
pLichKing->SetVisible(false);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
c->SetVisible(false);
me->SetVisible(false);
pInstance->SetData(DATA_INTRO, DONE);
@@ -1395,7 +1395,7 @@ public:
else
me->RemoveAura(SPELL_REMORSELESS_WINTER);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_SYLVANAS_PART2)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_SYLVANAS_PART2)))
c->AI()->DoAction(ACTION_INFORM_WALL_DESTROYED);
}
}
@@ -1411,7 +1411,7 @@ public:
{
Talk(SAY_LK_IW_1);
me->SetOrientation(4.15f);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_ICE_WALL_TARGET)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_ICE_WALL_TARGET)))
{
me->CastSpell(c, SPELL_SUMMON_ICE_WALL, false);
events.ScheduleEvent(EVENT_LK_REMORSELESS_WINTER, 4000);
@@ -1468,7 +1468,7 @@ public:
case EVENT_LK_CHECK_COMBAT:
if (me->isActiveObject()) // during fight
{
if (Creature* leader = pInstance->instance->GetCreature(pInstance->GetData64(NPC_SYLVANAS_PART2)))
if (Creature* leader = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_SYLVANAS_PART2)))
if (leader->IsAlive() && leader->GetPositionX() < 5575.0f && me->GetExactDist2d(leader) <= 12.5f && !leader->HasAura(SPELL_HARVEST_SOUL) && me->HasAura(SPELL_REMORSELESS_WINTER))
{
me->GetMotionMaster()->MovementExpired();
@@ -1506,7 +1506,7 @@ public:
events.ScheduleEvent(EVENT_LK_CHECK_COMBAT, 1000);
break;
case EVENT_LK_KILL_LEADER:
if (Creature* leader = pInstance->instance->GetCreature(pInstance->GetData64(NPC_SYLVANAS_PART2)))
if (Creature* leader = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_SYLVANAS_PART2)))
{
leader->CastSpell(leader, SPELL_HOR_SUICIDE, true);
Unit::Kill(me, leader);
@@ -1591,7 +1591,7 @@ public:
break;
case EVENT_LK_SUMMON_NEXT_ICE_WALL:
Talk(SAY_LK_IW_1 + currentWall);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_ICE_WALL_TARGET + currentWall)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_ICE_WALL_TARGET + currentWall)))
me->CastSpell(c, SPELL_SUMMON_ICE_WALL, false);
break;
}
@@ -1693,12 +1693,12 @@ public:
switch(events.ExecuteEvent())
{
case EVENT_LK_SAY_AGGRO:
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
c->AI()->Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_LK_AGGRO_ALLY : SAY_LK_AGGRO_HORDE);
events.ScheduleEvent(me->GetEntry() == NPC_JAINA_PART2 ? EVENT_JAINA_IMMOBILIZE_LK : EVENT_SYLVANAS_IMMOBILIZE_JUMP, 12000);
break;
case EVENT_JAINA_IMMOBILIZE_LK:
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
{
c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
@@ -1707,7 +1707,7 @@ public:
}
break;
case EVENT_SYLVANAS_IMMOBILIZE_JUMP:
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
{
c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
@@ -1716,7 +1716,7 @@ public:
}
break;
case EVENT_SYLVANAS_DARK_BINDING:
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
me->CastSpell(c, SPELL_SYLVANAS_DARK_BINDING, false);
events.ScheduleEvent(EVENT_SAY_LEAVE, 3500);
break;
@@ -1725,7 +1725,7 @@ public:
Map::PlayerList const& pl = pInstance->instance->GetPlayers();
for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
if (Player* p = itr->GetSource())
p->KilledMonsterCredit(me->GetEntry(), 0); // for quest
p->KilledMonsterCredit(me->GetEntry()); // for quest
Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_JAINA_LEAVE : SAY_SYLVANAS_LEAVE);
me->GetMotionMaster()->MovePoint(0, LeaderEscapePos);
@@ -1742,7 +1742,7 @@ public:
pInstance->SetData(ACTION_START_LK_FIGHT, 1);
me->setActive(true);
MoveToNextStopPoint();
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
{
c->setActive(true);
c->SetInCombatWithZone();
@@ -1831,7 +1831,7 @@ public:
{
me->SetCorpseDelay(10);
if (InstanceScript* pInstance = me->GetInstanceScript())
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
lk->AI()->DoAction(ACTION_INFORM_TRASH_DIED);
}
};
@@ -1900,7 +1900,7 @@ public:
{
me->SetCorpseDelay(10);
if (InstanceScript* pInstance = me->GetInstanceScript())
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
lk->AI()->DoAction(ACTION_INFORM_TRASH_DIED);
}
};
@@ -1965,7 +1965,7 @@ public:
{
me->SetCorpseDelay(10);
if (InstanceScript* pInstance = me->GetInstanceScript())
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
lk->AI()->DoAction(ACTION_INFORM_TRASH_DIED);
}
};
@@ -117,28 +117,28 @@ public:
uint32 EncounterMask;
TeamId TeamIdInInstance;
uint64 NPC_FalricGUID;
uint64 NPC_MarwynGUID;
uint64 NPC_LichKingIntroGUID;
uint64 NPC_LeaderIntroGUID;
uint64 NPC_GuardGUID;
uint64 NPC_UtherGUID;
uint64 NPC_LichKingGUID;
uint64 NPC_LeaderGUID;
uint64 NPC_IceWallTargetGUID[4];
uint64 NPC_AltarBunnyGUID;
uint64 NPC_QuelDelarGUID;
uint64 NPC_ShipCaptainGUID;
uint64 GO_FrostmourneGUID;
uint64 GO_FrostmourneAltarGUID;
uint64 GO_FrontDoorGUID;
uint64 GO_ArthasDoorGUID;
uint64 GO_CaveInGUID;
uint64 GO_DoorBeforeThroneGUID;
uint64 GO_DoorAfterThroneGUID;
uint64 GO_IceWallGUID;
ObjectGuid NPC_FalricGUID;
ObjectGuid NPC_MarwynGUID;
ObjectGuid NPC_LichKingIntroGUID;
ObjectGuid NPC_LeaderIntroGUID;
ObjectGuid NPC_GuardGUID;
ObjectGuid NPC_UtherGUID;
ObjectGuid NPC_LichKingGUID;
ObjectGuid NPC_LeaderGUID;
ObjectGuid NPC_IceWallTargetGUID[4];
ObjectGuid NPC_AltarBunnyGUID;
ObjectGuid NPC_QuelDelarGUID;
ObjectGuid NPC_ShipCaptainGUID;
ObjectGuid GO_FrostmourneGUID;
ObjectGuid GO_FrostmourneAltarGUID;
ObjectGuid GO_FrontDoorGUID;
ObjectGuid GO_ArthasDoorGUID;
ObjectGuid GO_CaveInGUID;
ObjectGuid GO_DoorBeforeThroneGUID;
ObjectGuid GO_DoorAfterThroneGUID;
ObjectGuid GO_IceWallGUID;
uint64 NPC_TrashGUID[NUM_OF_TRASH];
ObjectGuid NPC_TrashGUID[NUM_OF_TRASH];
bool TrashActive[NUM_OF_TRASH];
uint8 TrashCounter;
uint32 chosenComposition[8][5];
@@ -152,8 +152,8 @@ public:
bool IsDuringLKFight;
uint32 BatteredHiltStatus;
uint64 NPC_FrostswornGeneralGUID;
uint64 NPC_SpiritualReflectionGUID[5];
ObjectGuid NPC_FrostswornGeneralGUID;
ObjectGuid NPC_SpiritualReflectionGUID[5];
uint32 outroTimer;
uint8 outroStep;
@@ -163,28 +163,6 @@ public:
{
EncounterMask = 0;
TeamIdInInstance = TEAM_NEUTRAL;
NPC_FalricGUID = 0;
NPC_MarwynGUID = 0;
NPC_LichKingIntroGUID = 0;
NPC_LeaderIntroGUID = 0;
NPC_GuardGUID = 0;
NPC_UtherGUID = 0;
NPC_LichKingGUID = 0;
NPC_LeaderGUID = 0;
memset(&NPC_IceWallTargetGUID, 0, sizeof(NPC_IceWallTargetGUID));
NPC_AltarBunnyGUID = 0;
NPC_QuelDelarGUID = 0;
NPC_ShipCaptainGUID = 0;
GO_FrostmourneGUID = 0;
GO_FrostmourneAltarGUID = 0;
GO_FrontDoorGUID = 0;
GO_ArthasDoorGUID = 0;
GO_CaveInGUID = 0;
GO_DoorBeforeThroneGUID = 0;
GO_DoorAfterThroneGUID = 0;
GO_IceWallGUID = 0;
memset(&NPC_TrashGUID, 0, sizeof(NPC_TrashGUID));
memset(&TrashActive, 0, sizeof(TrashActive));
TrashCounter = 0;
memset(&chosenComposition, 0, sizeof(chosenComposition));
@@ -198,9 +176,6 @@ public:
IsDuringLKFight = false;
BatteredHiltStatus = 0;
NPC_FrostswornGeneralGUID = 0;
memset(&NPC_SpiritualReflectionGUID, 0, sizeof(NPC_SpiritualReflectionGUID));
outroTimer = 0;
outroStep = 0;
T1 = nullptr;
@@ -378,7 +353,7 @@ public:
{
case GO_FROSTMOURNE:
GO_FrostmourneGUID = go->GetGUID();
HandleGameObject(0, false, go);
HandleGameObject(ObjectGuid::Empty, false, go);
if (EncounterMask & (1 << DATA_INTRO))
go->SetPhaseMask(2, true);
break;
@@ -387,11 +362,11 @@ public:
break;
case GO_FRONT_DOOR:
GO_FrontDoorGUID = go->GetGUID();
HandleGameObject(0, true, go);
HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_ARTHAS_DOOR:
GO_ArthasDoorGUID = go->GetGUID();
HandleGameObject(0, (EncounterMask & (1 << DATA_MARWYN)), go);
HandleGameObject(ObjectGuid::Empty, (EncounterMask & (1 << DATA_MARWYN)), go);
break;
case GO_CAVE_IN:
GO_CaveInGUID = go->GetGUID();
@@ -573,7 +548,7 @@ public:
[[fallthrough]];
case ACTION_DELETE_ICE_WALL:
HandleGameObject(GO_IceWallGUID, true);
GO_IceWallGUID = 0;
GO_IceWallGUID.Clear();
break;
case DATA_LICH_KING:
if (data == DONE)
@@ -683,7 +658,7 @@ public:
return 0;
}
uint64 GetData64(uint32 type) const override
ObjectGuid GetGuidData(uint32 type) const override
{
switch(type)
{
@@ -714,7 +689,7 @@ public:
return GO_FrontDoorGUID;
}
return 0;
return ObjectGuid::Empty;
}
std::string GetSaveData() override
@@ -1198,7 +1173,7 @@ public:
outroTimer = 0;
for (Map::PlayerList::const_iterator itr = instance->GetPlayers().begin(); itr != instance->GetPlayers().end(); ++itr)
if (Player* p = itr->GetSource())
p->KilledMonsterCredit(NPC_WRATH_OF_THE_LICH_KING_CREDIT, 0);
p->KilledMonsterCredit(NPC_WRATH_OF_THE_LICH_KING_CREDIT);
if (TeamIdInInstance == TEAM_ALLIANCE)
if (Creature* c = instance->GetCreature(NPC_LeaderGUID))
{
@@ -114,7 +114,7 @@ public:
{
phase = 1;
me->SetReactState(REACT_PASSIVE);
me->SetTarget(0);
me->SetTarget();
me->SendMeleeAttackStop(me->GetVictim());
events.DelayEvents(8000);
me->CastSpell(me, SPELL_THUNDERING_STOMP, false);
@@ -127,7 +127,7 @@ public:
events.CancelEvent(EVENT_SPELL_CHILLING_WAVE);
phase = 2;
me->SetReactState(REACT_PASSIVE);
me->SetTarget(0);
me->SetTarget();
me->SendMeleeAttackStop(me->GetVictim());
events.DelayEvents(8000);
me->CastSpell(me, SPELL_THUNDERING_STOMP, false);
@@ -307,7 +307,7 @@ public:
{
pInstance->SetData(DATA_INSTANCE_PROGRESS, INSTANCE_PROGRESS_FINISHED_KRICK_SCENE);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
{
c->GetMotionMaster()->Clear();
c->UpdatePosition(SBSLeaderStartPos, true);
@@ -322,7 +322,7 @@ public:
Talk(SAY_OUTRO_KRICK_1);
if (pInstance)
{
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
{
float angle = me->GetAngle(c);
me->SetFacingTo(angle);
@@ -332,7 +332,7 @@ public:
}
for (uint8 i = 0; i < 2; ++i)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GUARD_1_GUID + i)))
c->DespawnOrUnsummon();
}
@@ -341,13 +341,13 @@ public:
case 2:
if (pInstance)
{
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
{
c->setActive(true);
c->UpdatePosition(SBSTyrannusStartPos, true);
c->SetHomePosition(SBSTyrannusStartPos);
}
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_1 : SAY_SYLVANAS_KRICK_1);
}
@@ -361,9 +361,9 @@ public:
case 4:
if (pInstance)
{
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
c->GetMotionMaster()->MovePath(PATH_BEGIN_VALUE + 10, false);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_2 : SAY_SYLVANAS_KRICK_2);
}
@@ -376,7 +376,7 @@ public:
break;
case 6:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
{
c->SetFacingToObject(me);
c->AI()->Talk(SAY_TYRANNUS_KRICK_1);
@@ -401,7 +401,7 @@ public:
break;
case 9:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
c->CastSpell(c, 69753, false);
me->SetReactState(REACT_PASSIVE);
@@ -419,7 +419,7 @@ public:
break;
case 10:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
c->AI()->Talk(SAY_TYRANNUS_KRICK_2);
events.RescheduleEvent(11, 9000);
@@ -427,9 +427,9 @@ public:
case 11:
if (pInstance)
{
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
c->GetMotionMaster()->MovePoint(1, 809.39f, 74.69f, 541.54f);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
{
c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_3 : SAY_SYLVANAS_KRICK_3);
c->GetMotionMaster()->MovePath(PATH_BEGIN_VALUE + 11, false);
@@ -51,7 +51,7 @@ public:
{
pInstance = me->GetInstanceScript();
me->SetReactState(REACT_PASSIVE);
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
{
c->SetCanFly(true);
}
@@ -68,13 +68,13 @@ public:
{
if (!pInstance)
return;
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
{
c->AI()->DoAction(1);
c->DespawnOrUnsummon();
pInstance->SetData64(DATA_MARTIN_OR_GORKUN_GUID, 0);
pInstance->SetGuidData(DATA_MARTIN_OR_GORKUN_GUID, ObjectGuid::Empty);
}
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
{
c->GetMotionMaster()->Clear();
c->GetMotionMaster()->MoveIdle();
@@ -93,7 +93,7 @@ public:
if (param == 1)
{
Position exitPos = {1023.46f, 159.12f, 628.2f, 5.23f};
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
{
c->RemoveAura(46598);
c->GetMotionMaster()->Clear();
@@ -166,13 +166,13 @@ public:
break;
case EVENT_RIMEFANG_SPELL_ICY_BLAST:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 190.0f, true))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
c->CastSpell(target, RIMEFANG_SPELL_ICY_BLAST, false);
events.RepeatEvent(5000);
break;
case EVENT_SPELL_MARK_OF_RIMEFANG:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 190.0f, true))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
{
Talk(SAY_MARK);
c->AI()->Talk(EMOTE_RIMEFANG_ICEBOLT, target);
@@ -21,21 +21,21 @@ public:
uint32 InstanceProgress;
std::string str_data;
uint64 NPC_LeaderFirstGUID;
uint64 NPC_LeaderSecondGUID;
uint64 NPC_TyrannusEventGUID;
uint64 NPC_Necrolyte1GUID;
uint64 NPC_Necrolyte2GUID;
uint64 NPC_GuardFirstGUID;
uint64 NPC_GuardSecondGUID;
uint64 NPC_SindragosaGUID;
ObjectGuid NPC_LeaderFirstGUID;
ObjectGuid NPC_LeaderSecondGUID;
ObjectGuid NPC_TyrannusEventGUID;
ObjectGuid NPC_Necrolyte1GUID;
ObjectGuid NPC_Necrolyte2GUID;
ObjectGuid NPC_GuardFirstGUID;
ObjectGuid NPC_GuardSecondGUID;
ObjectGuid NPC_SindragosaGUID;
uint64 NPC_GarfrostGUID;
uint64 NPC_MartinOrGorkunGUID;
uint64 NPC_RimefangGUID;
uint64 NPC_TyrannusGUID;
ObjectGuid NPC_GarfrostGUID;
ObjectGuid NPC_MartinOrGorkunGUID;
ObjectGuid NPC_RimefangGUID;
ObjectGuid NPC_TyrannusGUID;
uint64 GO_IceWallGUID;
ObjectGuid GO_IceWallGUID;
bool bAchievEleven;
bool bAchievDontLookUp;
@@ -46,22 +46,6 @@ public:
teamIdInInstance = TEAM_NEUTRAL;
InstanceProgress = INSTANCE_PROGRESS_NONE;
NPC_LeaderFirstGUID = 0;
NPC_LeaderSecondGUID = 0;
NPC_TyrannusEventGUID = 0;
NPC_Necrolyte1GUID = 0;
NPC_Necrolyte2GUID = 0;
NPC_GuardFirstGUID = 0;
NPC_GuardSecondGUID = 0;
NPC_SindragosaGUID = 0;
NPC_GarfrostGUID = 0;
NPC_MartinOrGorkunGUID = 0;
NPC_RimefangGUID = 0;
NPC_TyrannusGUID = 0;
GO_IceWallGUID = 0;
bAchievEleven = true;
bAchievDontLookUp = true;
}
@@ -77,11 +61,11 @@ public:
void OnPlayerEnter(Player* /*plr*/) override
{
instance->LoadGrid(LeaderIntroPos.GetPositionX(), LeaderIntroPos.GetPositionY());
if (Creature* c = instance->GetCreature(GetData64(DATA_LEADER_FIRST_GUID)))
if (Creature* c = instance->GetCreature(GetGuidData(DATA_LEADER_FIRST_GUID)))
c->AI()->SetData(DATA_START_INTRO, 0);
}
uint32 GetCreatureEntry(uint32 /*guidLow*/, CreatureData const* data) override
uint32 GetCreatureEntry(ObjectGuid::LowType /*guidLow*/, CreatureData const* data) override
{
if (teamIdInInstance == TEAM_NEUTRAL)
{
@@ -303,7 +287,7 @@ public:
SaveToDB();
}
void SetData64(uint32 type, uint64 data) override
void SetGuidData(uint32 type, ObjectGuid data) override
{
switch(type)
{
@@ -338,7 +322,7 @@ public:
return 0;
}
uint64 GetData64(uint32 type) const override
ObjectGuid GetGuidData(uint32 type) const override
{
switch (type)
{
@@ -368,7 +352,7 @@ public:
return NPC_SindragosaGUID;
}
return 0;
return ObjectGuid::Empty;
}
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target*/, uint32 /*miscvalue1*/) override
@@ -94,7 +94,7 @@ public:
break;
case 2:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
{
c->setActive(true);
c->AI()->Talk(SAY_TYRANNUS_INTRO_1);
@@ -104,7 +104,7 @@ public:
break;
case 3:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
c->AI()->Talk(SAY_TYRANNUS_INTRO_2);
events.RescheduleEvent(4, 14000);
@@ -112,8 +112,8 @@ public:
case 4:
if (pInstance)
{
Creature* n1 = pInstance->instance->GetCreature(pInstance->GetData64(DATA_NECROLYTE_1_GUID));
Creature* n2 = pInstance->instance->GetCreature(pInstance->GetData64(DATA_NECROLYTE_2_GUID));
Creature* n1 = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_NECROLYTE_1_GUID));
Creature* n2 = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_NECROLYTE_2_GUID));
if (n1 && n2)
{
if (!n1->IsInCombat() && n1->IsAlive())
@@ -157,7 +157,7 @@ public:
break;
case 6:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
c->AI()->Talk(SAY_TYRANNUS_INTRO_3);
events.RescheduleEvent(7, 5000);
@@ -165,9 +165,9 @@ public:
case 7:
if (pInstance)
{
if (Creature* n1 = pInstance->instance->GetCreature(pInstance->GetData64(DATA_NECROLYTE_1_GUID)))
if (Creature* n1 = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_NECROLYTE_1_GUID)))
n1->AI()->DoAction(1337); // remove invincibility
if (Creature* n2 = pInstance->instance->GetCreature(pInstance->GetData64(DATA_NECROLYTE_2_GUID)))
if (Creature* n2 = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_NECROLYTE_2_GUID)))
n2->AI()->DoAction(1337); // remove invincibility
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
@@ -193,7 +193,7 @@ public:
break;
case 8:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
c->CastSpell(c, 69753, false);
events.RescheduleEvent(9, 400);
@@ -235,7 +235,7 @@ public:
case 12:
if (pInstance)
{
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
c->AI()->Talk(SAY_TYRANNUS_INTRO_4);
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
@@ -285,7 +285,7 @@ public:
{
me->CastSpell(me, 59514, false);
for (uint8 i = 0; i < 2; ++i)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GUARD_1_GUID + i)))
c->CastSpell(c, 70513, false);
}
}
@@ -295,13 +295,13 @@ public:
case 15:
if (pInstance)
{
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
c->GetMotionMaster()->MovePoint(0, SBSTyrannusStartPos);
if (me->GetEntry() == NPC_JAINA_PART1)
{
for (uint8 i = 0; i < 2; ++i)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GUARD_1_GUID + i)))
c->CastSpell(c, 70464, false);
}
}
@@ -313,7 +313,7 @@ public:
if (pInstance)
{
for (uint8 i = 0; i < 2; ++i)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GUARD_1_GUID + i)))
c->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
@@ -403,11 +403,11 @@ public:
if (me->GetPositionY() < 206.0f)
{
pInstance->SetData64(DATA_NECROLYTE_1_GUID, me->GetGUID());
pInstance->SetGuidData(DATA_NECROLYTE_1_GUID, me->GetGUID());
}
else
{
pInstance->SetData64(DATA_NECROLYTE_2_GUID, me->GetGUID());
pInstance->SetGuidData(DATA_NECROLYTE_2_GUID, me->GetGUID());
}
}
}
@@ -428,7 +428,7 @@ public:
events.RescheduleEvent(1, 0);
events.RescheduleEvent(2, urand(5000, 9000));
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
c->AI()->SetData(DATA_START_INTRO, 0);
}
@@ -524,7 +524,7 @@ public:
case 1:
{
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GARFROST_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GARFROST_GUID)))
{
float angle = c->GetAngle(me);
float x = c->GetPositionX() + cos(angle) * 12.0f;
@@ -573,14 +573,12 @@ public:
{
pInstance = me->GetInstanceScript();
killsLeft = 0;
deathbringerGUID[0] = 0;
deathbringerGUID[1] = 0;
}
InstanceScript* pInstance;
EventMap events;
uint32 killsLeft;
uint64 deathbringerGUID[2];
ObjectGuid deathbringerGUID[2];
void MovementInform(uint32 type, uint32 id) override
{
@@ -916,7 +914,7 @@ public:
events.RescheduleEvent(2, 15000);
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID)))
{
c->AI()->Talk(SAY_PREFIGHT_1);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
@@ -960,8 +958,8 @@ public:
TSSpawnPos.GetAngle(&TSMidPos);
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
if (Creature* c = pInstance->instance->GetCreature(*itr))
for (ObjectGuid guid : summons)
if (Creature* c = pInstance->instance->GetCreature(guid))
{
float hx, hy, hz, ho;
c->GetHomePosition(hx, hy, hz, ho);
@@ -974,10 +972,10 @@ public:
else if (p == 3)
{
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SINDRAGOSA_GUID)))
{
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
if (Creature* s = pInstance->instance->GetCreature(*itr))
for (ObjectGuid guid : summons)
if (Creature* s = pInstance->instance->GetCreature(guid))
if (s->IsAlive())
Unit::Kill(c, s);
if (me->IsAlive())
@@ -1022,14 +1020,14 @@ public:
break;
case 3:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID)))
c->AI()->Talk(SAY_PREFIGHT_2);
me->SetFacingTo(5.26f);
me->SetOrientation(5.26f);
me->SetHomePosition(*me);
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
if (Creature* c = pInstance->instance->GetCreature(*itr))
for (ObjectGuid guid : summons)
if (Creature* c = pInstance->instance->GetCreature(guid))
{
c->SetFacingTo(5.26f);
c->SetOrientation(5.26f);
@@ -1041,14 +1039,14 @@ public:
break;
case 4:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID)))
c->AI()->DoAction(1);
break;
case 5:
me->SetFacingTo(TSCenterPos.GetOrientation());
Talk(me->GetEntry() == NPC_MARTIN_VICTUS_2 ? SAY_GENERAL_ALLIANCE_OUTRO_1 : SAY_GENERAL_HORDE_OUTRO_1);
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_SECOND_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_SECOND_GUID)))
c->AI()->DoAction(1);
break;
case 10:
@@ -1058,8 +1056,8 @@ public:
float offset = frand(0.0f, 10.0f);
c->GetMotionMaster()->MovePoint(0, 1047.0f + offset, 118.0f + offset, 628.2f);
c->SetHomePosition(*me);
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
if (Creature* s = pInstance->instance->GetCreature(*itr))
for (ObjectGuid guid : summons)
if (Creature* s = pInstance->instance->GetCreature(guid))
{
if (s->GetEntry() == NPC_FALLEN_WARRIOR)
continue;
@@ -1137,20 +1135,20 @@ public:
npc_pos_leader_secondAI(Creature* creature) : NullCreatureAI(creature)
{
pInstance = me->GetInstanceScript();
barrierGUID = 0;
barrierGUID.Clear();
events.Reset();
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
if (pInstance)
{
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
{
c->RemoveAllAuras();
c->GetMotionMaster()->Clear();
c->GetMotionMaster()->MoveIdle();
c->SetVisible(false);
}
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
{
c->AI()->DoAction(2);
}
@@ -1159,7 +1157,7 @@ public:
InstanceScript* pInstance;
EventMap events;
uint64 barrierGUID;
ObjectGuid barrierGUID;
void DoAction(int32 p) override
{
@@ -1222,7 +1220,7 @@ public:
break;
case 2:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
c->AI()->Talk(SAY_GENERAL_OUTRO_2);
events.RescheduleEvent(3, me->GetEntry() == NPC_JAINA_PART2 ? 7000 : 8000);
@@ -1242,9 +1240,9 @@ public:
break;
case 5:
if (pInstance)
if (Creature* x = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
if (Creature* x = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
{
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SINDRAGOSA_GUID)))
c->CastSpell(x->GetPositionX(), x->GetPositionY(), x->GetPositionZ(), SPELL_SINDRAGOSA_FROST_BOMB_POS, true);
}
@@ -1253,18 +1251,18 @@ public:
break;
case 6:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SINDRAGOSA_GUID)))
c->GetMotionMaster()->MovePoint(0, TSSindragosaPos1);
events.RescheduleEvent(7, 4500);
break;
case 7:
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SINDRAGOSA_GUID)))
c->SetVisible(false);
if (GameObject* barrier = pInstance->instance->GetGameObject(barrierGUID))
barrier->Delete();
barrierGUID = 0;
barrierGUID.Clear();
events.RescheduleEvent(8, 2000);
break;
@@ -1272,7 +1270,7 @@ public:
me->GetMotionMaster()->MovePath(me->GetEntry() == NPC_JAINA_PART2 ? PATH_BEGIN_VALUE + 16 : PATH_BEGIN_VALUE + 17, false);
break;
case 10:
if (Creature* x = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
if (Creature* x = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
x->AI()->DoAction(3);
break;
@@ -1540,7 +1538,7 @@ public:
if (inst->GetData(DATA_INSTANCE_PROGRESS) < INSTANCE_PROGRESS_AFTER_TUNNEL_WARN)
return false;
if (inst->GetData(DATA_GARFROST) == DONE && inst->GetData(DATA_ICK) == DONE && inst->GetData(DATA_TYRANNUS) != DONE && !inst->GetData64(DATA_MARTIN_OR_GORKUN_GUID))
if (inst->GetData(DATA_GARFROST) == DONE && inst->GetData(DATA_ICK) == DONE && inst->GetData(DATA_TYRANNUS) != DONE && !inst->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID))
{
if (Creature* c = inst->instance->SummonCreature(NPC_GORKUN_IRONSKULL_2, TSSpawnPos))
c->GetMotionMaster()->MovePoint(0, TSMidPos);
@@ -343,7 +343,7 @@ public:
{
if (me->ToTempSummon())
{
if (who->GetTypeId() == TYPEID_PLAYER || IS_PLAYER_GUID(who->GetOwnerGUID()))
if (who->GetTypeId() == TYPEID_PLAYER || who->GetOwnerGUID().IsPlayer())
if (Unit* summoner = me->ToTempSummon()->GetSummoner())
summoner->GetAI()->DoAction(ACTION_INFORM);
return;
@@ -60,7 +60,7 @@ public:
}
uint8 phaseCounter;
std::set<uint64> impaledList;
GuidSet impaledList;
void Reset() override
{
@@ -32,10 +32,10 @@ public:
{
}
uint64 _sladRanAltarGUID;
uint64 _moorabiAltarGUID;
uint64 _drakkariAltarGUID;
uint64 _bridgeGUIDs[6];
ObjectGuid _sladRanAltarGUID;
ObjectGuid _moorabiAltarGUID;
ObjectGuid _drakkariAltarGUID;
ObjectGuid _bridgeGUIDs[6];
uint32 _keysInCount;
uint32 _activateTimer;
@@ -44,12 +44,8 @@ public:
SetBossNumber(MAX_ENCOUNTERS);
LoadDoorData(doorData);
_sladRanAltarGUID = 0;
_moorabiAltarGUID = 0;
_drakkariAltarGUID = 0;
_keysInCount = 0;
_activateTimer = 0;
memset(&_bridgeGUIDs, 0, sizeof(_bridgeGUIDs));
}
void OnGameObjectCreate(GameObject* gameobject) override
@@ -224,13 +224,13 @@ public:
void EnterCombat(Unit* who) override
{
bool valid = true;
if (Creature* keleseth = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
if (!keleseth->IsAlive() || keleseth->IsInEvadeMode())
valid = false;
if (Creature* taldaram = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
if (!taldaram->IsAlive() || taldaram->IsInEvadeMode())
valid = false;
if (Creature* valanar = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
if (!valanar->IsAlive() || valanar->IsInEvadeMode())
valid = false;
if (!valid)
@@ -248,10 +248,10 @@ public:
me->SetReactState(REACT_AGGRESSIVE);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
if (!taldaram->IsInEvadeMode())
taldaram->SetInCombatWithZone();
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
if (!valanar->IsInEvadeMode())
valanar->SetInCombatWithZone();
@@ -289,10 +289,10 @@ public:
}
Talk(SAY_KELESETH_DEATH);
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
if (taldaram->IsAlive())
Unit::Kill(taldaram, taldaram);
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
if (valanar->IsAlive())
Unit::Kill(valanar, valanar);
}
@@ -413,9 +413,9 @@ public:
me->SetHealth(me->GetMaxHealth());
DoAction(ACTION_REMOVE_INVOCATION);
_evading = true;
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
taldaram->AI()->EnterEvadeMode();
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
valanar->AI()->EnterEvadeMode();
ScriptedAI::EnterEvadeMode();
_evading = false;
@@ -483,13 +483,13 @@ public:
void EnterCombat(Unit* who) override
{
bool valid = true;
if (Creature* keleseth = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
if (!keleseth->IsAlive() || keleseth->IsInEvadeMode())
valid = false;
if (Creature* taldaram = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
if (!taldaram->IsAlive() || taldaram->IsInEvadeMode())
valid = false;
if (Creature* valanar = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
if (!valanar->IsAlive() || valanar->IsInEvadeMode())
valid = false;
if (!valid)
@@ -507,10 +507,10 @@ public:
me->SetReactState(REACT_AGGRESSIVE);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
if (!keleseth->IsInEvadeMode())
keleseth->SetInCombatWithZone();
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
if (!valanar->IsInEvadeMode())
valanar->SetInCombatWithZone();
@@ -543,10 +543,10 @@ public:
}
Talk(EMOTE_TALDARAM_DEATH);
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
if (keleseth->IsAlive())
Unit::Kill(keleseth, keleseth);
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
if (valanar->IsAlive())
Unit::Kill(valanar, valanar);
}
@@ -697,9 +697,9 @@ public:
me->SetHealth(me->GetMaxHealth());
DoAction(ACTION_REMOVE_INVOCATION);
_evading = true;
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
keleseth->AI()->EnterEvadeMode();
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
valanar->AI()->EnterEvadeMode();
ScriptedAI::EnterEvadeMode();
_evading = false;
@@ -767,13 +767,13 @@ public:
void EnterCombat(Unit* who) override
{
bool valid = true;
if (Creature* keleseth = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
if (!keleseth->IsAlive() || keleseth->IsInEvadeMode())
valid = false;
if (Creature* taldaram = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
if (!taldaram->IsAlive() || taldaram->IsInEvadeMode())
valid = false;
if (Creature* valanar = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
if (!valanar->IsAlive() || valanar->IsInEvadeMode())
valid = false;
if (!valid)
@@ -793,10 +793,10 @@ public:
me->SetReactState(REACT_AGGRESSIVE);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
if (!keleseth->IsInEvadeMode())
keleseth->SetInCombatWithZone();
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
if (!taldaram->IsInEvadeMode())
taldaram->SetInCombatWithZone();
@@ -838,10 +838,10 @@ public:
Talk(SAY_VALANAR_DEATH);
instance->SetBossState(DATA_BLOOD_PRINCE_COUNCIL, DONE);
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
if (keleseth->IsAlive())
Unit::Kill(keleseth, keleseth);
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
if (taldaram->IsAlive())
Unit::Kill(taldaram, taldaram);
}
@@ -944,8 +944,8 @@ public:
bool CheckRoom()
{
Creature* keleseth = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_KELESETH_GUID));
Creature* taldaram = instance->instance->GetCreature(instance->GetData64(DATA_PRINCE_TALDARAM_GUID));
Creature* keleseth = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_KELESETH_GUID));
Creature* taldaram = instance->instance->GetCreature(instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID));
if (keleseth && taldaram && CheckBoundary(me) && CheckBoundary(keleseth) && CheckBoundary(taldaram))
return true;
@@ -968,10 +968,10 @@ public:
case EVENT_INVOCATION_OF_BLOOD:
{
uint32 visualSpellId = 0;
Creature* current = instance->instance->GetCreature(instance->GetData64(invocationOrder[currentInvocationIndex]));
Creature* current = instance->instance->GetCreature(instance->GetGuidData(invocationOrder[currentInvocationIndex]));
if (++currentInvocationIndex >= 3)
currentInvocationIndex = 0;
Creature* next = instance->instance->GetCreature(instance->GetData64(invocationOrder[currentInvocationIndex]));
Creature* next = instance->instance->GetCreature(instance->GetGuidData(invocationOrder[currentInvocationIndex]));
switch (invocationOrder[currentInvocationIndex])
{
case DATA_PRINCE_KELESETH_GUID:
@@ -1036,9 +1036,9 @@ public:
me->SetHealth(me->GetMaxHealth());
DoAction(ACTION_REMOVE_INVOCATION);
_evading = true;
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
keleseth->AI()->EnterEvadeMode();
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
taldaram->AI()->EnterEvadeMode();
BossAI::EnterEvadeMode();
_evading = false;
@@ -1127,15 +1127,15 @@ public:
me->GetMotionMaster()->MovePoint(POINT_INTRO_DESPAWN, introFinalPos);
_events.Reset();
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_PRINCE_KELESETH_GUID)))
{
keleseth->AI()->DoAction(ACTION_STAND_UP);
}
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_PRINCE_TALDARAM_GUID)))
{
taldaram->AI()->DoAction(ACTION_STAND_UP);
}
if (Creature* valanar = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
{
valanar->AI()->DoAction(ACTION_STAND_UP);
}
@@ -1240,7 +1240,6 @@ public:
{
npc_ball_of_flameAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript())
{
_chaseGUID = 0;
_exploded = false;
_started = false;
if (me->GetEntry() == NPC_BALL_OF_INFERNO_FLAME)
@@ -1249,7 +1248,7 @@ public:
}
InstanceScript* _instance;
uint64 _chaseGUID;
ObjectGuid _chaseGUID;
bool _exploded;
bool _started;
@@ -1276,7 +1275,7 @@ public:
}
}
void SetGUID(uint64 guid, int32 /*type*/) override
void SetGUID(ObjectGuid guid, int32 /*type*/) override
{
_chaseGUID = guid;
}
@@ -1358,7 +1357,7 @@ public:
{
if (InstanceScript* instance = me->GetInstanceScript())
{
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PRINCE_VALANAR_GUID)))
{
valanar->AI()->JustSummoned(me);
}
@@ -133,18 +133,18 @@ public:
bool _creditBloodQuickening;
bool _killMinchar;
uint64 _tankGUID;
uint64 _offtankGUID;
std::set<uint64> _bloodboltedPlayers;
std::set<uint64> _vampires;
ObjectGuid _tankGUID;
ObjectGuid _offtankGUID;
GuidSet _bloodboltedPlayers;
GuidSet _vampires;
bool bEnteredCombat; // needed for failing an attempt in JustReachedHome()
void Reset() override
{
_creditBloodQuickening = false;
_killMinchar = false;
_tankGUID = 0;
_offtankGUID = 0;
_tankGUID.Clear();
_offtankGUID.Clear();
_vampires.clear();
CleanAuras();
me->SetReactState(REACT_AGGRESSIVE);
@@ -202,7 +202,7 @@ public:
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
if (Player* p = itr->GetSource())
p->KilledMonsterCredit(RAID_MODE(NPC_INFILTRATOR_MINCHAR_BQ, NPC_BLOOD_QUICKENING_CREDIT_25), 0);
p->KilledMonsterCredit(RAID_MODE(NPC_INFILTRATOR_MINCHAR_BQ, NPC_BLOOD_QUICKENING_CREDIT_25));
if (Creature* minchar = me->FindNearestCreature(NPC_INFILTRATOR_MINCHAR_BQ, 200.0f))
{
minchar->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
@@ -369,8 +369,8 @@ public:
if (target->GetDistance(me->GetVictim()) > 39.0f || me->GetDistance(me->GetVictim()) > 39.0f)
{
_tankGUID = 0;
_offtankGUID = 0;
_tankGUID.Clear();
_offtankGUID.Clear();
events.ScheduleEvent(EVENT_BLOOD_MIRROR, 2500);
break;
}
@@ -514,17 +514,17 @@ public:
instance->DoRemoveAurasDueToSpellOnPlayers(PRESENCE_OF_THE_DARKFALLEN);
}
bool WasVampire(uint64 guid)
bool WasVampire(ObjectGuid guid)
{
return _vampires.count(guid) != 0;
}
bool WasBloodbolted(uint64 guid)
bool WasBloodbolted(ObjectGuid guid)
{
return _bloodboltedPlayers.count(guid) != 0;
}
void SetGUID(uint64 guid, int32 type = 0) override
void SetGUID(ObjectGuid guid, int32 type = 0) override
{
switch (type)
{
@@ -760,7 +760,7 @@ public:
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (InstanceScript* instance = GetTarget()->GetInstanceScript())
if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetTarget(), instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL)))
if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetTarget(), instance->GetGuidData(DATA_BLOOD_QUEEN_LANA_THEL)))
bloodQueen->AI()->Talk(EMOTE_BLOODTHIRST, GetTarget());
}
@@ -769,7 +769,7 @@ public:
Unit* target = GetTarget();
if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE)
if (InstanceScript* instance = target->GetInstanceScript())
if (Creature* bloodQueen = ObjectAccessor::GetCreature(*target, instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL)))
if (Creature* bloodQueen = ObjectAccessor::GetCreature(*target, instance->GetGuidData(DATA_BLOOD_QUEEN_LANA_THEL)))
if (bloodQueen->IsAlive() && bloodQueen->IsInCombat())
{
// this needs to be done BEFORE charm aura or we hit an assert in Unit::SetCharmedBy
@@ -871,7 +871,7 @@ public:
return;
uint32 spellId = sSpellMgr->GetSpellIdForDifficulty(SPELL_FRENZIED_BLOODTHIRST, GetCaster());
GetCaster()->RemoveAura(spellId, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL);
GetCaster()->RemoveAura(spellId, ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL);
GetCaster()->CastSpell(GetCaster(), SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_PLR, TRIGGERED_FULL_MASK);
if (Aura* aura = GetCaster()->GetAura(SPELL_GUSHING_WOUND))
@@ -886,7 +886,7 @@ public:
}
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL)))
if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_BLOOD_QUEEN_LANA_THEL)))
bloodQueen->AI()->SetGUID(GetHitUnit()->GetGUID(), GUID_VAMPIRE);
}
@@ -952,7 +952,7 @@ public:
return;
if (InstanceScript* instance = GetHitUnit()->GetInstanceScript())
GetHitUnit()->CastSpell((Unit*)nullptr, GetSpellInfo()->Effects[effIndex].TriggerSpell, true, nullptr, nullptr, instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL));
GetHitUnit()->CastSpell((Unit*)nullptr, GetSpellInfo()->Effects[effIndex].TriggerSpell, true, nullptr, nullptr, instance->GetGuidData(DATA_BLOOD_QUEEN_LANA_THEL));
}
void Register() override
@@ -299,7 +299,7 @@ public:
Talk(SAY_DEATH);
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MARK_OF_THE_FALLEN_CHAMPION);
if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SAURFANG_EVENT_NPC)))
if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SAURFANG_EVENT_NPC)))
creature->AI()->DoAction(ACTION_START_OUTRO);
}
@@ -364,7 +364,7 @@ public:
if (type != POINT_MOTION_TYPE && id != POINT_SAURFANG)
return;
instance->HandleGameObject(instance->GetData64(GO_SAURFANG_S_DOOR), false);
instance->HandleGameObject(instance->GetGuidData(GO_SAURFANG_S_DOOR), false);
}
void SpellHitTarget(Unit* /*target*/, SpellInfo const* spell) override
@@ -485,7 +485,7 @@ public:
void EnterEvadeMode() override
{
BossAI::EnterEvadeMode();
if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SAURFANG_EVENT_NPC)))
if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SAURFANG_EVENT_NPC)))
creature->AI()->DoAction(ACTION_EVADE);
}
@@ -532,7 +532,7 @@ public:
if (_events.GetPhaseMask() & PHASE_INTRO_MASK)
return;
Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG));
Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG));
if (!deathbringer || deathbringer->IsInEvadeMode())
return;
@@ -550,11 +550,11 @@ public:
_events.SetPhase(PHASE_INTRO_H);
_events.ScheduleEvent(EVENT_INTRO_HORDE_2, 5000, 0, PHASE_INTRO_H);
_events.ScheduleEvent(EVENT_INTRO_HORDE_3, 18500, 0, PHASE_INTRO_H);
_instance->HandleGameObject(_instance->GetData64(GO_SAURFANG_S_DOOR), true);
_instance->HandleGameObject(_instance->GetGuidData(GO_SAURFANG_S_DOOR), true);
if (GameObject* teleporter = ObjectAccessor::GetGameObject(*me, _instance->GetData64(GO_SCOURGE_TRANSPORTER_SAURFANG)))
if (GameObject* teleporter = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(GO_SCOURGE_TRANSPORTER_SAURFANG)))
{
_instance->HandleGameObject(0, false, teleporter);
_instance->HandleGameObject(ObjectGuid::Empty, false, teleporter);
teleporter->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
}
@@ -629,7 +629,7 @@ public:
_events.ScheduleEvent(EVENT_INTRO_FINISH, 46700 + 1000 + 9000, 0, PHASE_INTRO_H);
break;
/*case POINT_CORPSE:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
{
deathbringer->CastSpell(me, SPELL_RIDE_VEHICLE, true);
deathbringer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -639,7 +639,7 @@ public:
_events.ScheduleEvent(EVENT_OUTRO_HORDE_5, 4000);
break;
case POINT_FINAL:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
deathbringer->DespawnOrUnsummon();
me->DespawnOrUnsummon();
break;*/
@@ -657,7 +657,7 @@ public:
case 0:
break;
case EVENT_INTRO_HORDE_2:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
deathbringer->AI()->Talk(SAY_INTRO_HORDE_2);
break;
case EVENT_INTRO_HORDE_3:
@@ -665,7 +665,7 @@ public:
me->GetMotionMaster()->MovePoint(POINT_FIRST_STEP, firstStepPos.GetPositionX(), firstStepPos.GetPositionY(), firstStepPos.GetPositionZ());
break;
case EVENT_INTRO_HORDE_4:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
deathbringer->AI()->Talk(SAY_INTRO_HORDE_4);
break;
case EVENT_INTRO_HORDE_5:
@@ -684,14 +684,14 @@ public:
me->GetMotionMaster()->MoveCharge(chargePos[0].GetPositionX(), chargePos[0].GetPositionY(), chargePos[0].GetPositionZ(), 8.5f, POINT_CHARGE);
break;
case EVENT_INTRO_HORDE_9:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
{
deathbringer->AI()->DoCast(me, SPELL_GRIP_OF_AGONY);
deathbringer->AI()->Talk(SAY_INTRO_HORDE_9);
}
break;
case EVENT_INTRO_FINISH:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
{
deathbringer->AI()->DoAction(ACTION_INTRO_DONE);
deathbringer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
@@ -701,7 +701,7 @@ public:
break;
/*case EVENT_OUTRO_HORDE_1:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
me->SetFacingToObject(deathbringer);
Talk(SAY_OUTRO_HORDE_2);
break;
@@ -709,7 +709,7 @@ public:
Talk(SAY_OUTRO_HORDE_3);
break;
case EVENT_OUTRO_HORDE_3:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
{
float x, y, z;
deathbringer->GetClosePoint(x, y, z, deathbringer->GetObjectSize());
@@ -793,7 +793,7 @@ public:
if (_events.GetPhaseMask() & PHASE_INTRO_MASK)
return;
Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG));
Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG));
if (!deathbringer || deathbringer->IsInEvadeMode())
return;
@@ -812,11 +812,11 @@ public:
_events.ScheduleEvent(EVENT_INTRO_ALLIANCE_2, 2500, 0, PHASE_INTRO_A);
_events.ScheduleEvent(EVENT_INTRO_ALLIANCE_3, 20000, 0, PHASE_INTRO_A);
_events.ScheduleEvent(EVENT_INTRO_ALLIANCE_4, 2500 + 17500 + 9500, 0, PHASE_INTRO_A);
_instance->HandleGameObject(_instance->GetData64(GO_SAURFANG_S_DOOR), true);
_instance->HandleGameObject(_instance->GetGuidData(GO_SAURFANG_S_DOOR), true);
if (GameObject* teleporter = ObjectAccessor::GetGameObject(*me, _instance->GetData64(GO_SCOURGE_TRANSPORTER_SAURFANG)))
if (GameObject* teleporter = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(GO_SCOURGE_TRANSPORTER_SAURFANG)))
{
_instance->HandleGameObject(0, false, teleporter);
_instance->HandleGameObject(ObjectGuid::Empty, false, teleporter);
teleporter->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
}
@@ -898,11 +898,11 @@ public:
case 0:
break;
case EVENT_INTRO_ALLIANCE_2:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
deathbringer->AI()->Talk(SAY_INTRO_ALLIANCE_2);
break;
case EVENT_INTRO_ALLIANCE_3:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
deathbringer->AI()->Talk(SAY_INTRO_ALLIANCE_3);
break;
case EVENT_INTRO_ALLIANCE_4:
@@ -916,20 +916,20 @@ public:
me->GetMotionMaster()->MoveCharge(chargePos[0].GetPositionX(), chargePos[0].GetPositionY(), chargePos[0].GetPositionZ(), 8.5f, POINT_CHARGE);
break;
case EVENT_INTRO_ALLIANCE_6:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
{
deathbringer->AI()->Talk(SAY_INTRO_ALLIANCE_7);
deathbringer->AI()->DoCast(me, SPELL_GRIP_OF_AGONY);
}
break;
case EVENT_INTRO_ALLIANCE_7:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
{
deathbringer->AI()->Talk(SAY_INTRO_ALLIANCE_6);
}
break;
case EVENT_INTRO_FINISH:
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_DEATHBRINGER_SAURFANG)))
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
{
deathbringer->AI()->DoAction(ACTION_INTRO_DONE);
deathbringer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
@@ -1113,7 +1113,7 @@ public:
if (Map* map = eventInfo.GetActor()->FindMap())
if (InstanceMap* imap = map->ToInstanceMap())
if (InstanceScript* isc = imap->GetInstanceScript())
if (uint64 sguid = isc->GetData64(3) //DATA_DEATHBRINGER_SAURFANG
if (ObjectGuid sguid = isc->GetGuidData(3) //DATA_DEATHBRINGER_SAURFANG
if (Creature* saurfang = ObjectAccessor::GetCreature(*eventInfo.GetActor(), sguid))
markCount = saurfang->IsAIEnabled ? saurfang->AI()->GetData(123456) : 0; //FALLEN_CHAMPION_CAST_COUNT
*/
@@ -74,10 +74,10 @@ public:
{
boss_festergutAI(Creature* creature) : BossAI(creature, DATA_FESTERGUT)
{
_gasDummyGUID = 0;
_gasDummyGUID.Clear();
}
uint64 _gasDummyGUID;
ObjectGuid _gasDummyGUID;
uint32 _maxInoculatedStack;
uint32 _inhaleCounter;
@@ -118,7 +118,7 @@ public:
if (Creature* gasDummy = me->FindNearestCreature(NPC_GAS_DUMMY, 100.0f, true))
_gasDummyGUID = gasDummy->GetGUID();
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
professor->AI()->DoAction(ACTION_FESTERGUT_COMBAT);
}
@@ -126,7 +126,7 @@ public:
{
_JustDied();
Talk(SAY_DEATH);
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
professor->AI()->DoAction(ACTION_FESTERGUT_DEATH);
RemoveBlight();
@@ -141,7 +141,7 @@ public:
void EnterEvadeMode() override
{
ScriptedAI::EnterEvadeMode();
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
professor->AI()->EnterEvadeMode();
}
@@ -238,7 +238,7 @@ public:
break;
case EVENT_FESTERGUT_GOO:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
professor->CastSpell(target, SPELL_MALLABLE_GOO_H, true);
events.ScheduleEvent(EVENT_FESTERGUT_GOO, urand(15000, 20000));
default:
@@ -297,7 +297,7 @@ public:
caster->ToCreature()->AI()->Talk(EMOTE_PUNGENT_BLIGHT);
if (InstanceScript* inst = caster->GetInstanceScript())
if (Creature* professor = ObjectAccessor::GetCreature(*caster, inst->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*caster, inst->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
professor->AI()->DoAction(ACTION_FESTERGUT_GAS);
}
@@ -342,7 +342,7 @@ public:
}
GetTarget()->CastSpell(GetTarget(), SPELL_INOCULATED, true);
if (InstanceScript* instance = GetTarget()->GetInstanceScript())
if (Creature* festergut = ObjectAccessor::GetCreature(*GetTarget(), instance->GetData64(DATA_FESTERGUT)))
if (Creature* festergut = ObjectAccessor::GetCreature(*GetTarget(), instance->GetGuidData(DATA_FESTERGUT)))
festergut->AI()->SetData(DATA_INOCULATED_STACK, inoculatedStack);
}
@@ -463,7 +463,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (InstanceScript* _instance = me->GetInstanceScript())
if (Creature* festergut = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FESTERGUT)))
if (Creature* festergut = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_FESTERGUT)))
if (festergut->IsAlive())
festergut->AI()->Talk(SAY_STINKY_DEAD);
}
@@ -393,8 +393,13 @@ public:
void ResetSlots(TeamId teamId, MotionTransport* t)
{
_transport = t;
memset(_controlledSlots, 0, sizeof(uint64)* MAX_SLOTS);
memset(_respawnCooldowns, 0, sizeof(time_t)* MAX_SLOTS);
for (uint8 i = 0; i < MAX_SLOTS; ++i)
{
_controlledSlots[i].Clear();
_respawnCooldowns[i] = time_t(0);
}
_spawnPoint = teamId == TEAM_HORDE ? &OrgrimsHammerAddsSpawnPos : &SkybreakerAddsSpawnPos;
_slotInfo = teamId == TEAM_HORDE ? OrgrimsHammerSlotInfo : SkybreakerSlotInfo;
}
@@ -440,7 +445,7 @@ public:
void ClearSlot(PassengerSlots slot)
{
_controlledSlots[slot] = 0;
_controlledSlots[slot].Clear();
_respawnCooldowns[slot] = time(nullptr) + _slotInfo[slot].Cooldown;
}
@@ -457,7 +462,7 @@ private:
return newPos;
}
uint64 _controlledSlots[MAX_SLOTS];
ObjectGuid _controlledSlots[MAX_SLOTS];
time_t _respawnCooldowns[MAX_SLOTS];
MotionTransport* _transport;
Position const* _spawnPoint;
@@ -489,7 +494,7 @@ private:
class ResetEncounterEvent : public BasicEvent
{
public:
ResetEncounterEvent(Unit* caster, uint32 spellId, uint64 otherTransport) : _caster(caster), _spellId(spellId), _otherTransport(otherTransport) { }
ResetEncounterEvent(Unit* caster, uint32 spellId, ObjectGuid otherTransport) : _caster(caster), _spellId(spellId), _otherTransport(otherTransport) { }
bool Execute(uint64, uint32) override
{
@@ -497,10 +502,10 @@ public:
_caster->GetTransport()->ToMotionTransport()->UnloadNonStaticPassengers();
_caster->GetTransport()->AddObjectToRemoveList();
if (GameObject* go = HashMapHolder<GameObject>::Find(_otherTransport))
if (Transport* transport = ObjectAccessor::GetTransport(*_caster, _otherTransport))
{
go->ToMotionTransport()->UnloadNonStaticPassengers();
go->AddObjectToRemoveList();
transport->ToMotionTransport()->UnloadNonStaticPassengers();
transport->AddObjectToRemoveList();
}
return true;
@@ -509,7 +514,7 @@ public:
private:
Unit* _caster;
uint32 _spellId;
uint64 _otherTransport;
ObjectGuid _otherTransport;
};
class npc_gunship : public CreatureScript
@@ -586,7 +591,7 @@ public:
}
uint32 cannonEntry = _teamIdInInstance == TEAM_HORDE ? NPC_HORDE_GUNSHIP_CANNON : NPC_ALLIANCE_GUNSHIP_CANNON;
if (GameObject* go = _instance->instance->GetGameObject(_instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (GameObject* go = _instance->instance->GetGameObject(_instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (MotionTransport* t = go->ToMotionTransport())
{
Transport::PassengerSet const& passengers = t->GetStaticPassengers();
@@ -598,7 +603,7 @@ public:
cannon->CastSpell(cannon, SPELL_EJECT_ALL_PASSENGERS, true);
WorldPacket data(SMSG_PLAYER_VEHICLE_DATA, cannon->GetPackGUID().size() + 4);
data.append(cannon->GetPackGUID());
data << cannon->GetPackGUID();
data << uint32(0);
cannon->SendMessageToSet(&data, true);
@@ -618,8 +623,8 @@ public:
if (isVictory)
{
if (GameObject* go = HashMapHolder<GameObject>::Find(_instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (MotionTransport* otherTransport = go->ToMotionTransport())
if (Transport * transport = _instance->instance->GetTransport(_instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (MotionTransport* otherTransport = transport->ToMotionTransport())
otherTransport->EnableMovement(true);
me->GetTransport()->ToMotionTransport()->EnableMovement(true);
@@ -632,7 +637,7 @@ public:
}
for (uint8 i = 0; i < 2; ++i)
if (GameObject* go = _instance->instance->GetGameObject(_instance->GetData64(i == 0 ? DATA_ICECROWN_GUNSHIP_BATTLE : DATA_ENEMY_GUNSHIP)))
if (GameObject* go = _instance->instance->GetGameObject(_instance->GetGuidData(i == 0 ? DATA_ICECROWN_GUNSHIP_BATTLE : DATA_ENEMY_GUNSHIP)))
if (MotionTransport* t = go->ToMotionTransport())
{
Transport::PassengerSet const& passengers = t->GetPassengers();
@@ -649,16 +654,16 @@ public:
else
{
uint32 teleportSpellId = _teamIdInInstance == TEAM_HORDE ? SPELL_TELEPORT_PLAYERS_ON_RESET_H : SPELL_TELEPORT_PLAYERS_ON_RESET_A;
me->m_Events.AddEvent(new ResetEncounterEvent(me, teleportSpellId, _instance->GetData64(DATA_ENEMY_GUNSHIP)), me->m_Events.CalculateTime(8000));
me->m_Events.AddEvent(new ResetEncounterEvent(me, teleportSpellId, _instance->GetGuidData(DATA_ENEMY_GUNSHIP)), me->m_Events.CalculateTime(8000));
}
}
void SetGUID(uint64 guid, int32 id/* = 0*/) override
void SetGUID(ObjectGuid guid, int32 id/* = 0*/) override
{
if (id != ACTION_SHIP_VISITS_ENEMY && id != ACTION_SHIP_VISITS_SELF)
return;
std::map<uint64, uint32>::iterator itr = _shipVisits.find(guid);
std::map<ObjectGuid, uint32>::iterator itr = _shipVisits.find(guid);
if (itr == _shipVisits.end())
{
if (id == ACTION_SHIP_VISITS_ENEMY)
@@ -693,7 +698,7 @@ public:
if (id != ACTION_SHIP_VISITS_ENEMY)
return 0;
for (std::map<uint64, uint32>::const_iterator itr = _shipVisits.begin(); itr != _shipVisits.end(); ++itr)
for (std::map<ObjectGuid, uint32>::const_iterator itr = _shipVisits.begin(); itr != _shipVisits.end(); ++itr)
if (itr->second == 0)
return 0;
@@ -703,7 +708,7 @@ public:
private:
InstanceScript* _instance;
TeamId _teamIdInInstance;
std::map<uint64, uint32> _shipVisits;
std::map<ObjectGuid, uint32> _shipVisits;
bool _died;
bool _summonedFirstMage;
};
@@ -951,8 +956,8 @@ public:
me->SummonCreature(NPC_TELEPORT_PORTAL, x, y, z, o, TEMPSUMMON_TIMED_DESPAWN, 21000);
}
if (GameObject* go = HashMapHolder<GameObject>::Find(_instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (MotionTransport* skybreaker = go->ToMotionTransport())
if (Transport* transport = _instance->instance->GetTransport(_instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (MotionTransport* skybreaker = transport->ToMotionTransport())
{
float x, y, z, o;
SkybreakerTeleportExit.GetPosition(x, y, z, o);
@@ -1290,8 +1295,8 @@ public:
me->SummonCreature(NPC_TELEPORT_PORTAL, x, y, z, o, TEMPSUMMON_TIMED_DESPAWN, 21000);
}
if (GameObject* go = HashMapHolder<GameObject>::Find(_instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (MotionTransport* orgrimsHammer = go->ToMotionTransport())
if (Transport* transport = _instance->instance->GetTransport(_instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (MotionTransport* orgrimsHammer = transport->ToMotionTransport())
{
float x, y, z, o;
OrgrimsHammerTeleportExit.GetPosition(x, y, z, o);
@@ -1570,8 +1575,8 @@ struct npc_gunship_boarding_addAI : public ScriptedAI
if (!myTransport)
return;
if (GameObject* go = HashMapHolder<GameObject>::Find(Instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (Transport* destTransport = go->ToTransport())
if (Transport* transport = Instance->instance->GetTransport(Instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE)))
if (Transport* destTransport = transport->ToTransport())
destTransport->CalculatePassengerPosition(x, y, z, &o);
float angle = frand(0, M_PI * 2.0f);
@@ -2119,7 +2124,7 @@ public:
void SelectTransport(WorldObject*& target)
{
if (InstanceScript* instance = target->GetInstanceScript())
target = HashMapHolder<GameObject>::Find(instance->GetData64(DATA_ICECROWN_GUNSHIP_BATTLE));
target = instance->instance->GetTransport(instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE));
}
void RelocateDest(SpellEffIndex /*effIndex*/)
@@ -2225,7 +2230,7 @@ public:
bool operator()(WorldObject* unit)
{
return unit->GetTransGUID() != _inst->GetData64(DATA_ENEMY_GUNSHIP);
return unit->GetTransGUID() != _inst->GetGuidData(DATA_ENEMY_GUNSHIP);
}
private:
@@ -2316,7 +2321,7 @@ public:
if (Player* player = passenger->ToPlayer())
{
WorldPacket data(SMSG_CLIENT_CONTROL_UPDATE, GetUnitOwner()->GetPackGUID().size() + 1);
data.append(GetUnitOwner()->GetPackGUID());
data << GetUnitOwner()->GetPackGUID();
data << uint8(value);
player->GetSession()->SendPacket(&data);
}
@@ -230,13 +230,13 @@ public:
struct boss_lady_deathwhisperAI : public BossAI
{
boss_lady_deathwhisperAI(Creature* creature) : BossAI(creature, DATA_LADY_DEATHWHISPER), _introDone(false), _darnavanGUID(0) { }
boss_lady_deathwhisperAI(Creature* creature) : BossAI(creature, DATA_LADY_DEATHWHISPER), _introDone(false) { }
void Reset() override
{
if (Creature* darnavan = ObjectAccessor::GetCreature(*me, _darnavanGUID))
darnavan->DespawnOrUnsummon();
_darnavanGUID = 0;
_darnavanGUID.Clear();
_waveCounter = 0;
_Reset();
me->SetPower(POWER_MANA, me->GetMaxPower(POWER_MANA));
@@ -369,8 +369,8 @@ public:
{
// shouldn't be casted on any victim of summoned mobs
bool valid = true;
for (std::list<uint64>::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
if (Creature* c = ObjectAccessor::GetCreature(*me, (*itr)))
for (ObjectGuid const guid : summons)
if (Creature* c = ObjectAccessor::GetCreature(*me, guid))
if (c->IsAlive() && c->GetVictim() && c->GetVictim()->GetGUID() == plr->GetGUID())
{
valid = false;
@@ -516,10 +516,10 @@ public:
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
if (Player* member = itr->GetSource())
if (member->IsInMap(owner))
member->KilledMonsterCredit(NPC_DARNAVAN_CREDIT, 0);
member->KilledMonsterCredit(NPC_DARNAVAN_CREDIT);
}
else
owner->KilledMonsterCredit(NPC_DARNAVAN_CREDIT, 0);
owner->KilledMonsterCredit(NPC_DARNAVAN_CREDIT);
}
}
}
@@ -642,7 +642,7 @@ public:
private:
bool _introDone;
uint64 _darnavanGUID;
ObjectGuid _darnavanGUID;
uint32 _waveCounter;
};
@@ -739,7 +739,7 @@ public:
DoZoneInCombat(me);
me->CastSpell(me, SPELL_FANATIC_S_DETERMINATION);
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_LADY_DEATHWHISPER)))
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_LADY_DEATHWHISPER)))
ladyDeathwhisper->AI()->Talk(SAY_ANIMATE_DEAD);
break;
case EVENT_SPELL_CULTIST_DARK_MARTYRDOM:
@@ -860,7 +860,7 @@ public:
DoZoneInCombat(me);
me->CastSpell(me, SPELL_ADHERENT_S_DETERMINATION);
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_LADY_DEATHWHISPER)))
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_LADY_DEATHWHISPER)))
ladyDeathwhisper->AI()->Talk(SAY_ANIMATE_DEAD);
break;
case EVENT_SPELL_CULTIST_DARK_MARTYRDOM:
@@ -898,11 +898,11 @@ public:
{
me->SetControlled(true, UNIT_STATE_ROOT);
unroot_timer = 500;
targetGUID = 0;
targetGUID.Clear();
}
uint16 unroot_timer;
uint64 targetGUID;
ObjectGuid targetGUID;
void Reset() override
{
@@ -1140,7 +1140,7 @@ public:
if (InstanceScript* instance = player->GetInstanceScript())
if (instance->GetBossState(DATA_LADY_DEATHWHISPER) != DONE)
if (!player->IsGameMaster())
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_LADY_DEATHWHISPER)))
if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_LADY_DEATHWHISPER)))
ladyDeathwhisper->AI()->DoAction(ACTION_START_INTRO);
return true;
}
@@ -98,7 +98,7 @@ public:
bool _introDone;
bool _boneSlice;
uint64 _lastBoneSliceTargets[3];
ObjectGuid _lastBoneSliceTargets[3];
void Reset() override
{
@@ -111,7 +111,9 @@ public:
events.ScheduleEvent(EVENT_ENRAGE, 600000);
_boneSlice = false;
memset(_lastBoneSliceTargets, 0, 3 * sizeof(uint64));
for (uint8 i = 0; i < 3; ++i)
_lastBoneSliceTargets[i].Clear();
instance->SetData(DATA_BONED_ACHIEVEMENT, uint32(true));
}
@@ -135,12 +137,12 @@ public:
}
}
uint64 GetGUID(int32 id) const override
ObjectGuid GetGUID(int32 id) const override
{
if (id >= 0 && id <= 2)
return _lastBoneSliceTargets[id];
return (uint64)0;
return ObjectGuid::Empty;
}
void UpdateAI(uint32 diff) override
@@ -243,7 +245,10 @@ public:
DoCastVictim(SPELL_BONE_SLICE);
if (_boneSlice && me->isAttackReady() && me->GetVictim() && !me->HasUnitState(UNIT_STATE_CASTING) && me->IsWithinMeleeRange(me->GetVictim()))
memset(_lastBoneSliceTargets, 0, 3 * sizeof(uint64));
{
for (uint8 i = 0; i < 3; ++i)
_lastBoneSliceTargets[i].Clear();
}
DoMeleeAttackIfReady();
}
@@ -406,8 +411,8 @@ public:
if (u->GetEntry() == NPC_BONE_SPIKE && u->GetTypeId() == TYPEID_UNIT)
u->ToCreature()->AI()->DoAction(-1337);
uint64 petGUID = summoner->GetPetGUID();
summoner->SetPetGUID(0);
ObjectGuid petGUID = summoner->GetPetGUID();
summoner->SetPetGUID(ObjectGuid::Empty);
me->CastSpell(summoner, SPELL_IMPALED, true);
summoner->CastSpell(me, SPELL_RIDE_VEHICLE, true);
//summoner->ClearUnitState(UNIT_STATE_ONVEHICLE);
@@ -140,7 +140,7 @@ class AbominationDespawner
public:
explicit AbominationDespawner(Unit* owner) : _owner(owner) { }
bool operator()(uint64 guid)
bool operator()(ObjectGuid guid)
{
if (Unit* summon = ObjectAccessor::GetUnit(*_owner, guid))
{
@@ -411,7 +411,7 @@ public:
switch (id)
{
case POINT_FESTERGUT:
if (Creature* c = instance->instance->GetCreature(instance->GetData64(DATA_FESTERGUT)))
if (Creature* c = instance->instance->GetCreature(instance->GetGuidData(DATA_FESTERGUT)))
{
if (c->IsInCombat())
{
@@ -427,7 +427,7 @@ public:
}
break;
case POINT_ROTFACE:
if (Creature* c = instance->instance->GetCreature(instance->GetData64(DATA_ROTFACE)))
if (Creature* c = instance->instance->GetCreature(instance->GetGuidData(DATA_ROTFACE)))
{
if (c->IsInCombat())
{
@@ -730,13 +730,12 @@ public:
npc_putricide_oozeAI(Creature* creature, uint32 hitTargetSpellId) : ScriptedAI(creature),
_hitTargetSpellId(hitTargetSpellId), _newTargetSelectTimer(0)
{
targetGUID = 0;
me->SetReactState(REACT_PASSIVE);
}
uint64 targetGUID;
ObjectGuid targetGUID;
void SetGUID(uint64 guid, int32 type) override
void SetGUID(ObjectGuid guid, int32 type) override
{
if (type == -1)
targetGUID = guid;
@@ -745,7 +744,7 @@ public:
void IsSummonedBy(Unit* /*summoner*/) override
{
if (InstanceScript* instance = me->GetInstanceScript())
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
{
if (!professor->IsInCombat())
me->DespawnOrUnsummon(1);
@@ -756,7 +755,7 @@ public:
void SelectNewTarget()
{
targetGUID = 0;
targetGUID.Clear();
me->InterruptNonMeleeSpells(true);
me->AttackStop();
me->GetMotionMaster()->Clear();
@@ -1274,7 +1273,7 @@ public:
if (!GetHitUnit()->HasAura(plagueId))
{
if (Creature* professor = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
{
if (Aura* oldPlague = GetCaster()->GetAura(plagueId, professor->GetGUID()))
{
@@ -1414,7 +1413,7 @@ public:
if (!instance)
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
Creature* professor = ObjectAccessor::GetCreature(*GetExplTargetUnit(), instance->GetData64(DATA_PROFESSOR_PUTRICIDE));
Creature* professor = ObjectAccessor::GetCreature(*GetExplTargetUnit(), instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE));
if (!professor)
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
@@ -1508,7 +1507,7 @@ public:
if (!instance)
return;
Creature* putricide = ObjectAccessor::GetCreature(*caster, instance->GetData64(DATA_PROFESSOR_PUTRICIDE));
Creature* putricide = ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE));
if (!putricide)
return;
@@ -118,13 +118,17 @@ public:
}
uint32 infectionCooldown;
uint64 _oozeFloodDummyGUIDs[4][2];
ObjectGuid _oozeFloodDummyGUIDs[4][2];
uint8 _oozeFloodStage;
void Reset() override
{
infectionCooldown = 14000;
memset(&_oozeFloodDummyGUIDs, 0, sizeof(_oozeFloodDummyGUIDs));
for (uint8 i = 0; i < 4; ++i)
for (uint8 j = 0; j < 2; ++j)
_oozeFloodDummyGUIDs[i][j].Clear();
_oozeFloodStage = 0;
_Reset();
events.Reset();
@@ -152,7 +156,7 @@ public:
Talk(SAY_AGGRO);
DoZoneInCombat();
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
professor->AI()->DoAction(ACTION_ROTFACE_COMBAT);
instance->SetData(DATA_OOZE_DANCE_ACHIEVEMENT, uint32(true)); // reset
@@ -178,7 +182,7 @@ public:
instance->DoRemoveAurasDueToSpellOnPlayers(MUTATED_INFECTION);
_JustDied();
Talk(SAY_DEATH);
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
professor->AI()->DoAction(ACTION_ROTFACE_DEATH);
}
@@ -207,7 +211,7 @@ public:
me->SetControlled(false, UNIT_STATE_ROOT);
me->DisableRotate(false);
ScriptedAI::EnterEvadeMode();
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
professor->AI()->EnterEvadeMode();
}
@@ -285,7 +289,7 @@ public:
events.ScheduleEvent(EVENT_MUTATED_INFECTION, infectionCooldown);
break;
case EVENT_ROTFACE_OOZE_FLOOD:
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
{
professor->AI()->Talk(SAY_ROTFACE_OOZE_FLOOD);
me->CastSpell((Unit*)nullptr, oozeFloodSpells[_oozeFloodStage], true);
@@ -304,7 +308,7 @@ public:
minDist = -5.0f;
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, minDist, true))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
professor->CastSpell(target, SPELL_VILE_GAS_H, true); // triggered, to skip LoS check
}
events.ScheduleEvent(EVENT_ROTFACE_VILE_GAS, urand(15000, 20000));
@@ -333,7 +337,7 @@ public:
npc_little_oozeAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript())
{
firstUpdate = true;
if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ROTFACE)))
rotface->AI()->JustSummoned(me);
}
@@ -352,7 +356,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ROTFACE)))
rotface->AI()->SummonedCreatureDespawn(me);
me->DespawnOrUnsummon(0);
}
@@ -412,7 +416,7 @@ public:
npc_big_oozeAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript())
{
firstUpdate = true;
if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ROTFACE)))
rotface->AI()->JustSummoned(me);
}
@@ -428,7 +432,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ROTFACE)))
rotface->AI()->SummonedCreatureDespawn(me);
me->DespawnOrUnsummon();
}
@@ -650,7 +654,7 @@ public:
GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE);
GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_ROTFACE)))
if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_ROTFACE)))
if (rotface->IsAlive())
{
if (GetCaster()->GetTypeId() == TYPEID_UNIT)
@@ -713,7 +717,7 @@ public:
GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE);
GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_ROTFACE)))
if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_ROTFACE)))
if (rotface->IsAlive())
{
if (GetCaster()->GetTypeId() == TYPEID_UNIT)
@@ -804,7 +808,7 @@ public:
GetExplTargetDest()->GetPosition(x, y, z);
// let Rotface handle the cast - caster dies before this executes
if (InstanceScript* script = GetCaster()->GetInstanceScript())
if (Creature* rotface = script->instance->GetCreature(script->GetData64(DATA_ROTFACE)))
if (Creature* rotface = script->instance->GetCreature(script->GetGuidData(DATA_ROTFACE)))
rotface->CastSpell(x, y, z, triggered_spell_id, true/*, nullptr, nullptr, GetCaster()->GetGUID()*/); // caster not available on clientside, no log in such case
}
@@ -893,7 +897,7 @@ public:
{
summons.DespawnAll();
if (InstanceScript* _instance = me->GetInstanceScript())
if (Creature* rotface = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ROTFACE)))
if (Creature* rotface = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ROTFACE)))
if (rotface->IsAlive())
rotface->AI()->Talk(SAY_PRECIOUS_DIES);
}
@@ -174,7 +174,7 @@ private:
class FrostBombExplosion : public BasicEvent
{
public:
FrostBombExplosion(Creature* owner, uint64 sindragosaGUID) : _owner(owner), _sindragosaGUID(sindragosaGUID) { }
FrostBombExplosion(Creature* owner, ObjectGuid sindragosaGUID) : _owner(owner), _sindragosaGUID(sindragosaGUID) { }
bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override
{
@@ -185,13 +185,13 @@ public:
private:
Creature* _owner;
uint64 _sindragosaGUID;
ObjectGuid _sindragosaGUID;
};
class IceTombSummonEvent : public BasicEvent
{
public:
IceTombSummonEvent(Unit* owner, uint64 sindragosaGUID) : _owner(owner), _sindragosaGUID(sindragosaGUID) { }
IceTombSummonEvent(Unit* owner, ObjectGuid sindragosaGUID) : _owner(owner), _sindragosaGUID(sindragosaGUID) { }
bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override
{
@@ -222,7 +222,7 @@ public:
private:
Unit* _owner;
uint64 _sindragosaGUID;
ObjectGuid _sindragosaGUID;
};
struct LastPhaseIceTombTargetSelector : public acore::unary_function<Unit*, bool>
@@ -712,16 +712,15 @@ public:
npc_ice_tombAI(Creature* creature) : NullCreatureAI(creature)
{
me->SetReactState(REACT_PASSIVE);
_trappedPlayerGUID = 0;
_existenceCheckTimer = 1000;
_asphyxiationTimer = 22500;
}
uint64 _trappedPlayerGUID;
ObjectGuid _trappedPlayerGUID;
uint32 _existenceCheckTimer;
uint16 _asphyxiationTimer;
void SetGUID(uint64 guid, int32 type) override
void SetGUID(ObjectGuid guid, int32 type) override
{
if (type == DATA_TRAPPED_PLAYER)
_trappedPlayerGUID = guid;
@@ -739,7 +738,7 @@ public:
if (Player* player = ObjectAccessor::GetPlayer(*me, _trappedPlayerGUID))
{
_trappedPlayerGUID = 0;
_trappedPlayerGUID.Clear();
player->RemoveAurasDueToSpell(SPELL_ICE_TOMB_DAMAGE);
player->RemoveAurasDueToSpell(SPELL_ASPHYXIATION);
player->RemoveAurasDueToSpell(SPELL_ICE_TOMB_UNTARGETABLE);
@@ -1273,7 +1272,7 @@ public:
// for standard creatures check full LOS
if (Creature* c = unit->ToCreature())
if (!c->IsPet() && c->GetDBTableGUIDLow())
if (!c->IsPet() && c->GetSpawnId())
return !_caster->IsWithinLOSInMap(unit);
// for players and pets check only dynamic los (ice block gameobjects)
@@ -1375,7 +1374,7 @@ public:
{
if (!me->isDead())
{
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetDBTableGUIDLow()); // this cannot be in Reset because reset also happens on evade
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
Reset();
}
}
@@ -1408,7 +1407,7 @@ public:
void JustRespawned() override
{
ScriptedAI::JustRespawned();
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetDBTableGUIDLow()); // this cannot be in Reset because reset also happens on evade
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
}
void JustDied(Unit* /*killer*/) override
@@ -1509,7 +1508,7 @@ public:
{
if (!me->isDead())
{
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetDBTableGUIDLow()); // this cannot be in Reset because reset also happens on evade
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
Reset();
}
}
@@ -1542,7 +1541,7 @@ public:
void JustRespawned() override
{
ScriptedAI::JustRespawned();
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetDBTableGUIDLow()); // this cannot be in Reset because reset also happens on evade
_instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
}
void JustDied(Unit* /*killer*/) override
@@ -1729,14 +1728,14 @@ public:
if (InstanceScript* instance = player->GetInstanceScript())
{
if (!instance->GetData(DATA_SPINESTALKER))
if (Creature* spinestalker = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_SPINESTALKER)))
if (Creature* spinestalker = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_SPINESTALKER)))
spinestalker->AI()->DoAction(ACTION_START_FROSTWYRM);
if (!instance->GetData(DATA_RIMEFANG))
if (Creature* rimefang = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_RIMEFANG)))
if (Creature* rimefang = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_RIMEFANG)))
rimefang->AI()->DoAction(ACTION_START_FROSTWYRM);
if (!instance->GetData(DATA_SINDRAGOSA_FROSTWYRMS) && !instance->GetData64(DATA_SINDRAGOSA) && instance->GetBossState(DATA_SINDRAGOSA) != DONE)
if (!instance->GetData(DATA_SINDRAGOSA_FROSTWYRMS) && !instance->GetGuidData(DATA_SINDRAGOSA) && instance->GetBossState(DATA_SINDRAGOSA) != DONE)
{
if (instance->GetData(DATA_HAS_LIMITED_ATTEMPTS) && !instance->GetData(DATA_HEROIC_ATTEMPTS))
return true;
@@ -1771,7 +1770,7 @@ public:
if (!me->isDead())
{
if (me->GetEntry() == NPC_FROSTWING_WHELP)
_instance->SetData(_frostwyrmId, me->GetDBTableGUIDLow()); // this cannot be in Reset because reset also happens on evade
_instance->SetData(_frostwyrmId, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
Reset();
}
}
@@ -1814,7 +1813,7 @@ public:
// Increase add count
if (me->GetEntry() == NPC_FROSTWING_WHELP)
_instance->SetData(_frostwyrmId, me->GetDBTableGUIDLow()); // this cannot be in Reset because reset also happens on evade
_instance->SetData(_frostwyrmId, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
}
void SetData(uint32 type, uint32 data) override
@@ -729,7 +729,7 @@ public:
me->CastSpell((Unit*)nullptr, SPELL_SUMMON_BROKEN_FROSTMOURNE, true);
me->CastSpell((Unit*)nullptr, SPELL_SUMMON_BROKEN_FROSTMOURNE_2, false);
SetEquipmentSlots(false, EQUIP_BROKEN_FROSTMOURNE);
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING)))
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING)))
tirion->AI()->DoAction(ACTION_BREAK_FROSTMOURNE);
break;
case ACTION_TELEPORT_BACK:
@@ -791,7 +791,7 @@ public:
me->CastSpell((Unit*)nullptr, SPELL_FURY_OF_FROSTMOURNE, false);
me->SetWalk(true);
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING)))
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING)))
tirion->AI()->DoAction(ACTION_OUTRO);
return;
}
@@ -819,7 +819,7 @@ public:
if (!_bFordringMustFallYell && me->GetHealth() < 500000)
{
_bFordringMustFallYell = true;
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING)))
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING)))
{
tirion->MonsterYell("The Lich King must fall!", LANG_UNIVERSAL, 0);
tirion->PlayDirectSound(17389);
@@ -1249,7 +1249,7 @@ public:
BossAI::EnterEvadeMode();
me->SetReactState(REACT_AGGRESSIVE);
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HIGHLORD_TIRION_FORDRING)))
if (Creature* tirion = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_HIGHLORD_TIRION_FORDRING)))
tirion->AI()->EnterEvadeMode();
}
};
@@ -1285,7 +1285,7 @@ public:
switch (id)
{
case POINT_TIRION_INTRO:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
if (!theLichKing->IsAlive() || !theLichKing->IsVisible())
break;
@@ -1351,7 +1351,7 @@ public:
void sGossipSelect(Player* /*player*/, uint32 sender, uint32 action) override
{
Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING));
Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING));
if (me->GetCreatureTemplate()->GossipMenuId == sender && !action && me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP) && theLichKing && !theLichKing->IsInEvadeMode())
{
if (me->GetMap()->IsHeroic() && !_instance->GetData(DATA_LK_HC_AVAILABLE))
@@ -1379,7 +1379,7 @@ public:
switch (_events.ExecuteEvent())
{
case EVENT_INTRO_LK_MOVE:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
Movement::PointsArray path;
path.push_back(G3D::Vector3(theLichKing->GetPositionX(), theLichKing->GetPositionY(), theLichKing->GetPositionZ()));
@@ -1391,7 +1391,7 @@ public:
}
break;
case EVENT_INTRO_LK_TALK_1:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->AI()->Talk(SAY_LK_INTRO_2);
theLichKing->HandleEmoteCommand(EMOTE_ONESHOT_TALK_NO_SHEATHE);
@@ -1402,15 +1402,15 @@ public:
}
break;
case EVENT_INTRO_LK_EMOTE_CAST_SHOUT:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
theLichKing->CastSpell(theLichKing, SPELL_EMOTE_SHOUT_NO_SHEATH, false);
break;
case EVENT_INTRO_LK_EMOTE_1:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
theLichKing->HandleEmoteCommand(EMOTE_ONESHOT_POINT_NO_SHEATHE);
break;
case EVENT_INTRO_LK_CAST_FREEZE:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->AI()->Talk(SAY_LK_INTRO_3);
theLichKing->CastSpell((Unit*)nullptr, SPELL_ICE_LOCK, false);
@@ -1439,7 +1439,7 @@ public:
me->GetMotionMaster()->MovePoint(0, TirionCharge);
break;
case EVENT_INTRO_FINISH:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->SetWalk(false);
theLichKing->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
@@ -1451,7 +1451,7 @@ public:
break;
case EVENT_OUTRO_LK_TALK_1:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->AI()->Talk(SAY_LK_OUTRO_1);
theLichKing->CastSpell((Unit*)nullptr, SPELL_FURY_OF_FROSTMOURNE_NO_REZ, true);
@@ -1463,25 +1463,25 @@ public:
}
break;
case EVENT_OUTRO_LK_TALK_2:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->AI()->Talk(SAY_LK_OUTRO_2);
theLichKing->CastSpell((Unit*)nullptr, SPELL_EMOTE_QUESTION_NO_SHEATH, false);
}
break;
case EVENT_OUTRO_LK_EMOTE_TALK:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
theLichKing->HandleEmoteCommand(EMOTE_ONESHOT_TALK_NO_SHEATHE);
break;
case EVENT_OUTRO_LK_TALK_3:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->SetFacingToObject(me);
theLichKing->AI()->Talk(SAY_LK_OUTRO_3);
}
break;
case EVENT_OUTRO_LK_MOVE_CENTER:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->GetMotionMaster()->MovePoint(0, CenterPosition);
uint32 travelTime = 1000 * theLichKing->GetExactDist(&CenterPosition) / theLichKing->GetSpeed(MOVE_WALK) + 1000;
@@ -1492,14 +1492,14 @@ public:
}
break;
case EVENT_OUTRO_LK_TALK_4:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->SetFacingTo(0.01745329f);
theLichKing->AI()->Talk(SAY_LK_OUTRO_4);
}
break;
case EVENT_OUTRO_LK_RAISE_DEAD:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->CastSpell((Unit*)nullptr, SPELL_RAISE_DEAD, false);
theLichKing->ClearUnitState(UNIT_STATE_CASTING);
@@ -1507,7 +1507,7 @@ public:
}
break;
case EVENT_OUTRO_LK_TALK_5:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->AI()->Talk(SAY_LK_OUTRO_5);
_events.ScheduleEvent(EVENT_OUTRO_FORDRING_TALK_1, 7000);
@@ -1517,7 +1517,7 @@ public:
}
break;
case EVENT_OUTRO_LK_TALK_6:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->AI()->Talk(SAY_LK_OUTRO_6);
me->SetFacingToObject(theLichKing);
@@ -1540,7 +1540,7 @@ public:
frostmourne->CastSpell((Unit*)nullptr, SPELL_BROKEN_FROSTMOURNE_KNOCK, false);
break;
case EVENT_OUTRO_SOUL_BARRAGE:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
theLichKing->CastSpell((Unit*)nullptr, SPELL_SOUL_BARRAGE, TRIGGERED_IGNORE_CAST_IN_PROGRESS);
sCreatureTextMgr->SendSound(theLichKing, SOUND_PAIN, CHAT_MSG_MONSTER_YELL, 0, TEXT_RANGE_NORMAL, TEAM_NEUTRAL, false);
@@ -1573,7 +1573,7 @@ public:
{
terenas->AI()->Talk(SAY_TERENAS_OUTRO_2);
terenas->CastSpell((Unit*)nullptr, SPELL_MASS_RESURRECTION, false);
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
lichKing->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
@@ -1587,11 +1587,11 @@ public:
}
break;
case EVENT_OUTRO_LK_TALK_7:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
theLichKing->AI()->Talk(SAY_LK_OUTRO_7);
break;
case EVENT_OUTRO_LK_TALK_8:
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
theLichKing->AI()->Talk(SAY_LK_OUTRO_8);
break;
case EVENT_OUTRO_FORDRING_TALK_1:
@@ -1603,7 +1603,7 @@ public:
case EVENT_OUTRO_FORDRING_REMOVE_ICE:
me->RemoveAurasDueToSpell(SPELL_ICE_LOCK);
SetEquipmentSlots(false, EQUIP_ASHBRINGER_GLOWING);
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
me->SetFacingToObject(lichKing);
me->GetMap()->SetZoneMusic(AREA_THE_FROZEN_THRONE, MUSIC_FINAL);
@@ -1628,7 +1628,7 @@ public:
if (!me->IsAlive())
return;
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
if (theLichKing->IsInEvadeMode())
{
ScriptedAI::EnterEvadeMode();
@@ -1671,7 +1671,7 @@ public:
void FilterTargets(std::list<WorldObject*>& targets)
{
if (GameObject* platform = ObjectAccessor::GetGameObject(*GetCaster(), GetCaster()->GetInstanceScript()->GetData64(DATA_ARTHAS_PLATFORM)))
if (GameObject* platform = ObjectAccessor::GetGameObject(*GetCaster(), GetCaster()->GetInstanceScript()->GetGuidData(DATA_ARTHAS_PLATFORM)))
targets.remove_if(HeightDifferenceCheck(platform, 5.0f, false));
}
@@ -2189,12 +2189,12 @@ public:
{
npc_icc_ice_sphereAI(Creature* creature) : ScriptedAI(creature)
{
targetGUID = 0;
targetGUID.Clear();
timer = 250;
me->SetReactState(REACT_PASSIVE);
}
uint64 targetGUID;
ObjectGuid targetGUID;
uint16 timer;
void DoAction(int32 a) override
@@ -2204,7 +2204,7 @@ public:
me->RemoveAllAuras();
me->CastSpell(me, SPELL_ICE_BURST, true);
me->DespawnOrUnsummon(1000);
targetGUID = 0;
targetGUID.Clear();
timer = 9999;
me->InterruptNonMeleeSpells(true);
me->AttackStop();
@@ -2217,7 +2217,7 @@ public:
{
if (!me->HasAura(SPELL_ICE_SPHERE))
me->CastSpell(me, SPELL_ICE_SPHERE, true);
targetGUID = 0;
targetGUID.Clear();
me->InterruptNonMeleeSpells(true);
me->AttackStop();
me->GetMotionMaster()->Clear();
@@ -2325,13 +2325,13 @@ public:
void IsSummonedBy(Unit* /*summoner*/) override
{
// player is the spellcaster so register summon manually
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
lichKing->AI()->JustSummoned(me);
}
void JustDied(Unit* /*killer*/) override
{
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
lichKing->AI()->SummonedCreatureDespawn(me);
if (TempSummon* summon = me->ToTempSummon())
{
@@ -2498,7 +2498,7 @@ public:
struct npc_valkyr_shadowguardAI : public NullCreatureAI
{
npc_valkyr_shadowguardAI(Creature* creature) : NullCreatureAI(creature), _grabbedPlayer(0), didbelow50pct(false), dropped(false), _instance(creature->GetInstanceScript())
npc_valkyr_shadowguardAI(Creature* creature) : NullCreatureAI(creature), didbelow50pct(false), dropped(false), _instance(creature->GetInstanceScript())
{
me->SetReactState(REACT_PASSIVE);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
@@ -2510,7 +2510,7 @@ public:
EventMap _events;
Position _destPoint;
uint64 _grabbedPlayer;
ObjectGuid _grabbedPlayer;
bool didbelow50pct;
bool dropped;
InstanceScript* _instance;
@@ -2565,7 +2565,7 @@ public:
bool valid = false;
if (Player* target = ObjectAccessor::GetPlayer(*me, _grabbedPlayer))
if (target->FindMap() == me->GetMap() && target->GetExactDist(me) < 15.0f && !target->GetVehicle())
if (GameObject* platform = ObjectAccessor::GetGameObject(*me, _instance->GetData64(DATA_ARTHAS_PLATFORM)))
if (GameObject* platform = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(DATA_ARTHAS_PLATFORM)))
{
std::list<Creature*> triggers;
GetCreatureListWithEntryInGrid(triggers, me, NPC_WORLD_TRIGGER, 150.0f);
@@ -2589,7 +2589,7 @@ public:
{
_events.Reset();
_events.ScheduleEvent(EVENT_GRAB_PLAYER, 500);
_grabbedPlayer = 0;
_grabbedPlayer.Clear();
}
}
break;
@@ -2631,7 +2631,7 @@ public:
}
}
void SetGUID(uint64 guid, int32 /* = 0*/) override
void SetGUID(ObjectGuid guid, int32 /* = 0*/) override
{
_grabbedPlayer = guid;
}
@@ -2681,7 +2681,7 @@ public:
break;
}
if (!target)
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
target = lichKing->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankLKTargetSelector(lichKing, true, false, 100.0f));
if (target)
me->CastSpell(target, SPELL_LIFE_SIPHON, false);
@@ -2804,7 +2804,7 @@ public:
targets.remove_if(acore::UnitAuraCheck(true, SPELL_BOSS_HITTIN_YA_AURA)); // done in dbc, but just to be sure xd
targets.remove_if(acore::UnitAuraCheck(true, SPELL_HARVEST_SOUL_VALKYR));
if (InstanceScript* _instance = caster->GetInstanceScript())
if (Creature* lichKing = ObjectAccessor::GetCreature(*caster, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*caster, _instance->GetGuidData(DATA_THE_LICH_KING)))
if (Spell* s = lichKing->GetCurrentSpell(CURRENT_GENERIC_SPELL))
if (s->GetSpellInfo()->Id == SPELL_DEFILE && s->m_targets.GetUnitTarget())
targets.remove(s->m_targets.GetUnitTarget());
@@ -3077,7 +3077,7 @@ public:
{
// m_originalCaster to allow stacking from different casters, meh
if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_DEATH)
GetTarget()->CastSpell((Unit*)nullptr, SPELL_HARVESTED_SOUL_LK_BUFF, true, nullptr, nullptr, GetTarget()->GetInstanceScript()->GetData64(DATA_THE_LICH_KING));
GetTarget()->CastSpell((Unit*)nullptr, SPELL_HARVESTED_SOUL_LK_BUFF, true, nullptr, nullptr, GetTarget()->GetInstanceScript()->GetGuidData(DATA_THE_LICH_KING));
}
void Register() override
@@ -3109,7 +3109,7 @@ public:
if (!summoner)
return;
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
{
me->SetWalk(false);
Movement::PointsArray path;
@@ -3117,8 +3117,8 @@ public:
path.push_back(G3D::Vector3(me->GetPositionX(), me->GetPositionY(), 843.0f));
me->GetMotionMaster()->MoveSplinePath(&path);
uint64 petGUID = summoner->GetPetGUID();
summoner->SetPetGUID(0);
ObjectGuid petGUID = summoner->GetPetGUID();
summoner->SetPetGUID(ObjectGuid::Empty);
summoner->StopMoving();
me->CastSpell(summoner, SPELL_HARVEST_SOUL_VEHICLE, true);
//summoner->ClearUnitState(UNIT_STATE_ONVEHICLE);
@@ -3155,24 +3155,24 @@ public:
if (summoner->GetTypeId() == TYPEID_PLAYER && !summoner->ToPlayer()->IsBeingTeleported() && summoner->FindMap() == me->GetMap())
{
if (buff)
summoner->CastSpell((Unit*)nullptr, SPELL_HARVESTED_SOUL_LK_BUFF, true, nullptr, nullptr, _instance->GetData64(DATA_THE_LICH_KING));
summoner->CastSpell((Unit*)nullptr, SPELL_HARVESTED_SOUL_LK_BUFF, true, nullptr, nullptr, _instance->GetGuidData(DATA_THE_LICH_KING));
me->CastSpell(summoner, SPELL_HARVEST_SOUL_TELEPORT_BACK, false);
}
else if (buff)
me->CastSpell((Unit*)nullptr, SPELL_HARVESTED_SOUL_LK_BUFF, true, nullptr, nullptr, _instance->GetData64(DATA_THE_LICH_KING));
me->CastSpell((Unit*)nullptr, SPELL_HARVESTED_SOUL_LK_BUFF, true, nullptr, nullptr, _instance->GetGuidData(DATA_THE_LICH_KING));
summoner->RemoveAurasDueToSpell(IsHeroic() ? SPELL_HARVEST_SOULS_TELEPORT : SPELL_HARVEST_SOUL_TELEPORT);
}
else
me->CastSpell((Unit*)nullptr, SPELL_HARVESTED_SOUL_LK_BUFF, true, nullptr, nullptr, _instance->GetData64(DATA_THE_LICH_KING));
me->CastSpell((Unit*)nullptr, SPELL_HARVESTED_SOUL_LK_BUFF, true, nullptr, nullptr, _instance->GetGuidData(DATA_THE_LICH_KING));
}
_events.Reset();
me->RemoveAllAuras();
me->DespawnOrUnsummon(500);
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
lichKing->AI()->SummonedCreatureDespawn(me);
}
@@ -3207,7 +3207,7 @@ public:
}
break;
case EVENT_MOVE_TO_LICH_KING:
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
if (me->GetExactDist(lichKing) > 8.0f)
{
float dist = float(rand_norm()) * 5.0f + 8.0f;
@@ -3219,7 +3219,7 @@ public:
}
break;
case EVENT_DESPAWN_SELF:
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
lichKing->AI()->SummonedCreatureDespawn(me);
me->DespawnOrUnsummon(1);
break;
@@ -3333,7 +3333,7 @@ public:
_events.ScheduleEvent(EVENT_TELEPORT_BACK, 1000);
break;
case EVENT_TELEPORT_BACK:
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
lichKing->AI()->DoAction(ACTION_TELEPORT_BACK);
break;
default:
@@ -3421,7 +3421,7 @@ public:
for (std::list<WorldObject*>::const_iterator itr = unitList.begin(); itr != unitList.end(); ++itr)
if (Unit* target = (*itr)->ToUnit())
target->RemoveAurasDueToSpell(target->GetMap()->IsHeroic() ? SPELL_HARVEST_SOULS_TELEPORT : SPELL_HARVEST_SOUL_TELEPORT);
if (Creature* lichKing = ObjectAccessor::GetCreature(*GetCaster(), _instance->GetData64(DATA_THE_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*GetCaster(), _instance->GetGuidData(DATA_THE_LICH_KING)))
lichKing->AI()->DoAction(ACTION_TELEPORT_BACK);
if (Creature* spawner = GetCaster()->FindNearestCreature(NPC_WORLD_TRIGGER_INFINITE_AOI, 50.0f, true))
{
@@ -3474,7 +3474,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (Creature* terenas = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_TERENAS_MENETHIL)))
if (Creature* terenas = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_TERENAS_MENETHIL)))
terenas->AI()->DoAction(ACTION_TELEPORT_BACK);
}
@@ -140,7 +140,7 @@ public:
bool operator()(Creature* creature)
{
return creature->IsAlive() && creature->GetEntry() == NPC_RISEN_ARCHMAGE &&
creature->GetDBTableGUIDLow() && !creature->IsInCombat();
creature->GetSpawnId() && !creature->IsInCombat();
}
};
@@ -159,7 +159,7 @@ struct ManaVoidSelector : public acore::unary_function<Unit*, bool>
class DelayedCastEvent : public BasicEvent
{
public:
DelayedCastEvent(Creature* trigger, uint32 spellId, uint64 originalCaster, uint32 despawnTime) : _trigger(trigger), _originalCaster(originalCaster), _spellId(spellId), _despawnTime(despawnTime)
DelayedCastEvent(Creature* trigger, uint32 spellId, ObjectGuid originalCaster, uint32 despawnTime) : _trigger(trigger), _originalCaster(originalCaster), _spellId(spellId), _despawnTime(despawnTime)
{
}
@@ -173,7 +173,7 @@ public:
private:
Creature* _trigger;
uint64 _originalCaster;
ObjectGuid _originalCaster;
uint32 _spellId;
uint32 _despawnTime;
};
@@ -234,7 +234,7 @@ public:
creature->DespawnOrUnsummon();
return;
case NPC_RISEN_ARCHMAGE:
if (!creature->GetDBTableGUIDLow())
if (!creature->GetSpawnId())
{
creature->DespawnOrUnsummon();
return;
@@ -279,7 +279,7 @@ public:
{
me->SetReactState(REACT_PASSIVE);
_spawnHealth = 1; // just in case if not set below
if (CreatureData const* data = sObjectMgr->GetCreatureData(me->GetDBTableGUIDLow()))
if (CreatureData const* data = sObjectMgr->GetCreatureData(me->GetSpawnId()))
if (data->curhealth)
_spawnHealth = data->curhealth;
}
@@ -338,9 +338,9 @@ public:
_events.ScheduleEvent(EVENT_DREAM_SLIP, 3500);
_instance->SetBossState(DATA_VALITHRIA_DREAMWALKER, DONE);
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_TRIGGER)))
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER)))
trigger->AI()->EnterEvadeMode();
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_LICH_KING)))
lichKing->AI()->Reset();
}
else if (!_over75PercentTalkDone && me->HealthAbovePctHealed(75, heal))
@@ -349,7 +349,7 @@ public:
Talk(SAY_VALITHRIA_75_PERCENT);
}
else if (_instance->GetBossState(DATA_VALITHRIA_DREAMWALKER) == NOT_STARTED)
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_TRIGGER)))
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER)))
trigger->AI()->DoAction(ACTION_ENTER_COMBAT);
}
@@ -371,7 +371,7 @@ public:
_justDied = true;
Talk(SAY_VALITHRIA_DEATH);
_instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_TRIGGER)))
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER)))
trigger->AI()->EnterEvadeMode();
}
}
@@ -388,7 +388,7 @@ public:
me->SetDisplayId(11686);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->DespawnOrUnsummon(4000);
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_LICH_KING)))
lichKing->CastSpell(lichKing, SPELL_SPAWN_CHEST, false);
_instance->SetData(DATA_WEEKLY_QUEST_ID, 0); // show hidden npc if necessary
}
@@ -518,9 +518,9 @@ public:
me->setActive(true);
me->SetInCombatWithZone();
instance->SetBossState(DATA_VALITHRIA_DREAMWALKER, IN_PROGRESS);
if (Creature* valithria = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VALITHRIA_DREAMWALKER)))
if (Creature* valithria = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER)))
valithria->AI()->DoAction(ACTION_ENTER_COMBAT);
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VALITHRIA_LICH_KING)))
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VALITHRIA_LICH_KING)))
lichKing->AI()->DoAction(ACTION_ENTER_COMBAT);
std::list<Creature*> archmages;
@@ -712,8 +712,8 @@ public:
{
me->FinishSpell(CURRENT_CHANNELED_SPELL, false);
me->SetInCombatWithZone();
if (me->GetDBTableGUIDLow())
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_TRIGGER)))
if (me->GetSpawnId())
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER)))
trigger->AI()->DoAction(ACTION_ENTER_COMBAT);
}
@@ -726,7 +726,7 @@ public:
void JustSummoned(Creature* summon) override
{
if (summon->GetEntry() == NPC_COLUMN_OF_FROST)
summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_COLUMN_OF_FROST_DAMAGE, 0, 8000), summon->m_Events.CalculateTime(2000));
summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_COLUMN_OF_FROST_DAMAGE, ObjectGuid::Empty, 8000), summon->m_Events.CalculateTime(2000));
else if (summon->GetEntry() == NPC_MANA_VOID)
summon->DespawnOrUnsummon(36000);
}
@@ -734,7 +734,7 @@ public:
void UpdateAI(uint32 diff) override
{
if (!me->IsInCombat())
if (me->GetDBTableGUIDLow())
if (me->GetSpawnId())
if (!me->GetCurrentSpell(CURRENT_CHANNELED_SPELL))
me->CastSpell(me, SPELL_CORRUPTION, false);
@@ -861,7 +861,7 @@ public:
me->GetMotionMaster()->Clear(false);
me->GetMotionMaster()->MoveIdle();
// must use originalCaster the same for all clouds to allow stacking
me->CastSpell(me, EMERALD_VIGOR, false, nullptr, nullptr, _instance->GetData64(DATA_VALITHRIA_DREAMWALKER));
me->CastSpell(me, EMERALD_VIGOR, false, nullptr, nullptr, _instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER));
me->DespawnOrUnsummon(1000);
break;
default:
@@ -959,7 +959,7 @@ public:
void IsSummonedBy(Unit* /*summoner*/) override
{
if (Creature* valithria = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_DREAMWALKER)))
if (Creature* valithria = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER)))
AttackStart(valithria);
}
@@ -969,7 +969,7 @@ public:
return;
if (!me->GetVictim())
if (Creature* valithria = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_DREAMWALKER)))
if (Creature* valithria = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER)))
if (valithria->IsAlive())
AttackStart(valithria);
@@ -1169,7 +1169,7 @@ public:
return;
if (InstanceScript* instance = GetHitUnit()->GetInstanceScript())
GetHitUnit()->CastSpell((Unit*)nullptr, GetSpellInfo()->Effects[effIndex].TriggerSpell, true, nullptr, nullptr, instance->GetData64(DATA_VALITHRIA_DREAMWALKER));
GetHitUnit()->CastSpell((Unit*)nullptr, GetSpellInfo()->Effects[effIndex].TriggerSpell, true, nullptr, nullptr, instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER));
}
void Register() override
@@ -1326,7 +1326,7 @@ public:
if (!GetHitUnit())
return;
GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, nullptr, nullptr, GetCaster()->GetInstanceScript()->GetData64(DATA_VALITHRIA_LICH_KING));
GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, nullptr, nullptr, GetCaster()->GetInstanceScript()->GetGuidData(DATA_VALITHRIA_LICH_KING));
}
void Register() override
@@ -1410,7 +1410,7 @@ public:
if (!GetHitUnit())
return;
GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, nullptr, nullptr, GetCaster()->GetInstanceScript()->GetData64(DATA_VALITHRIA_LICH_KING));
GetHitUnit()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true, nullptr, nullptr, GetCaster()->GetInstanceScript()->GetGuidData(DATA_VALITHRIA_LICH_KING));
}
void Register() override
@@ -367,9 +367,9 @@ public:
void Reset() override
{
_events.Reset();
_theLichKing = 0;
_bolvarFordragon = 0;
_factionNPC = 0;
_theLichKing.Clear();
_bolvarFordragon.Clear();
_factionNPC.Clear();
_damnedKills = 0;
}
@@ -517,7 +517,7 @@ public:
case EVENT_SAURFANG_RUN:
if (Creature* factionNPC = ObjectAccessor::GetCreature(*me, _factionNPC))
{
factionNPC->GetMotionMaster()->MovePath(factionNPC->GetDBTableGUIDLow() * 10, false);
factionNPC->GetMotionMaster()->MovePath(factionNPC->GetSpawnId() * 10, false);
factionNPC->DespawnOrUnsummon(46500);
std::list<Creature*> followers;
factionNPC->GetCreaturesWithEntryInRange(followers, 30, _instance->GetData(DATA_TEAMID_IN_INSTANCE) == TEAM_HORDE ? NPC_KOR_KRON_GENERAL : NPC_ALLIANCE_COMMANDER);
@@ -561,9 +561,9 @@ public:
private:
EventMap _events;
InstanceScript* const _instance;
uint64 _theLichKing;
uint64 _bolvarFordragon;
uint64 _factionNPC;
ObjectGuid _theLichKing;
ObjectGuid _bolvarFordragon;
ObjectGuid _factionNPC;
uint16 _damnedKills;
};
@@ -733,10 +733,10 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
// Load Grid with Sister Svalna
me->GetMap()->LoadGrid(4356.71f, 2484.33f);
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA)))
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA)))
svalna->AI()->DoAction(ACTION_START_GAUNTLET);
for (uint32 i = 0; i < 4; ++i)
if (Creature* crusader = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_CAPTAIN_ARNATH + i)))
if (Creature* crusader = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_CAPTAIN_ARNATH + i)))
crusader->AI()->DoAction(ACTION_START_GAUNTLET);
Talk(SAY_CROK_INTRO_1);
@@ -757,7 +757,7 @@ public:
}
}
void SetGUID(uint64 guid, int32 type/* = 0*/) override
void SetGUID(ObjectGuid guid, int32 type/* = 0*/) override
{
if (type == ACTION_VRYKUL_DEATH)
{
@@ -769,7 +769,7 @@ public:
{
_handledWP4 = true;
Talk(SAY_CROK_FINAL_WP);
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA)))
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA)))
svalna->AI()->DoAction(ACTION_RESURRECT_CAPTAINS);
}
}
@@ -800,7 +800,7 @@ public:
{
_handledWP4 = true;
Talk(SAY_CROK_FINAL_WP);
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA)))
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA)))
svalna->AI()->DoAction(ACTION_RESURRECT_CAPTAINS);
}
break;
@@ -820,12 +820,12 @@ public:
break;
case 1:
minY = 2550.0f;
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA)))
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA)))
svalna->AI()->DoAction(ACTION_KILL_CAPTAIN);
break;
case 2:
minY = 2515.0f;
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_SISTER_SVALNA)))
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA)))
svalna->AI()->DoAction(ACTION_KILL_CAPTAIN);
break;
case 4:
@@ -910,7 +910,7 @@ public:
switch (_events.ExecuteEvent())
{
case EVENT_ARNATH_INTRO_2:
if (Creature* arnath = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_CAPTAIN_ARNATH)))
if (Creature* arnath = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_CAPTAIN_ARNATH)))
arnath->AI()->Talk(SAY_ARNATH_INTRO_2);
break;
case EVENT_CROK_INTRO_3:
@@ -956,7 +956,7 @@ public:
private:
EventMap _events;
std::set<uint64> _aliveTrash;
GuidSet _aliveTrash;
InstanceScript* _instance;
uint32 _currentWPid;
uint32 _wipeCheckTimer;
@@ -1004,12 +1004,12 @@ public:
_JustDied();
Talk(SAY_SVALNA_DEATH);
if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE))) // _isEventDone = true, setActive(false)
if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CROK_SCOURGEBANE))) // _isEventDone = true, setActive(false)
crok->AI()->DoAction(ACTION_RESET_EVENT);
uint64 delay = 6000;
for (uint32 i = 0; i < 4; ++i)
if (Creature* crusader = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CAPTAIN_ARNATH + i)))
if (Creature* crusader = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CAPTAIN_ARNATH + i)))
if (crusader->IsAlive())
{
if (crusader->GetEntry() == crusader->GetCreatureData()->id)
@@ -1033,7 +1033,7 @@ public:
}
_EnterCombat();
me->LowerPlayerDamageReq(me->GetMaxHealth());
if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE)))
if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CROK_SCOURGEBANE)))
{
crok->AI()->Talk(SAY_CROK_COMBAT_SVALNA);
crok->AI()->AttackStart(me);
@@ -1217,7 +1217,7 @@ public:
{
if (action == ACTION_START_GAUNTLET)
{
if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE)))
if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CROK_SCOURGEBANE)))
{
FollowAngle = me->GetAngle(crok) + me->GetOrientation();
FollowDist = me->GetDistance2d(crok);
@@ -1244,7 +1244,7 @@ public:
return;
me->GetMotionMaster()->Clear(false);
if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_CROK_SCOURGEBANE)))
if (Creature* crok = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_CROK_SCOURGEBANE)))
me->GetMotionMaster()->MoveFollow(crok, FollowDist, FollowAngle, MOTION_SLOT_IDLE);
else
me->GetMotionMaster()->MoveTargetedHome();
@@ -2327,7 +2327,7 @@ public:
{
if (InstanceScript* instance = player->GetInstanceScript())
if (instance->GetBossState(DATA_SISTER_SVALNA) != DONE)
if (Creature* crok = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_CROK_SCOURGEBANE)))
if (Creature* crok = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_CROK_SCOURGEBANE)))
{
if (!crok->IsAlive())
{
@@ -3712,7 +3712,7 @@ public:
{
if (InstanceScript* instance = player->GetInstanceScript())
if (instance->GetBossState(DATA_SINDRAGOSA_GAUNTLET) == NOT_STARTED && !player->IsGameMaster())
if (Creature* gauntlet = ObjectAccessor::GetCreature(*player, instance->GetData64(NPC_SINDRAGOSA_GAUNTLET)))
if (Creature* gauntlet = ObjectAccessor::GetCreature(*player, instance->GetGuidData(NPC_SINDRAGOSA_GAUNTLET)))
gauntlet->AI()->DoAction(ACTION_START_GAUNTLET);
return true;
}
@@ -3727,7 +3727,7 @@ public:
{
if (InstanceScript* instance = player->GetInstanceScript())
if (instance->GetData(DATA_PUTRICIDE_TRAP_STATE) == NOT_STARTED && !player->IsGameMaster())
if (Creature* trap = ObjectAccessor::GetCreature(*player, instance->GetData64(NPC_PUTRICADES_TRAP)))
if (Creature* trap = ObjectAccessor::GetCreature(*player, instance->GetGuidData(NPC_PUTRICADES_TRAP)))
trap->AI()->DoAction(ACTION_START_GAUNTLET);
return true;
}
@@ -160,63 +160,15 @@ public:
// pussywizard:
IsBuffAvailable = true;
WeeklyQuestId10 = 0;
PutricideEnteranceDoorGUID = 0;
GasReleaseValveGUID = 0;
OozeReleaseValveGUID = 0;
PutricideEventProgress = 0;
LichKingHeroicAvailable = true;
LichKingRandomWhisperTimer = 120 * IN_MILLISECONDS;
DarkwhisperElevatorTimer = 3000;
memset(&WeeklyQuestNpcGUID, 0, sizeof(WeeklyQuestNpcGUID));
ScourgeTransporterFirstGUID = 0;
SetBossNumber(MAX_ENCOUNTERS);
LoadDoorData(doorData);
TeamIdInInstance = TEAM_NEUTRAL;
HeroicAttempts = MaxHeroicAttempts;
LadyDeathwhisperGUID = 0;
LadyDeathwisperElevatorGUID = 0;
GunshipGUID = 0;
EnemyGunshipGUID = 0;
GunshipArmoryGUID = 0;
DeathbringerSaurfangGUID = 0;
DeathbringerSaurfangDoorGUID = 0;
DeathbringerSaurfangEventGUID = 0;
DeathbringersCacheGUID = 0;
SaurfangTeleportGUID = 0;
PlagueSigilGUID = 0;
BloodwingSigilGUID = 0;
FrostwingSigilGUID = 0;
memset(PutricidePipeGUIDs, 0, 2 * sizeof(uint64));
memset(PutricideGateGUIDs, 0, 2 * sizeof(uint64));
PutricideCollisionGUID = 0;
FestergutGUID = 0;
RotfaceGUID = 0;
ProfessorPutricideGUID = 0;
PutricideTableGUID = 0;
memset(BloodCouncilGUIDs, 0, 3 * sizeof(uint64));
BloodCouncilControllerGUID = 0;
BloodQueenLanaThelGUID = 0;
CrokScourgebaneGUID = 0;
memset(CrokCaptainGUIDs, 0, 4 * sizeof(uint64));
SisterSvalnaGUID = 0;
ValithriaDreamwalkerGUID = 0;
ValithriaLichKingGUID = 0;
ValithriaTriggerGUID = 0;
PutricadeTrapGUID = 0;
SindragosaGauntletGUID = 0;
SindragosaGUID = 0;
SpinestalkerGUID = 0;
RimefangGUID = 0;
TheLichKingTeleportGUID = 0;
TheLichKingGUID = 0;
HighlordTirionFordringGUID = 0;
TerenasMenethilGUID = 0;
ArthasPlatformGUID = 0;
ArthasPrecipiceGUID = 0;
FrozenThroneEdgeGUID = 0;
FrozenThroneWindGUID = 0;
FrozenThroneWarningGUID = 0;
IsBonedEligible = true;
IsOozeDanceEligible = true;
IsNauseaEligible = true;
@@ -279,7 +231,7 @@ public:
}
// apply ICC buff to pets/summons
if (GetData(DATA_BUFF_AVAILABLE) && IS_PLAYER_GUID(creature->GetOwnerGUID()) && creature->HasUnitTypeMask(UNIT_MASK_MINION | UNIT_MASK_GUARDIAN | UNIT_MASK_CONTROLABLE_GUARDIAN) && creature->CanHaveThreatList())
if (GetData(DATA_BUFF_AVAILABLE) && creature->GetOwnerGUID().IsPlayer() && creature->HasUnitTypeMask(UNIT_MASK_MINION | UNIT_MASK_GUARDIAN | UNIT_MASK_CONTROLABLE_GUARDIAN) && creature->CanHaveThreatList())
if (Unit* owner = creature->GetOwner())
if (Player* plr = owner->ToPlayer())
{
@@ -512,10 +464,10 @@ public:
void OnCreatureRemove(Creature* creature) override
{
if (creature->GetEntry() == NPC_SINDRAGOSA)
SindragosaGUID = 0;
SindragosaGUID.Clear();
}
uint32 GetCreatureEntry(uint32 /*guidLow*/, CreatureData const* data) override
uint32 GetCreatureEntry(ObjectGuid::LowType /*guidLow*/, CreatureData const* data) override
{
if (TeamIdInInstance == TEAM_NEUTRAL)
{
@@ -560,7 +512,7 @@ public:
return entry;
}
uint32 GetGameObjectEntry(uint32 /*guidLow*/, uint32 entry) override
uint32 GetGameObjectEntry(ObjectGuid::LowType /*guidLow*/, uint32 entry) override
{
if (TeamIdInInstance == TEAM_NEUTRAL)
{
@@ -620,14 +572,14 @@ public:
if (creature->AI()->GetData(1/*DATA_FROSTWYRM_OWNER*/) == DATA_SPINESTALKER)
{
SpinestalkerTrash.erase(creature->GetDBTableGUIDLow());
SpinestalkerTrash.erase(creature->GetSpawnId());
if (SpinestalkerTrash.empty())
if (Creature* spinestalk = instance->GetCreature(SpinestalkerGUID))
spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
}
else
{
RimefangTrash.erase(creature->GetDBTableGUIDLow());
RimefangTrash.erase(creature->GetSpawnId());
if (RimefangTrash.empty())
if (Creature* spinestalk = instance->GetCreature(RimefangGUID))
spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
@@ -642,7 +594,7 @@ public:
if (GetBossState(DATA_SINDRAGOSA) == DONE)
return;
FrostwyrmGUIDs.erase(creature->GetDBTableGUIDLow());
FrostwyrmGUIDs.erase(creature->GetSpawnId());
if (FrostwyrmGUIDs.empty())
{
instance->LoadGrid(SindragosaSpawnPos.GetPositionX(), SindragosaSpawnPos.GetPositionY());
@@ -893,7 +845,7 @@ public:
break;
case GO_THE_SKYBREAKER_A:
case GO_ORGRIMS_HAMMER_H:
GunshipGUID = 0;
GunshipGUID.Clear();
break;
default:
break;
@@ -941,7 +893,7 @@ public:
return 0;
}
uint64 GetData64(uint32 type) const override
ObjectGuid GetGuidData(uint32 type) const override
{
switch (type)
{
@@ -1014,7 +966,7 @@ public:
break;
}
return 0;
return ObjectGuid::Empty;
}
void HandleDropAttempt(bool drop = true)
@@ -1681,7 +1633,7 @@ public:
uint8 id = urand(0, 15);
std::string const& text = sCreatureTextMgr->GetLocalizedChatString(NPC_THE_LICH_KING_LH, 0, 20 + id, 0, LOCALE_enUS);
WorldPacket data;
ChatHandler::BuildChatPacket(data, CHAT_MSG_MONSTER_WHISPER, LANG_UNIVERSAL, 0, player->GetGUID(), text, CHAT_TAG_NONE, "The Lich King");
ChatHandler::BuildChatPacket(data, CHAT_MSG_MONSTER_WHISPER, LANG_UNIVERSAL, ObjectGuid::Empty, player->GetGUID(), text, CHAT_TAG_NONE, "The Lich King");
player->SendPlaySound(17235 + id, true);
player->SendDirectMessage(&data);
}
@@ -1900,68 +1852,68 @@ public:
// pussywizard:
bool IsBuffAvailable;
uint32 WeeklyQuestId10; // contains id from 10man for any difficulty (for simplicity)
uint64 WeeklyQuestNpcGUID[WeeklyNPCs];
uint64 PutricideEnteranceDoorGUID;
ObjectGuid WeeklyQuestNpcGUID[WeeklyNPCs];
ObjectGuid PutricideEnteranceDoorGUID;
uint32 PutricideEventProgress;
uint64 GasReleaseValveGUID;
uint64 OozeReleaseValveGUID;
ObjectGuid GasReleaseValveGUID;
ObjectGuid OozeReleaseValveGUID;
bool LichKingHeroicAvailable;
uint32 LichKingRandomWhisperTimer;
uint32 DarkwhisperElevatorTimer;
uint64 ScourgeTransporterFirstGUID;
ObjectGuid ScourgeTransporterFirstGUID;
EventMap Events;
uint64 LadyDeathwhisperGUID;
uint64 LadyDeathwisperElevatorGUID;
uint64 GunshipGUID;
uint64 EnemyGunshipGUID;
uint64 GunshipArmoryGUID;
uint64 DeathbringerSaurfangGUID;
uint64 DeathbringerSaurfangDoorGUID;
uint64 DeathbringerSaurfangEventGUID; // Muradin Bronzebeard or High Overlord Saurfang
uint64 DeathbringersCacheGUID;
uint64 SaurfangTeleportGUID;
uint64 PlagueSigilGUID;
uint64 BloodwingSigilGUID;
uint64 FrostwingSigilGUID;
uint64 PutricidePipeGUIDs[2];
uint64 PutricideGateGUIDs[2];
uint64 PutricideCollisionGUID;
uint64 FestergutGUID;
uint64 RotfaceGUID;
uint64 ProfessorPutricideGUID;
uint64 PutricideTableGUID;
uint64 BloodCouncilGUIDs[3];
uint64 BloodCouncilControllerGUID;
uint64 BloodQueenLanaThelGUID;
uint64 CrokScourgebaneGUID;
uint64 CrokCaptainGUIDs[4];
uint64 SisterSvalnaGUID;
uint64 ValithriaDreamwalkerGUID;
uint64 ValithriaLichKingGUID;
uint64 ValithriaTriggerGUID;
uint64 PutricadeTrapGUID;
uint64 SindragosaGauntletGUID;
uint64 SindragosaGUID;
uint64 SpinestalkerGUID;
uint64 RimefangGUID;
uint64 TheLichKingTeleportGUID;
uint64 TheLichKingGUID;
uint64 HighlordTirionFordringGUID;
uint64 TerenasMenethilGUID;
uint64 ArthasPlatformGUID;
uint64 ArthasPrecipiceGUID;
uint64 FrozenThroneEdgeGUID;
uint64 FrozenThroneWindGUID;
uint64 FrozenThroneWarningGUID;
uint64 FrozenBolvarGUID;
uint64 PillarsChainedGUID;
uint64 PillarsUnchainedGUID;
ObjectGuid LadyDeathwhisperGUID;
ObjectGuid LadyDeathwisperElevatorGUID;
ObjectGuid GunshipGUID;
ObjectGuid EnemyGunshipGUID;
ObjectGuid GunshipArmoryGUID;
ObjectGuid DeathbringerSaurfangGUID;
ObjectGuid DeathbringerSaurfangDoorGUID;
ObjectGuid DeathbringerSaurfangEventGUID; // Muradin Bronzebeard or High Overlord Saurfang
ObjectGuid DeathbringersCacheGUID;
ObjectGuid SaurfangTeleportGUID;
ObjectGuid PlagueSigilGUID;
ObjectGuid BloodwingSigilGUID;
ObjectGuid FrostwingSigilGUID;
ObjectGuid PutricidePipeGUIDs[2];
ObjectGuid PutricideGateGUIDs[2];
ObjectGuid PutricideCollisionGUID;
ObjectGuid FestergutGUID;
ObjectGuid RotfaceGUID;
ObjectGuid ProfessorPutricideGUID;
ObjectGuid PutricideTableGUID;
ObjectGuid BloodCouncilGUIDs[3];
ObjectGuid BloodCouncilControllerGUID;
ObjectGuid BloodQueenLanaThelGUID;
ObjectGuid CrokScourgebaneGUID;
ObjectGuid CrokCaptainGUIDs[4];
ObjectGuid SisterSvalnaGUID;
ObjectGuid ValithriaDreamwalkerGUID;
ObjectGuid ValithriaLichKingGUID;
ObjectGuid ValithriaTriggerGUID;
ObjectGuid PutricadeTrapGUID;
ObjectGuid SindragosaGauntletGUID;
ObjectGuid SindragosaGUID;
ObjectGuid SpinestalkerGUID;
ObjectGuid RimefangGUID;
ObjectGuid TheLichKingTeleportGUID;
ObjectGuid TheLichKingGUID;
ObjectGuid HighlordTirionFordringGUID;
ObjectGuid TerenasMenethilGUID;
ObjectGuid ArthasPlatformGUID;
ObjectGuid ArthasPrecipiceGUID;
ObjectGuid FrozenThroneEdgeGUID;
ObjectGuid FrozenThroneWindGUID;
ObjectGuid FrozenThroneWarningGUID;
ObjectGuid FrozenBolvarGUID;
ObjectGuid PillarsChainedGUID;
ObjectGuid PillarsUnchainedGUID;
TeamId TeamIdInInstance;
uint32 ColdflameJetsState;
std::set<uint32> FrostwyrmGUIDs;
std::set<uint32> SpinestalkerTrash;
std::set<uint32> RimefangTrash;
std::set<ObjectGuid::LowType> FrostwyrmGUIDs;
std::set<ObjectGuid::LowType> SpinestalkerTrash;
std::set<ObjectGuid::LowType> RimefangTrash;
uint32 BloodQuickeningState;
uint32 HeroicAttempts;
uint16 BloodQuickeningMinutes;
@@ -87,7 +87,7 @@ public:
SummonCryptGuards();
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_ANUB_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_ANUB_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -151,7 +151,7 @@ public:
Talk(SAY_AGGRO);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_ANUB_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_ANUB_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -183,7 +183,7 @@ public:
{
if (!me->IsInCombat() && sayGreet)
{
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
{
if (pInstance)
{
@@ -92,7 +92,7 @@ public:
SummonHelpers();
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_FAERLINA_WEB)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_FAERLINA_WEB)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -111,7 +111,7 @@ public:
events.SetPhase(1);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_FAERLINA_WEB)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_FAERLINA_WEB)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -149,7 +149,7 @@ public:
Talk(SAY_DEATH);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_FAERLINA_WEB)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_FAERLINA_WEB)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -160,7 +160,7 @@ public:
{
if (!me->IsInCombat() && sayGreet)
{
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
{
if (pInstance)
{
@@ -193,7 +193,7 @@ public:
}
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_HORSEMEN_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_HORSEMEN_GATE)))
{
if (pInstance->GetBossState(BOSS_GOTHIK) == DONE)
{
@@ -270,7 +270,7 @@ public:
player->SummonGameObject(RAID_MODE(GO_HORSEMEN_CHEST_10, GO_HORSEMEN_CHEST_25), 2514.8f, -2944.9f, 245.55f, 5.51f, 0, 0, 0, 0, 0);
}
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_HORSEMEN_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_HORSEMEN_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -292,7 +292,7 @@ public:
}
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_HORSEMEN_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_HORSEMEN_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -217,15 +217,15 @@ public:
me->NearTeleportTo(2642.139f, -3386.959f, 285.492f, 6.265f);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_ENTER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_ENTER_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_INNER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_INNER_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_EXIT_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_EXIT_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -245,11 +245,11 @@ public:
events.ScheduleEvent(EVENT_CHECK_PLAYERS, 120000);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_ENTER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_ENTER_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_INNER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_INNER_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -294,15 +294,15 @@ public:
summons.DespawnAll();
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_ENTER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_ENTER_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_INNER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_INNER_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_EXIT_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_EXIT_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -447,7 +447,7 @@ public:
case EVENT_CHECK_HEALTH:
if (me->HealthBelowPct(30) && pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_INNER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_INNER_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -482,7 +482,7 @@ public:
case EVENT_CHECK_PLAYERS:
if (!CheckGroupSplitted())
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_GOTHIK_INNER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_GOTHIK_INNER_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -79,10 +79,7 @@ public:
me->GetCreaturesWithEntryInRange(StichedGiants, 300.0f, NPC_STICHED_GIANT);
for (std::list<Creature*>::const_iterator itr = StichedGiants.begin(); itr != StichedGiants.end(); ++itr)
{
if ((*itr)->GetGUID())
{
(*itr)->ToCreature()->AI()->AttackStart(me->GetVictim());
}
(*itr)->ToCreature()->AI()->AttackStart(me->GetVictim());
}
}
@@ -75,7 +75,7 @@ public:
moveRight = true;
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_HEIGAN_ENTER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_HEIGAN_ENTER_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -107,7 +107,7 @@ public:
Talk(SAY_AGGRO);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_HEIGAN_ENTER_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_HEIGAN_ENTER_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -210,12 +210,12 @@ public:
summons.DespawnAll();
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
me->SetReactState(REACT_AGGRESSIVE);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_FLOOR)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_FLOOR)))
{
go->SetPhaseMask(1, true);
go->SetGoState(GO_STATE_READY);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_GATE)))
{
if(!_justSpawned) // Don't open the door if we just spawned and are still doing the conversation
{
@@ -223,19 +223,19 @@ public:
}
}
_justSpawned = false;
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_PORTAL_1)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_PORTAL_1)))
{
go->SetGoState(GO_STATE_READY);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_PORTAL_2)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_PORTAL_2)))
{
go->SetGoState(GO_STATE_READY);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_PORTAL_3)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_PORTAL_3)))
{
go->SetGoState(GO_STATE_READY);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_PORTAL_4)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_PORTAL_4)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -270,7 +270,7 @@ public:
Talk(SAY_DEATH);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -289,7 +289,7 @@ public:
Talk(SAY_SUMMON_MINIONS);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
me->RemoveAllAttackers();
me->SetTarget(0);
me->SetTarget();
me->SetReactState(REACT_PASSIVE);
me->CastSpell(me, SPELL_KELTHUZAD_CHANNEL, false);
events.ScheduleEvent(EVENT_SPAWN_POOL, 5000);
@@ -300,13 +300,13 @@ public:
events.ScheduleEvent(EVENT_ENRAGE, 900000);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_FLOOR)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_FLOOR)))
{
events.ScheduleEvent(EVENT_FLOOR_CHANGE, 15000);
go->SetGoState(GO_STATE_ACTIVE);
}
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -342,7 +342,7 @@ public:
case EVENT_FLOOR_CHANGE:
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_FLOOR)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_FLOOR)))
{
events.ScheduleEvent(EVENT_FLOOR_CHANGE, 15000);
go->SetGoState(GO_STATE_READY);
@@ -451,19 +451,19 @@ public:
Talk(SAY_REQUEST_AID);
events.DelayEvents(5500);
events.ScheduleEvent(EVENT_P3_LICH_KING_SAY, 5000);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_PORTAL_1)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_PORTAL_1)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_PORTAL_2)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_PORTAL_2)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_PORTAL_3)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_PORTAL_3)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_PORTAL_4)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_PORTAL_4)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -474,7 +474,7 @@ public:
case EVENT_P3_LICH_KING_SAY:
if (pInstance)
{
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_LICH_KING_BOSS)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_LICH_KING_BOSS)))
{
cr->AI()->Talk(SAY_ANSWER_REQUEST);
}
@@ -67,7 +67,7 @@ public:
if (pInstance)
{
pInstance->SetData(BOSS_LOATHEB, NOT_STARTED);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_LOATHEB_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_LOATHEB_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -108,7 +108,7 @@ public:
if (pInstance)
{
pInstance->SetData(BOSS_LOATHEB, IN_PROGRESS);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_LOATHEB_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_LOATHEB_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -88,7 +88,7 @@ public:
summons.DespawnAll();
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_MAEXXNA_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_MAEXXNA_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -107,7 +107,7 @@ public:
events.ScheduleEvent(EVENT_SUMMON_SPIDERLINGS, 30000);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_MAEXXNA_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_MAEXXNA_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -219,12 +219,14 @@ public:
struct boss_maexxna_webwrapAI : public NullCreatureAI
{
explicit boss_maexxna_webwrapAI(Creature* c) : NullCreatureAI(c), victimGUID(0) {}
explicit boss_maexxna_webwrapAI(Creature* c) : NullCreatureAI(c) {}
uint64 victimGUID;
void SetGUID(uint64 guid, int32 /*param*/) override
ObjectGuid victimGUID;
void SetGUID(ObjectGuid guid, int32 /*param*/) override
{
victimGUID = guid;
if (me->m_spells[0] && victimGUID)
{
if (Unit* victim = ObjectAccessor::GetUnit(*me, victimGUID))
@@ -140,7 +140,7 @@ public:
timesInBalcony = 0;
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_NOTH_ENTRY_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_NOTH_ENTRY_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -160,7 +160,7 @@ public:
StartGroundPhase();
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_NOTH_ENTRY_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_NOTH_ENTRY_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
@@ -184,7 +184,7 @@ public:
Talk(SAY_DEATH);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_NOTH_ENTRY_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_NOTH_ENTRY_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -86,8 +86,8 @@ public:
InstanceScript* pInstance;
uint8 iceboltCount{};
uint32 spawnTimer{};
std::list<uint64> blockList;
uint64 currentTarget{};
GuidList blockList;
ObjectGuid currentTarget;
void InitializeAI() override
{
@@ -118,7 +118,7 @@ public:
events.Reset();
iceboltCount = 0;
spawnTimer = 0;
currentTarget = 0;
currentTarget.Clear();
blockList.clear();
}
@@ -191,12 +191,12 @@ public:
bool IsValidExplosionTarget(WorldObject* target)
{
for (std::list<uint64>::const_iterator itr = blockList.begin(); itr != blockList.end(); ++itr)
for (ObjectGuid const guid : blockList)
{
if (target->GetGUID() == (*itr))
if (target->GetGUID() == guid)
return false;
if (Unit* block = ObjectAccessor::GetUnit(*me, *itr))
if (Unit* block = ObjectAccessor::GetUnit(*me, guid))
{
if (block->IsInBetween(me, target, 2.0f) && block->IsWithinDist(target, 10.0f))
return false;
@@ -293,7 +293,7 @@ public:
me->SendMeleeAttackStop(me->GetVictim());
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
me->SetDisableGravity(true);
currentTarget = 0;
currentTarget.Clear();
events.ScheduleEvent(EVENT_FLIGHT_ICEBOLT, 3000);
iceboltCount = RAID_MODE(2, 3);
return;
@@ -316,7 +316,7 @@ public:
bool inList = false;
if (!blockList.empty())
{
for (std::list<uint64>::const_iterator itr = blockList.begin(); itr != blockList.end(); ++itr)
for (GuidList::const_iterator itr = blockList.begin(); itr != blockList.end(); ++itr)
{
if ((*i)->getTarget()->GetGUID() == *itr)
{
@@ -349,7 +349,7 @@ public:
return;
}
case EVENT_FLIGHT_BREATH:
currentTarget = 0;
currentTarget.Clear();
Talk(EMOTE_BREATH);
me->CastSpell(me, SPELL_FROST_MISSILE, false);
events.ScheduleEvent(EVENT_FLIGHT_SPELL_EXPLOSION, 8500);
@@ -361,7 +361,7 @@ public:
case EVENT_FLIGHT_START_LAND:
if (!blockList.empty())
{
for (std::list<uint64>::const_iterator itr = blockList.begin(); itr != blockList.end(); ++itr)
for (GuidList::const_iterator itr = blockList.begin(); itr != blockList.end(); ++itr)
{
if (Unit* block = ObjectAccessor::GetUnit(*me, *itr))
{
@@ -178,7 +178,7 @@ public:
}
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_THADDIUS_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_THADDIUS_GATE)))
{
if (pInstance->GetBossState(BOSS_GLUTH) == DONE)
{
@@ -208,7 +208,7 @@ public:
{
pInstance->DoRemoveAurasDueToSpellOnPlayers(28059);
pInstance->DoRemoveAurasDueToSpellOnPlayers(28084);
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_THADDIUS_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_THADDIUS_GATE)))
{
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -365,7 +365,6 @@ public:
{
pInstance = me->GetInstanceScript();
overload = false;
myCoil = 0;
}
InstanceScript* pInstance;
@@ -373,7 +372,7 @@ public:
uint32 pullTimer{};
uint32 visualTimer{};
bool overload;
uint64 myCoil;
ObjectGuid myCoil;
void Reset() override
{
@@ -421,11 +420,11 @@ public:
}
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_THADDIUS_GATE)))
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_THADDIUS_GATE)))
{
go->SetGoState(GO_STATE_READY);
}
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_THADDIUS_BOSS)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_THADDIUS_BOSS)))
{
cr->AI()->AttackStart(pWho);
cr->AddThreat(pWho, 10.0f);
@@ -461,7 +460,7 @@ public:
Talk(me->GetEntry() == NPC_STALAGG ? EMOTE_STAL_DEATH : EMOTE_FEUG_DEATH);
if (pInstance)
{
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_THADDIUS_BOSS)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_THADDIUS_BOSS)))
{
cr->AI()->DoAction(ACTION_SUMMON_DIED);
}
@@ -530,7 +529,7 @@ public:
events.RepeatEvent(20000);
if (pInstance)
{
if (Creature* feugen = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_FEUGEN_BOSS)))
if (Creature* feugen = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_FEUGEN_BOSS)))
{
if (!feugen->IsAlive() || !feugen->GetVictim() || !me->GetVictim())
return;
@@ -734,7 +733,7 @@ public:
if (!instance || instance->GetData(DATA_HAD_THADDIUS_GREET) || instance->GetBossState(BOSS_THADDIUS) == DONE)
return true;
if (Creature* thaddius = ObjectAccessor::GetCreature(*player, instance->GetData64(DATA_THADDIUS_BOSS)))
if (Creature* thaddius = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_THADDIUS_BOSS)))
{
thaddius->AI()->Talk(SAY_GREET);
}
@@ -55,54 +55,8 @@ public:
for (auto& i : HeiganEruption)
i.clear();
// GOs
_patchwerkGateGUID = 0;
_gluthGateGUID = 0;
_nothEntryGateGUID = 0;
_nothExitGateGUID = 0;
_heiganGateGUID = 0;
_heiganGateExitGUID = 0;
_loathebGateGUID = 0;
_anubGateGUID = 0;
_anubNextGateGUID = 0;
_faerlinaWebGUID = 0;
_faerlinaGateGUID = 0;
_maexxnaGateGUID = 0;
_thaddiusGateGUID = 0;
_horsemanGateGUID = 0;
_kelthuzadFloorGUID = 0;
_kelthuzadGateGUID = 0;
_kelthuzadPortal1GUID = 0;
_kelthuzadPortal2GUID = 0;
_kelthuzadPortal3GUID = 0;
_kelthuzadPortal4GUID = 0;
_sapphironGateGUID = 0;
_horsemanPortalGUID = 0;
_loathebPortalGUID = 0;
_maexxnaPortalGUID = 0;
_thaddiusPortalGUID = 0;
_deathknightEyePortalGUID = 0;
_plagueEyePortalGUID = 0;
_spiderEyePortalGUID = 0;
_abomEyePortalGUID = 0;
_deathknightGlowEyePortalGUID = 0;
_plagueGlowEyePortalGUID = 0;
_spiderGlowEyePortalGUID = 0;
_abomGlowEyePortalGUID = 0;
// NPCs
PatchwerkRoomTrash.clear();
_patchwerkGUID = 0;
_thaddiusGUID = 0;
_stalaggGUID = 0;
_feugenGUID = 0;
_zeliekGUID = 0;
_rivendareGUID = 0;
_blaumeuxGUID = 0;
_korthazzGUID = 0;
_sapphironGUID = 0;
_kelthuzadGUID = 0;
_lichkingGUID = 0;
// Controls
_horsemanKilled = 0;
@@ -126,56 +80,56 @@ public:
std::set<GameObject*> HeiganEruption[4];
// GOs
uint64 _patchwerkGateGUID;
uint64 _gluthGateGUID;
uint64 _nothEntryGateGUID;
uint64 _nothExitGateGUID;
uint64 _heiganGateGUID;
uint64 _heiganGateExitGUID;
uint64 _loathebGateGUID;
uint64 _anubGateGUID;
uint64 _anubNextGateGUID;
uint64 _faerlinaWebGUID;
uint64 _faerlinaGateGUID;
uint64 _maexxnaGateGUID;
uint64 _thaddiusGateGUID;
uint64 _gothikEnterGateGUID{};
uint64 _gothikInnerGateGUID{};
uint64 _gothikExitGateGUID{};
uint64 _horsemanGateGUID;
uint64 _kelthuzadFloorGUID;
uint64 _kelthuzadGateGUID;
uint64 _kelthuzadPortal1GUID;
uint64 _kelthuzadPortal2GUID;
uint64 _kelthuzadPortal3GUID;
uint64 _kelthuzadPortal4GUID;
uint64 _sapphironGateGUID;
uint64 _horsemanPortalGUID;
uint64 _loathebPortalGUID;
uint64 _maexxnaPortalGUID;
uint64 _thaddiusPortalGUID;
uint64 _deathknightEyePortalGUID;
uint64 _plagueEyePortalGUID;
uint64 _spiderEyePortalGUID;
uint64 _abomEyePortalGUID;
uint64 _deathknightGlowEyePortalGUID;
uint64 _plagueGlowEyePortalGUID;
uint64 _spiderGlowEyePortalGUID;
uint64 _abomGlowEyePortalGUID;
ObjectGuid _patchwerkGateGUID;
ObjectGuid _gluthGateGUID;
ObjectGuid _nothEntryGateGUID;
ObjectGuid _nothExitGateGUID;
ObjectGuid _heiganGateGUID;
ObjectGuid _heiganGateExitGUID;
ObjectGuid _loathebGateGUID;
ObjectGuid _anubGateGUID;
ObjectGuid _anubNextGateGUID;
ObjectGuid _faerlinaWebGUID;
ObjectGuid _faerlinaGateGUID;
ObjectGuid _maexxnaGateGUID;
ObjectGuid _thaddiusGateGUID;
ObjectGuid _gothikEnterGateGUID;
ObjectGuid _gothikInnerGateGUID;
ObjectGuid _gothikExitGateGUID{};
ObjectGuid _horsemanGateGUID;
ObjectGuid _kelthuzadFloorGUID;
ObjectGuid _kelthuzadGateGUID;
ObjectGuid _kelthuzadPortal1GUID;
ObjectGuid _kelthuzadPortal2GUID;
ObjectGuid _kelthuzadPortal3GUID;
ObjectGuid _kelthuzadPortal4GUID;
ObjectGuid _sapphironGateGUID;
ObjectGuid _horsemanPortalGUID;
ObjectGuid _loathebPortalGUID;
ObjectGuid _maexxnaPortalGUID;
ObjectGuid _thaddiusPortalGUID;
ObjectGuid _deathknightEyePortalGUID;
ObjectGuid _plagueEyePortalGUID;
ObjectGuid _spiderEyePortalGUID;
ObjectGuid _abomEyePortalGUID;
ObjectGuid _deathknightGlowEyePortalGUID;
ObjectGuid _plagueGlowEyePortalGUID;
ObjectGuid _spiderGlowEyePortalGUID;
ObjectGuid _abomGlowEyePortalGUID;
// NPCs
std::list<uint64> PatchwerkRoomTrash;
uint64 _patchwerkGUID;
uint64 _thaddiusGUID;
uint64 _stalaggGUID;
uint64 _feugenGUID;
uint64 _zeliekGUID;
uint64 _rivendareGUID;
uint64 _blaumeuxGUID;
uint64 _korthazzGUID;
uint64 _sapphironGUID;
uint64 _kelthuzadGUID;
uint64 _lichkingGUID;
GuidList PatchwerkRoomTrash;
ObjectGuid _patchwerkGUID;
ObjectGuid _thaddiusGUID;
ObjectGuid _stalaggGUID;
ObjectGuid _feugenGUID;
ObjectGuid _zeliekGUID;
ObjectGuid _rivendareGUID;
ObjectGuid _blaumeuxGUID;
ObjectGuid _korthazzGUID;
ObjectGuid _sapphironGUID;
ObjectGuid _kelthuzadGUID;
ObjectGuid _lichkingGUID;
// Controls
uint8 _horsemanKilled;
@@ -1075,7 +1029,7 @@ public:
}
}
uint64 GetData64(uint32 id) const override
ObjectGuid GetGuidData(uint32 id) const override
{
switch (id)
{
@@ -1124,10 +1078,11 @@ public:
return _feugenGUID;
case DATA_LICH_KING_BOSS:
return _lichkingGUID;
default:
return 0;
break;
}
return ObjectGuid::Empty;
}
std::string GetSaveData() override
@@ -328,7 +328,7 @@ public:
if (me->GetVictim() && me->GetVictim()->GetGUID() == victim->GetGUID() && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED))
{
if (!me->GetUInt64Value(UNIT_FIELD_TARGET))
if (!me->GetGuidValue(UNIT_FIELD_TARGET))
me->SetTarget(victim->GetGUID());
}
else if (me->Attack(victim, true))
@@ -336,7 +336,7 @@ public:
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED))
me->GetMotionMaster()->MoveChase(victim);
else
me->SetTarget(0);
me->SetTarget();
}
}
@@ -449,7 +449,7 @@ public:
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
me->SendMeleeAttackStop(me->GetVictim());
me->SetTarget((uint64)0);
me->SetTarget();
me->GetMotionMaster()->MoveIdle();
me->StopMoving();
@@ -518,10 +518,10 @@ public:
pPlayer->SetUnitMovementFlags(MOVEMENTFLAG_NONE);
pPlayer->SetDisableGravity(true, true);
WorldPacket data(SMSG_SPLINE_MOVE_UNROOT, 8);
data.append(pPlayer->GetPackGUID());
data << pPlayer->GetPackGUID();
pPlayer->SendMessageToSet(&data, true);
pPlayer->SetUInt64Value(PLAYER_FARSIGHT, vp->GetGUID());
pPlayer->SetGuidValue(PLAYER_FARSIGHT, vp->GetGUID());
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
}
@@ -553,7 +553,7 @@ public:
Talk(SAY_END_P1);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
me->SendMeleeAttackStop();
me->SetTarget((uint64)0);
me->SetTarget();
me->GetMotionMaster()->MoveIdle();
me->DisableSpline();
me->GetMotionMaster()->MovePoint(MI_POINT_CENTER_GROUND_PH_2, CenterPos);
@@ -655,7 +655,7 @@ public:
break;
case EVENT_CLEAR_TARGET:
me->SendMeleeAttackStop();
me->SetTarget(0);
me->SetTarget();
break;
case EVENT_CHECK_TRASH_DEAD:
{
@@ -664,7 +664,7 @@ public:
else
{
me->SendMeleeAttackStop();
me->SetTarget(0);
me->SetTarget();
events.CancelEventGroup(1);
summons.DespawnAll();
// start phase 3
@@ -883,7 +883,7 @@ public:
plr->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), speed);
plr->RemoveAura(SPELL_FREEZE_ANIM);
plr->SetDisableGravity(false, true);
plr->SetUInt64Value(PLAYER_FARSIGHT, 0);;
plr->SetGuidValue(PLAYER_FARSIGHT, ObjectGuid::Empty);
}
}
@@ -1007,7 +1007,7 @@ public:
if (CheckTimer <= diff)
{
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MALYGOS_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MALYGOS_GUID)))
if (me->IsWithinDist3d(c, 12.0f))
{
me->CastSpell(c, SPELL_POWER_SPARK_MALYGOS_BUFF, true);
@@ -1024,7 +1024,7 @@ public:
if (MoveTimer <= diff)
{
if (pInstance)
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MALYGOS_GUID)))
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MALYGOS_GUID)))
me->GetMotionMaster()->MovePoint(0, *c);
MoveTimer = 2000;
}
@@ -1168,7 +1168,7 @@ public:
break;
case EVENT_SCION_OF_ETERNITY_ARCANE_BARRAGE:
{
std::vector<uint64> guids;
GuidVector guids;
Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers();
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
@@ -1462,11 +1462,10 @@ public:
{
PrepareSpellScript(spell_eoe_ph3_surge_of_power_SpellScript);
uint64 DrakeGUID[3];
ObjectGuid DrakeGUID[3];
bool Load() override
{
memset(&DrakeGUID, 0, sizeof(DrakeGUID));
if (Unit* caster = GetCaster())
if (Creature* c = caster->ToCreature())
{
@@ -96,11 +96,11 @@ const uint32 MalygosIntroIntervals[] = {18000, 19000, 21000, 18000, 15000};
class EoEDrakeEnterVehicleEvent : public BasicEvent
{
public:
EoEDrakeEnterVehicleEvent(Creature& owner, uint64 playerGUID) : _owner(owner), _playerGUID(playerGUID) { }
EoEDrakeEnterVehicleEvent(Creature& owner, ObjectGuid playerGUID) : _owner(owner), _playerGUID(playerGUID) { }
bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override;
private:
Creature& _owner;
uint64 _playerGUID;
ObjectGuid _playerGUID;
};
template <class AI, class T>
@@ -37,20 +37,16 @@ public:
uint32 EncounterStatus;
std::string str_data;
uint64 NPC_MalygosGUID;
uint64 GO_IrisGUID;
uint64 GO_ExitPortalGUID;
uint64 GO_PlatformGUID;
ObjectGuid NPC_MalygosGUID;
ObjectGuid GO_IrisGUID;
ObjectGuid GO_ExitPortalGUID;
ObjectGuid GO_PlatformGUID;
bool bPokeAchiev;
void Initialize() override
{
EncounterStatus = NOT_STARTED;
NPC_MalygosGUID = 0;
GO_IrisGUID = 0;
GO_ExitPortalGUID = 0;
GO_PlatformGUID = 0;
bPokeAchiev = false;
}
@@ -173,14 +169,15 @@ public:
}
}
uint64 GetData64(uint32 type) const override
ObjectGuid GetGuidData(uint32 type) const override
{
switch(type)
{
case DATA_MALYGOS_GUID:
return NPC_MalygosGUID;
}
return 0;
return ObjectGuid::Empty;
}
void ProcessEvent(WorldObject* /*unit*/, uint32 eventId) override
@@ -152,7 +152,7 @@ public:
for(Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr)
if (Aura* aur = itr->GetSource()->GetAura(SPELL_INTENSE_COLD_TRIGGER))
if (aur->GetStackAmount() > 2)
aGuids.insert(itr->GetSource()->GetGUIDLow());
aGuids.insert(itr->GetSource()->GetGUID().GetCounter());
events.ScheduleEvent(EVENT_ACHIEVEMENT_CHECK, 500);
break;
}
@@ -191,7 +191,7 @@ public:
if (!target)
return false;
return target->GetAI()->GetData(player->GetGUIDLow());
return target->GetAI()->GetData(player->GetGUID().GetCounter());
}
};
@@ -184,7 +184,7 @@ public:
}
int32 _damageTimer;
uint64 _gameObjectGUID;
ObjectGuid _gameObjectGUID;
void Reset() override
{
@@ -92,7 +92,7 @@ public:
{
pInstance->SetData(DATA_DRAKOS, DONE);
for( uint8 i = 0; i < 3; ++i )
if( uint64 guid = pInstance->GetData64(DATA_DCD_1 + i) )
if( ObjectGuid guid = pInstance->GetGuidData(DATA_DCD_1 + i) )
if( GameObject* pGo = ObjectAccessor::GetGameObject(*me, guid) )
if( pGo->GetGoState() != GO_STATE_ACTIVE )
{
@@ -24,14 +24,14 @@ public:
instance_oculus_InstanceMapScript(Map* pMap) : InstanceScript(pMap) { Initialize(); }
uint32 m_auiEncounter[MAX_ENCOUNTER];
uint64 DragonCageDoorGUID[3];
uint64 EregosCacheGUID;
ObjectGuid DragonCageDoorGUID[3];
ObjectGuid EregosCacheGUID;
uint32 CentrifugeCount;
uint64 uiDrakosGUID;
uint64 uiVarosGUID;
uint64 uiUromGUID;
uint64 uiEregosGUID;
ObjectGuid uiDrakosGUID;
ObjectGuid uiVarosGUID;
ObjectGuid uiUromGUID;
ObjectGuid uiEregosGUID;
bool bAmberVoid;
bool bEmeraldVoid;
@@ -39,18 +39,12 @@ public:
void Initialize() override
{
EregosCacheGUID = 0;
uiDrakosGUID = 0;
uiVarosGUID = 0;
uiUromGUID = 0;
uiEregosGUID = 0;
CentrifugeCount = 0;
bAmberVoid = false;
bEmeraldVoid = false;
bRubyVoid = false;
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
memset(&DragonCageDoorGUID, 0, sizeof(DragonCageDoorGUID));
}
void OnCreatureCreate(Creature* pCreature) override
@@ -200,7 +194,7 @@ public:
return 0;
}
uint64 GetData64(uint32 identifier) const override
ObjectGuid GetGuidData(uint32 identifier) const override
{
switch( identifier )
{
@@ -218,7 +212,7 @@ public:
return DragonCageDoorGUID[identifier - 100];
}
return 0;
return ObjectGuid::Empty;
}
std::string GetSaveData() override
@@ -62,7 +62,7 @@ enum DrakeGiverTexts
class npc_oculus_drakegiver : public CreatureScript
{
public:
std::unordered_map<uint32, bool>openedMenu;
std::unordered_map<ObjectGuid, bool>openedMenu;
npc_oculus_drakegiver() : CreatureScript("npc_oculus_drakegiver") { }
@@ -887,7 +887,7 @@ public:
{
PrepareAuraScript(spell_oculus_rider_auraAuraScript);
uint64 _drakeGUID;
ObjectGuid _drakeGUID;
void HandleOnEffectApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
@@ -125,7 +125,7 @@ public:
AddWaypoint(13, 1281.2f, -26.8f, 33.5f, 0);
AddWaypoint(14, 1262, -26.9f, 33.5f, 0);
Start(true, false, 0, nullptr, false, true);
Start(true, false, ObjectGuid::Empty, nullptr, false, true);
}
InstanceScript* m_pInstance;
@@ -372,14 +372,14 @@ public:
npc_stormforged_lieutenantAI(Creature* creature) : ScriptedAI(creature) { }
EventMap events;
uint64 BjarngrimGUID;
ObjectGuid BjarngrimGUID;
void Reset() override
{
if (me->IsSummon())
BjarngrimGUID = me->ToTempSummon()->GetSummonerGUID();
else
BjarngrimGUID = 0;
BjarngrimGUID.Clear();
}
void EnterCombat(Unit*) override
@@ -361,7 +361,7 @@ public:
{
if (me->GetEntry() == NPC_BRITTLE_GOLEM && param == ACTION_SHATTER)
{
if (Creature* volkhan = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(TYPE_VOLKHAN)))
if (Creature* volkhan = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(TYPE_VOLKHAN)))
volkhan->AI()->DoAction(ACTION_DESTROYED);
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_SHATTER_H : SPELL_SHATTER_N, true);
@@ -444,7 +444,7 @@ public:
{
npc_hol_monumentAI(Creature* creature) : ScriptedAI(creature)
{
_attackGUID = 0;
_attackGUID.Clear();
_isActive = urand(0, 1);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->CastSpell(me, SPELL_FREEZE_ANIM, true);
@@ -452,7 +452,7 @@ public:
EventMap events;
bool _isActive;
uint64 _attackGUID;
ObjectGuid _attackGUID;
void Reset() override
{
@@ -22,16 +22,16 @@ public:
uint32 m_auiEncounter[MAX_ENCOUNTER];
uint64 m_uiGeneralBjarngrimGUID;
uint64 m_uiIonarGUID;
uint64 m_uiLokenGUID;
uint64 m_uiVolkhanGUID;
ObjectGuid m_uiGeneralBjarngrimGUID;
ObjectGuid m_uiIonarGUID;
ObjectGuid m_uiLokenGUID;
ObjectGuid m_uiVolkhanGUID;
uint64 m_uiBjarngrimDoorGUID;
uint64 m_uiVolkhanDoorGUID;
uint64 m_uiIonarDoorGUID;
uint64 m_uiLokenDoorGUID;
uint64 m_uiLokenGlobeGUID;
ObjectGuid m_uiBjarngrimDoorGUID;
ObjectGuid m_uiVolkhanDoorGUID;
ObjectGuid m_uiIonarDoorGUID;
ObjectGuid m_uiLokenDoorGUID;
ObjectGuid m_uiLokenGlobeGUID;
bool volkhanAchievement;
bool bjarngrimAchievement;
@@ -40,17 +40,6 @@ public:
{
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
m_uiGeneralBjarngrimGUID = 0;
m_uiVolkhanGUID = 0;
m_uiIonarGUID = 0;
m_uiLokenGUID = 0;
m_uiBjarngrimDoorGUID = 0;
m_uiVolkhanDoorGUID = 0;
m_uiIonarDoorGUID = 0;
m_uiLokenDoorGUID = 0;
m_uiLokenGlobeGUID = 0;
volkhanAchievement = false;
bjarngrimAchievement = false;
}
@@ -219,7 +208,7 @@ public:
return m_auiEncounter[uiType];
}
uint64 GetData64(uint32 uiData) const override
ObjectGuid GetGuidData(uint32 uiData) const override
{
switch(uiData)
{
@@ -232,7 +221,8 @@ public:
case TYPE_LOKEN:
return m_uiLokenGUID;
}
return 0;
return ObjectGuid::Empty;
}
};
};
@@ -132,13 +132,13 @@ public:
if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) == DONE)
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
if (GameObject* doors = me->GetMap()->GetGameObject(pInstance->GetData64(GO_SJONNIR_DOOR)))
if (GameObject* doors = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_SJONNIR_DOOR)))
doors->SetGoState(GO_STATE_ACTIVE);
if (GameObject* console = me->GetMap()->GetGameObject( pInstance->GetData64(GO_SJONNIR_CONSOLE)))
if (GameObject* console = me->GetMap()->GetGameObject( pInstance->GetGuidData(GO_SJONNIR_CONSOLE)))
console->SetGoState(GO_STATE_READY);
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_BRANN)))
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN)))
{
brann->setDeathState(JUST_DIED);
brann->Respawn();
@@ -165,11 +165,11 @@ public:
{
pInstance->SetData(BOSS_SJONNIR, IN_PROGRESS);
if (GameObject* doors = me->GetMap()->GetGameObject(pInstance->GetData64(GO_SJONNIR_DOOR)))
if (GameObject* doors = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_SJONNIR_DOOR)))
doors->SetGoState(GO_STATE_READY);
if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) == DONE)
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_BRANN)))
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN)))
brann->AI()->DoAction(3);
}
}
@@ -205,7 +205,7 @@ public:
events.ScheduleEvent(EVENT_SUMMON, 1500);
if (pInstance)
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_BRANN)))
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN)))
{
brann->MonsterYell("What in the name o' Madoran did THAT do? Oh! Wait: I just about got it...", LANG_UNIVERSAL, 0);
brann->PlayDirectSound(14276);
@@ -214,7 +214,7 @@ public:
if (HealthBelowPct(20))
{
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_BRANN)))
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN)))
{
brann->MonsterYell("Ha, that did it! Help's a-comin'! Take this, ya glowin' iron brute!", LANG_UNIVERSAL, 0);
brann->PlayDirectSound(14277);
@@ -261,7 +261,7 @@ public:
}
case EVENT_SUMMON_SPEACH:
{
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_BRANN)))
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN)))
{
brann->MonsterYell("This is a wee bit trickier that before... Oh, bloody--incomin'!", LANG_UNIVERSAL, 0);
brann->PlayDirectSound(14275);
@@ -314,10 +314,10 @@ public:
if (pInstance)
{
pInstance->SetData(BOSS_SJONNIR, DONE);
if (GameObject* sd = me->GetMap()->GetGameObject(pInstance->GetData64(GO_SJONNIR_DOOR)))
if (GameObject* sd = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_SJONNIR_DOOR)))
sd->SetGoState(GO_STATE_ACTIVE);
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_BRANN)))
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN)))
brann->AI()->DoAction(4);
}
}
@@ -333,7 +333,7 @@ public:
void ActivatePipe(uint8 side)
{
if (pInstance)
if (GameObject* pipe = me->GetMap()->GetGameObject(pInstance->GetData64(side == POS_GEN_RIGHT ? GO_RIGHT_PIPE : GO_LEFT_PIPE)))
if (GameObject* pipe = me->GetMap()->GetGameObject(pInstance->GetGuidData(side == POS_GEN_RIGHT ? GO_RIGHT_PIPE : GO_LEFT_PIPE)))
pipe->SendCustomAnim(0);
}
@@ -423,7 +423,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (InstanceScript* pInstance = me->GetInstanceScript())
if (Creature* sjonnir = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_SJONNIR)))
if (Creature* sjonnir = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_SJONNIR)))
sjonnir->AI()->DoAction(ACTION_SLUG_KILLED);
}
void UpdateAI(uint32 diff) override
@@ -224,16 +224,15 @@ public:
{
brann_bronzebeardAI(Creature* c) : npc_escortAI(c), summons(me)
{
AbedneumGUID = MarnakGUID = KaddrakGUID = 0;
pInstance = c->GetInstanceScript();
}
InstanceScript* pInstance;
EventMap events;
SummonList summons;
uint64 AbedneumGUID;
uint64 MarnakGUID;
uint64 KaddrakGUID;
ObjectGuid AbedneumGUID;
ObjectGuid MarnakGUID;
ObjectGuid KaddrakGUID;
uint8 WaveNum;
bool TalkEvent;
@@ -255,21 +254,21 @@ public:
GameObject* go = nullptr;
if (headMask & 0x1) // Kaddrak
if ((go = me->GetMap()->GetGameObject(pInstance->GetData64(GO_KADDRAK))))
if ((go = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_KADDRAK))))
activate ? go->SendCustomAnim(0) : go->SetGoState(GO_STATE_READY);
if (headMask & 0x2) // Marnak
if ((go = me->GetMap()->GetGameObject(pInstance->GetData64(GO_MARNAK))))
if ((go = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_MARNAK))))
activate ? go->SendCustomAnim(0) : go->SetGoState(GO_STATE_READY);
if (headMask & 0x4) // Abedneum
if ((go = me->GetMap()->GetGameObject(pInstance->GetData64(GO_ABEDNEUM))))
if ((go = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_ABEDNEUM))))
activate ? go->SendCustomAnim(0) : go->SetGoState(GO_STATE_READY);
}
void ResetEvent()
{
if (GameObject* tribunal = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_TRIBUNAL_CONSOLE)))
if (GameObject* tribunal = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_TRIBUNAL_CONSOLE)))
tribunal->SetGoState(GO_STATE_READY);
events.Reset();
@@ -322,7 +321,7 @@ public:
switch (action)
{
case ACTION_START_EVENT:
Start(false, true, 0, 0, true, false);
Start(false, true, ObjectGuid::Empty, 0, true, false);
break;
case ACTION_START_TRIBUNAL:
{
@@ -363,13 +362,13 @@ public:
Reset();
break;
case ACTION_WIPE_START:
Start(false, true, 0, 0, true, false);
Start(false, true, ObjectGuid::Empty, 0, true, false);
SetNextWaypoint(20, false);
ResetEvent();
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
break;
case ACTION_OPEN_DOOR:
if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_DOOR)))
if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SJONNIR_DOOR)))
door->SetGoState(GO_STATE_ACTIVE);
SetEscortPaused(false);
me->RemoveAura(58506);
@@ -513,7 +512,7 @@ public:
}
case EVENT_GO_TO_SJONNIR:
{
if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_DOOR)))
if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SJONNIR_DOOR)))
door->SetGoState(GO_STATE_ACTIVE);
SetEscortPaused(false);
ResetEvent();
@@ -588,7 +587,7 @@ public:
ResetEvent();
if(pInstance)
{
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_BRANN)))
if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN)))
{
brann->setDeathState(JUST_DIED);
brann->Respawn();
@@ -653,7 +652,7 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id)
if(pInstance)
{
pInstance->SetData(BOSS_TRIBUNAL_OF_AGES, IN_PROGRESS);
if (GameObject* tribunal = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_TRIBUNAL_CONSOLE)))
if (GameObject* tribunal = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_TRIBUNAL_CONSOLE)))
tribunal->SetGoState(GO_STATE_ACTIVE);
}
break;
@@ -664,7 +663,7 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id)
{
pInstance->SetData(BRANN_BRONZEBEARD, 5);
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_SJONNIR)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_SJONNIR)))
cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetOrientation(3.132660f);
DoCast(me, 58506, false);
@@ -677,7 +676,7 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id)
SetEscortPaused(true);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
if (pInstance)
if (GameObject* console = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_CONSOLE)))
if (GameObject* console = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SJONNIR_CONSOLE)))
console->SetGoState(GO_STATE_ACTIVE);
break;
@@ -22,19 +22,19 @@ public:
uint32 Encounter[MAX_ENCOUNTER];
uint64 goKaddrakGUID;
uint64 goMarnakGUID;
uint64 goAbedneumGUID;
uint64 goTribunalConsoleGUID;
uint64 goSkyRoomFloorGUID;
uint64 goSjonnirConsoleGUID;
uint64 goSjonnirDoorGUID;
uint64 goLeftPipeGUID;
uint64 goRightPipeGUID;
uint64 goTribunalDoorGUID;
ObjectGuid goKaddrakGUID;
ObjectGuid goMarnakGUID;
ObjectGuid goAbedneumGUID;
ObjectGuid goTribunalConsoleGUID;
ObjectGuid goSkyRoomFloorGUID;
ObjectGuid goSjonnirConsoleGUID;
ObjectGuid goSjonnirDoorGUID;
ObjectGuid goLeftPipeGUID;
ObjectGuid goRightPipeGUID;
ObjectGuid goTribunalDoorGUID;
uint64 SjonnirGUID;
uint64 BrannGUID;
ObjectGuid SjonnirGUID;
ObjectGuid BrannGUID;
bool brannAchievement;
bool sjonnirAchievement;
@@ -45,20 +45,6 @@ public:
{
memset(&Encounter, 0, sizeof(Encounter));
goKaddrakGUID = 0;
goMarnakGUID = 0;
goAbedneumGUID = 0;
goTribunalConsoleGUID = 0;
goSkyRoomFloorGUID = 0;
goSjonnirConsoleGUID = 0;
goSjonnirDoorGUID = 0;
goLeftPipeGUID = 0;
goRightPipeGUID = 0;
goTribunalDoorGUID = 0;
SjonnirGUID = 0;
BrannGUID = 0;
brannAchievement = false;
sjonnirAchievement = false;
isMaidenOfGriefDead = false;
@@ -132,9 +118,9 @@ public:
}
}
uint64 GetData64(uint32 id) const override
ObjectGuid GetGuidData(uint32 id) const override
{
switch(id)
switch (id)
{
case GO_TRIBUNAL_CONSOLE:
return goTribunalConsoleGUID;
@@ -160,12 +146,13 @@ public:
case NPC_BRANN:
return BrannGUID;
}
return 0;
return ObjectGuid::Empty;
}
uint32 GetData(uint32 id) const override
{
switch(id)
switch (id)
{
case BOSS_KRYSTALLUS:
case BOSS_MAIDEN_OF_GRIEF:
@@ -174,18 +161,20 @@ public:
case BRANN_BRONZEBEARD:
return Encounter[id];
}
return 0;
}
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target*/, uint32 /*miscvalue1*/) override
{
switch(criteria_id)
switch (criteria_id)
{
case 7590: // Brann Spankin' New (2154)
return brannAchievement;
case 7593: // Abuse the Ooze (2155)
return sjonnirAchievement;
}
return false;
}
@@ -637,7 +637,7 @@ public:
case EVENT_INTRO_FINISH:
events.Reset();
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
if (Creature* brann = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(NPC_BRANN_BRONZBEARD_ALG)))
if (Creature* brann = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(NPC_BRANN_BRONZBEARD_ALG)))
brann->AI()->DoAction(ACTION_FINISH_INTRO);
break;
case EVENT_START_COMBAT:
@@ -875,7 +875,7 @@ public:
me->GetMotionMaster()->MovePoint(_currentPoint, BrannIntroWaypoint[_currentPoint]);
break;
case EVENT_SUMMON_ALGALON:
if (me->GetInstanceScript() && !me->GetInstanceScript()->GetData64(TYPE_ALGALON))
if (me->GetInstanceScript() && !me->GetInstanceScript()->GetGuidData(TYPE_ALGALON))
if (Creature* algalon = me->GetMap()->SummonCreature(NPC_ALGALON, AlgalonSummonPos))
algalon->AI()->DoAction(ACTION_START_INTRO);
break;
@@ -1119,10 +1119,10 @@ public:
if (InstanceScript* instance = go->GetInstanceScript())
{
instance->SetData(DATA_ALGALON_SUMMON_STATE, 1);
if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetData64(GO_DOODAD_UL_SIGILDOOR_01)))
if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetGuidData(GO_DOODAD_UL_SIGILDOOR_01)))
sigil->SetGoState(GO_STATE_ACTIVE);
if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetData64(GO_DOODAD_UL_SIGILDOOR_02)))
if (GameObject* sigil = ObjectAccessor::GetGameObject(*go, instance->GetGuidData(GO_DOODAD_UL_SIGILDOOR_02)))
sigil->SetGoState(GO_STATE_ACTIVE);
}
@@ -132,7 +132,7 @@ bool IsEncounterComplete(InstanceScript* pInstance, Creature* me)
for (uint8 i = 0; i < 3; ++i)
{
uint64 guid = pInstance->GetData64(DATA_STEELBREAKER + i);
ObjectGuid guid = pInstance->GetGuidData(DATA_STEELBREAKER + i);
if (!guid)
return false;
@@ -155,7 +155,7 @@ void RespawnAssemblyOfIron(InstanceScript* pInstance, Creature* me)
for (uint8 i = 0; i < 3; ++i)
{
uint64 guid = pInstance->GetData64(DATA_STEELBREAKER + i);
ObjectGuid guid = pInstance->GetGuidData(DATA_STEELBREAKER + i);
if (!guid)
return;
@@ -166,14 +166,14 @@ void RespawnAssemblyOfIron(InstanceScript* pInstance, Creature* me)
return;
}
void RestoreAssemblyHealth(uint64 guid1, uint64 guid2, Creature* me)
void RestoreAssemblyHealth(ObjectGuid guid1, ObjectGuid guid2, Creature* me)
{
if(Creature* cr = ObjectAccessor::GetCreature(*me, guid1))
if(cr->IsAlive())
if (Creature* cr = ObjectAccessor::GetCreature(*me, guid1))
if (cr->IsAlive())
cr->SetHealth(cr->GetMaxHealth());
if(Creature* cr2 = ObjectAccessor::GetCreature(*me, guid2))
if(cr2->IsAlive())
if (Creature* cr2 = ObjectAccessor::GetCreature(*me, guid2))
if (cr2->IsAlive())
cr2->SetHealth(cr2->GetMaxHealth());
}
@@ -229,7 +229,7 @@ public:
if (!pInstance)
return;
if (Creature* boss = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_STEELBREAKER + urand(0, 2))))
if (Creature* boss = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_STEELBREAKER + urand(0, 2))))
{
switch (boss->GetEntry())
{
@@ -246,7 +246,7 @@ public:
}
for (uint8 i = 0; i < 3; ++i)
if (Creature* boss = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_STEELBREAKER + i)))
if (Creature* boss = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_STEELBREAKER + i)))
if (!boss->IsInCombat())
boss->AI()->AttackStart(who);
}
@@ -286,7 +286,7 @@ public:
}
else
{
RestoreAssemblyHealth(pInstance->GetData64(DATA_BRUNDIR), pInstance->GetData64(DATA_MOLGEIM), me);
RestoreAssemblyHealth(pInstance->GetGuidData(DATA_BRUNDIR), pInstance->GetGuidData(DATA_MOLGEIM), me);
me->CastSpell(me, SPELL_SUPERCHARGE, true);
Talk(SAY_STEELBREAKER_DEATH);
}
@@ -423,7 +423,7 @@ public:
return;
for (uint8 i = 0; i < 3; ++i)
if (Creature* boss = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_STEELBREAKER + i)))
if (Creature* boss = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_STEELBREAKER + i)))
if (!boss->IsInCombat())
boss->AI()->AttackStart(who);
}
@@ -464,7 +464,7 @@ public:
}
else
{
RestoreAssemblyHealth(pInstance->GetData64(DATA_STEELBREAKER), pInstance->GetData64(DATA_BRUNDIR), me);
RestoreAssemblyHealth(pInstance->GetGuidData(DATA_STEELBREAKER), pInstance->GetGuidData(DATA_BRUNDIR), me);
me->CastSpell(me, SPELL_SUPERCHARGE, true);
Talk(SAY_MOLGEIM_DEATH);
}
@@ -642,7 +642,7 @@ public:
return;
for (uint8 i = 0; i < 3; ++i)
if (Creature* boss = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_STEELBREAKER + i)))
if (Creature* boss = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_STEELBREAKER + i)))
if (!boss->IsInCombat())
boss->AI()->AttackStart(who);
}
@@ -684,7 +684,7 @@ public:
}
else
{
RestoreAssemblyHealth(pInstance->GetData64(DATA_STEELBREAKER), pInstance->GetData64(DATA_MOLGEIM), me);
RestoreAssemblyHealth(pInstance->GetGuidData(DATA_STEELBREAKER), pInstance->GetGuidData(DATA_MOLGEIM), me);
me->CastSpell(me, SPELL_SUPERCHARGE, true);
Talk(SAY_BRUNDIR_DEATH);
}
@@ -788,7 +788,7 @@ public:
me->CombatStop();
me->StopMoving();
me->SetReactState(REACT_PASSIVE);
me->SetUInt64Value(UNIT_FIELD_TARGET, 0);
me->SetGuidValue(UNIT_FIELD_TARGET, ObjectGuid::Empty);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
me->SendMonsterMove(_flyTarget->GetPositionX(), _flyTarget->GetPositionY(), _flyTarget->GetPositionZ() + 15, 1500, SPLINEFLAG_FLYING);
@@ -869,7 +869,7 @@ public:
void HandleInstaKill(SpellEffIndex /*effIndex*/)
{
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_STEELBREAKER)))
if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_STEELBREAKER)))
Steelbreaker->AI()->DoAction(ACTION_ADD_CHARGE);
}
@@ -898,7 +898,7 @@ public:
{
PreventDefaultAction();
if (aurEff->GetTickNumber() % 2 == 0)
GetTarget()->CastSpell(GetTarget(), SPELL_RUNE_OF_SUMMONING_SUMMON, true, nullptr, aurEff, GetTarget()->IsSummon() ? GetTarget()->ToTempSummon()->GetSummonerGUID() : 0);
GetTarget()->CastSpell(GetTarget(), SPELL_RUNE_OF_SUMMONING_SUMMON, true, nullptr, aurEff, GetTarget()->IsSummon() ? GetTarget()->ToTempSummon()->GetSummonerGUID() : ObjectGuid::Empty);
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -949,7 +949,7 @@ public:
return false;
if (InstanceScript* instance = target->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetData64(DATA_BRUNDIR)))
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetGuidData(DATA_BRUNDIR)))
return cr->AI()->GetData(DATA_BRUNDIR);
return false;
@@ -291,7 +291,7 @@ public:
void EnterCombat(Unit*) override
{
if (me->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_AURIAYA)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_AURIAYA)))
cr->SetInCombatWithZone();
}
@@ -367,7 +367,7 @@ public:
{
// inform about our death, start timer
if (me->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_AURIAYA)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_AURIAYA)))
cr->AI()->DoAction(_feralEssenceStack ? ACTION_FERAL_DEATH_WITH_STACK : ACTION_FERAL_DEATH);
if (_feralEssenceStack)
@@ -464,7 +464,7 @@ public:
{
if (target)
if (InstanceScript* instance = target->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetData64(TYPE_AURIAYA)))
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetGuidData(TYPE_AURIAYA)))
return cr->AI()->GetData(DATA_CRAZY_CAT);
return false;
@@ -480,7 +480,7 @@ public:
{
if (target)
if (InstanceScript* instance = target->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetData64(TYPE_AURIAYA)))
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetGuidData(TYPE_AURIAYA)))
return cr->AI()->GetData(DATA_NINE_LIVES);
return false;
@@ -534,24 +534,24 @@ void boss_flame_leviathan::boss_flame_leviathanAI::TurnGates(bool _start, bool _
{
// first one is ALWAYS turned on, unless leviathan is beaten
GameObject* go = nullptr;
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(DATA_LIGHTNING_WALL2))))
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(DATA_LIGHTNING_WALL2))))
go->SetGoState(GO_STATE_READY);
if (m_pInstance->GetData(TYPE_LEVIATHAN) == NOT_STARTED)
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(GO_LEVIATHAN_DOORS))))
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(GO_LEVIATHAN_DOORS))))
go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
}
else
{
GameObject* go = nullptr;
if (_death)
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(DATA_LIGHTNING_WALL1))))
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(DATA_LIGHTNING_WALL1))))
go->SetGoState(GO_STATE_ACTIVE);
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(DATA_LIGHTNING_WALL2))))
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(DATA_LIGHTNING_WALL2))))
go->SetGoState(GO_STATE_ACTIVE);
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(GO_LEVIATHAN_DOORS))))
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(GO_LEVIATHAN_DOORS))))
{
if (m_pInstance->GetData(TYPE_LEVIATHAN) == SPECIAL || m_pInstance->GetData(TYPE_LEVIATHAN) == DONE)
go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
@@ -569,16 +569,16 @@ void boss_flame_leviathan::boss_flame_leviathanAI::TurnHealStations(bool _apply)
GameObject* go = nullptr;
if (_apply)
{
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(DATA_REPAIR_STATION1))))
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(DATA_REPAIR_STATION1))))
go->SetLootState(GO_READY);
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(DATA_REPAIR_STATION2))))
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(DATA_REPAIR_STATION2))))
go->SetLootState(GO_READY);
}
else
{
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(DATA_REPAIR_STATION1))))
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(DATA_REPAIR_STATION1))))
go->SetLootState(GO_ACTIVATED);
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(DATA_REPAIR_STATION2))))
if ((go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(DATA_REPAIR_STATION2))))
go->SetLootState(GO_ACTIVATED);
}
}
@@ -800,7 +800,7 @@ public:
if (Unit* device = vehicle->GetPassenger(SEAT_DEVICE))
device->SetUInt32Value(UNIT_FIELD_FLAGS, 0); // unselectable
if (Creature* leviathan = ObjectAccessor::GetCreature(*me, _instance->GetData64(TYPE_LEVIATHAN)))
if (Creature* leviathan = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(TYPE_LEVIATHAN)))
leviathan->AI()->DoAction(ACTION_DESTROYED_TURRET);
}
@@ -1066,7 +1066,7 @@ public:
{
summons.DespawnAll();
_spellTimer = 0;
Start(false, false, 0, nullptr, false, true);
Start(false, false, ObjectGuid::Empty, nullptr, false, true);
if (Aura* aur = me->AddAura(SPELL_FREYA_DUMMY_YELLOW, me))
{
aur->SetMaxDuration(-1);
@@ -1633,7 +1633,7 @@ public:
//! Vehicle must be in use by player
bool playerFound = false;
for (SeatMap::const_iterator itr = vehicle->Seats.begin(); itr != vehicle->Seats.end() && !playerFound; ++itr)
if (IS_PLAYER_GUID(itr->second.Passenger.Guid))
if (itr->second.Passenger.Guid.IsPlayer())
playerFound = true;
return !playerFound;
@@ -260,7 +260,6 @@ public:
if (!me->IsAlive())
if (m_pInstance)
m_pInstance->SetData(TYPE_FREYA, DONE);
memset(_elderGUID, 0, sizeof(_elderGUID));
}
InstanceScript* m_pInstance;
@@ -275,7 +274,7 @@ public:
bool _backToNature;
uint8 _deforestation;
uint64 _elderGUID[3];
ObjectGuid _elderGUID[3];
void Reset() override
{
@@ -292,7 +291,8 @@ public:
if (Creature* elder = ObjectAccessor::GetCreature(*me, _elderGUID[i]))
elder->AI()->EnterEvadeMode();
_elderGUID[i] = 0;
_elderGUID[i].Clear();
}
_lumberjacked = 0;
@@ -503,7 +503,7 @@ public:
// HARD MODE CHECKS
Creature* elder = nullptr;
elder = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(NPC_ELDER_STONEBARK));
elder = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(NPC_ELDER_STONEBARK));
if (elder && elder->IsAlive())
{
elder->CastSpell(elder, SPELL_DRAINED_OF_POWER, true);
@@ -514,7 +514,7 @@ public:
_elderGUID[0] = elder->GetGUID();
}
elder = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(NPC_ELDER_IRONBRANCH));
elder = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(NPC_ELDER_IRONBRANCH));
if (elder && elder->IsAlive())
{
elder->CastSpell(elder, SPELL_DRAINED_OF_POWER, true);
@@ -525,7 +525,7 @@ public:
_elderGUID[1] = elder->GetGUID();
}
elder = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(NPC_ELDER_BRIGHTLEAF));
elder = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(NPC_ELDER_BRIGHTLEAF));
if (elder && elder->IsAlive())
{
elder->CastSpell(elder, SPELL_DRAINED_OF_POWER, true);
@@ -713,7 +713,7 @@ public:
// Lumberjacked
if (me->GetInstanceScript())
if (Creature* freya = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_FREYA)))
if (Creature* freya = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_FREYA)))
freya->AI()->DoAction(ACTION_LUMBERJACKED);
}
@@ -819,7 +819,7 @@ public:
// Lumberjacked
if (me->GetInstanceScript())
if (Creature* freya = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_FREYA)))
if (Creature* freya = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_FREYA)))
freya->AI()->DoAction(ACTION_LUMBERJACKED);
}
@@ -940,7 +940,7 @@ public:
// Lumberjacked
if (me->GetInstanceScript())
if (Creature* freya = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_FREYA)))
if (Creature* freya = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_FREYA)))
freya->AI()->DoAction(ACTION_LUMBERJACKED);
}
@@ -1108,13 +1108,13 @@ public:
{
boss_freya_summonsAI(Creature* pCreature) : ScriptedAI(pCreature)
{
_freyaGUID = me->GetInstanceScript() ? me->GetInstanceScript()->GetData64(TYPE_FREYA) : 0;
_freyaGUID = me->GetInstanceScript() ? me->GetInstanceScript()->GetGuidData(TYPE_FREYA) : ObjectGuid::Empty;
_isTrio = me->GetEntry() == NPC_ANCIENT_WATER_SPIRIT || me->GetEntry() == NPC_STORM_LASHER || me->GetEntry() == NPC_SNAPLASHER;
_hasDied = false;
}
EventMap events;
uint64 _freyaGUID;
ObjectGuid _freyaGUID;
uint8 _stackCount;
bool _hasDied;
bool _isTrio;
@@ -1251,10 +1251,10 @@ public:
{
boss_freya_nature_bombAI(Creature* pCreature) : NullCreatureAI(pCreature)
{
_goGUID = 0;
_goGUID.Clear();
}
uint64 _goGUID;
ObjectGuid _goGUID;
uint32 _explodeTimer;
void Reset() override
@@ -232,7 +232,7 @@ public:
{
me->setAttackTimer(BASE_ATTACK, 2000);
Player* target = players.at(urand(0, players.size() - 1));
me->SetUInt64Value(UNIT_FIELD_TARGET, target->GetGUID());
me->SetGuidValue(UNIT_FIELD_TARGET, target->GetGUID());
me->CastSpell(target, SPELL_VEZAX_SHADOW_CRASH, false);
events.ScheduleEvent(EVENT_RESTORE_TARGET, 750);
}
@@ -240,7 +240,7 @@ public:
break;
case EVENT_RESTORE_TARGET:
if (me->GetVictim())
me->SetUInt64Value(UNIT_FIELD_TARGET, me->GetVictim()->GetGUID());
me->SetGuidValue(UNIT_FIELD_TARGET, me->GetVictim()->GetGUID());
break;
case EVENT_SPELL_SEARING_FLAMES:
if(!me->HasAura(SPELL_SARONITE_BARRIER))
@@ -291,8 +291,8 @@ public:
events.RepeatEvent(30000);
else
{
for( std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr )
if( Creature* sv = ObjectAccessor::GetCreature(*me, *itr) )
for (ObjectGuid guid : summons)
if (Creature* sv = ObjectAccessor::GetCreature(*me, guid))
{
sv->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
sv->GetMotionMaster()->MoveIdle();
@@ -413,7 +413,7 @@ public:
// killed saronite vapors, hard mode unavailable
if( pInstance )
if( Creature* vezax = ObjectAccessor::GetCreature(*me, pInstance->GetData64(TYPE_VEZAX)) )
if( Creature* vezax = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_VEZAX)) )
vezax->AI()->DoAction(1);
}
};
@@ -435,7 +435,7 @@ public:
{
pInstance = pCreature->GetInstanceScript();
if( pInstance )
if( Creature* vezax = ObjectAccessor::GetCreature(*me, pInstance->GetData64(TYPE_VEZAX)) )
if( Creature* vezax = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_VEZAX)) )
vezax->AI()->JustSummoned(me);
timer = 0;
me->SetInCombatWithZone();
@@ -449,7 +449,7 @@ public:
me->DespawnOrUnsummon(3000);
if( pInstance )
if( Creature* vezax = ObjectAccessor::GetCreature(*me, pInstance->GetData64(TYPE_VEZAX)) )
if( Creature* vezax = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_VEZAX)) )
vezax->AI()->DoAction(2);
}
@@ -209,7 +209,7 @@ public:
InstanceScript* pInstance;
EventMap events;
SummonList summons;
uint64 Helpers[8]{ };
ObjectGuid Helpers[8];
bool berserk{ false };
bool bAchievCheese{ true };
bool bAchievGettingCold{ true };
@@ -472,7 +472,7 @@ public:
Creature* GetHelper(uint8 index)
{
return (Helpers[index] ? ObjectAccessor::GetCreature(*me, Helpers[index]) : nullptr);
return Helpers[index] ? ObjectAccessor::GetCreature(*me, Helpers[index]) : nullptr;
}
void SpawnHelpers()
@@ -647,7 +647,7 @@ public:
{
if (pInstance && doneBy)
if (pInstance->GetData(TYPE_HODIR) == NOT_STARTED)
if (Creature* hodir = ObjectAccessor::GetCreature(*me, pInstance->GetData64(TYPE_HODIR)))
if (Creature* hodir = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_HODIR)))
hodir->AI()->AttackStart(doneBy);
}
@@ -705,7 +705,7 @@ public:
{
if( GameObject* fire = me->FindNearestGameObject(194300, 1.0f) )
{
fire->SetOwnerGUID(0);
fire->SetOwnerGUID(ObjectGuid::Empty);
fire->Delete();
}
me->DespawnOrUnsummon(); // this will remove DynObjects
@@ -783,7 +783,7 @@ public:
{
if( !me->HasAura(SPELL_FLASH_FREEZE_TRAPPED_NPC) )
if( pInstance )
if( uint64 g = pInstance->GetData64(TYPE_HODIR) )
if( ObjectGuid g = pInstance->GetGuidData(TYPE_HODIR) )
if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) )
{
AttackStart(hodir);
@@ -816,7 +816,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (pInstance)
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetData64(TYPE_HODIR)))
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetGuidData(TYPE_HODIR)))
hodir->AI()->SetData(4, 1);
}
};
@@ -879,7 +879,7 @@ public:
{
if( !me->HasAura(SPELL_FLASH_FREEZE_TRAPPED_NPC) )
if( pInstance )
if( uint64 g = pInstance->GetData64(TYPE_HODIR) )
if( ObjectGuid g = pInstance->GetGuidData(TYPE_HODIR) )
if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) )
{
AttackStart(hodir);
@@ -913,7 +913,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (pInstance)
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetData64(TYPE_HODIR)))
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetGuidData(TYPE_HODIR)))
hodir->AI()->SetData(4, 1);
}
};
@@ -983,7 +983,7 @@ public:
{
if( !me->HasAura(SPELL_FLASH_FREEZE_TRAPPED_NPC) )
if( pInstance )
if( uint64 g = pInstance->GetData64(TYPE_HODIR) )
if( ObjectGuid g = pInstance->GetGuidData(TYPE_HODIR) )
if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) )
{
AttackStart(hodir);
@@ -1013,7 +1013,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (pInstance)
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetData64(TYPE_HODIR)))
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetGuidData(TYPE_HODIR)))
hodir->AI()->SetData(4, 1);
}
};
@@ -1077,7 +1077,7 @@ public:
{
if( !me->HasAura(SPELL_FLASH_FREEZE_TRAPPED_NPC) )
if( pInstance )
if( uint64 g = pInstance->GetData64(TYPE_HODIR) )
if( ObjectGuid g = pInstance->GetGuidData(TYPE_HODIR) )
if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) )
{
AttackStart(hodir);
@@ -1128,7 +1128,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (pInstance)
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetData64(TYPE_HODIR)))
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetGuidData(TYPE_HODIR)))
hodir->AI()->SetData(4, 1);
}
};
@@ -1236,7 +1236,7 @@ public:
{
if (GetStackAmount() == 2) // increasing from 2 to 3 (not checking >= to improve performance)
if (InstanceScript* pInstance = target->GetInstanceScript())
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetData64(TYPE_HODIR)))
if (Creature* hodir = pInstance->instance->GetCreature(pInstance->GetGuidData(TYPE_HODIR)))
hodir->AI()->SetData(2, 1);
ModStackAmount(1);
counter = 0;
@@ -115,7 +115,7 @@ public:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_AGGRESSIVE);
if (InstanceScript* instance = me->GetInstanceScript())
if (Creature* ignis = ObjectAccessor::GetCreature(*me, instance->GetData64(TYPE_IGNIS)))
if (Creature* ignis = ObjectAccessor::GetCreature(*me, instance->GetGuidData(TYPE_IGNIS)))
{
ignis->CastSpell(ignis, SPELL_STRENGTH_OF_THE_CREATOR, true);
AttackStart(ignis->GetVictim());
@@ -147,7 +147,7 @@ public:
Unit::Kill(attacker, me);
if (InstanceScript* instance = me->GetInstanceScript())
if (Creature* ignis = ObjectAccessor::GetCreature(*me, instance->GetData64(TYPE_IGNIS)))
if (Creature* ignis = ObjectAccessor::GetCreature(*me, instance->GetGuidData(TYPE_IGNIS)))
ignis->AI()->SetData(1337, 0);
}
}
@@ -155,7 +155,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (InstanceScript* instance = me->GetInstanceScript())
if (Creature* ignis = ObjectAccessor::GetCreature(*me, instance->GetData64(TYPE_IGNIS)))
if (Creature* ignis = ObjectAccessor::GetCreature(*me, instance->GetGuidData(TYPE_IGNIS)))
ignis->RemoveAuraFromStack(SPELL_STRENGTH_OF_THE_CREATOR);
}
@@ -385,7 +385,7 @@ public:
std::list<Creature*> icl;
me->GetCreaturesWithEntryInRange(icl, 300.0f, NPC_IRON_CONSTRUCT);
std::vector<uint64> playerGUIDs;
GuidVector playerGUIDs;
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
Player* temp = nullptr;
@@ -137,8 +137,7 @@ public:
struct boss_kologarnAI : public ScriptedAI
{
boss_kologarnAI(Creature* pCreature) : ScriptedAI(pCreature), vehicle(me->GetVehicleKit()),
_left(0), _right(0), summons(me), breathReady(false)
boss_kologarnAI(Creature* pCreature) : ScriptedAI(pCreature), vehicle(me->GetVehicleKit()), summons(me), breathReady(false)
{
m_pInstance = me->GetInstanceScript();
eyebeamTarget = nullptr;
@@ -149,7 +148,7 @@ public:
InstanceScript* m_pInstance;
Vehicle* vehicle;
uint64 _left, _right;
ObjectGuid _left, _right;
EventMap events;
SummonList summons;
@@ -323,7 +322,7 @@ public:
// left arm
if (who->GetGUID() == _left)
{
_left = 0;
_left.Clear();
if (me->IsInCombat())
{
Talk(SAY_LEFT_ARM_GONE);
@@ -332,7 +331,7 @@ public:
}
else
{
_right = 0;
_right.Clear();
if (me->IsInCombat())
{
Talk(SAY_RIGHT_ARM_GONE);
@@ -524,7 +523,7 @@ public:
{
if (!_combatStarted)
if (InstanceScript* instance = me->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*me, instance->GetData64(TYPE_KOLOGARN)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, instance->GetGuidData(TYPE_KOLOGARN)))
{
_combatStarted = true;
if (!cr->IsInCombat() && who)
@@ -561,7 +560,7 @@ public:
cr->CastSpell(cr, SPELL_RUBBLE_FALL, true);
if (me->GetInstanceScript())
if (Creature* kologarn = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_KOLOGARN)))
if (Creature* kologarn = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_KOLOGARN)))
for (uint8 i = 0; i < 5; ++i)
if (Creature* cr2 = kologarn->SummonCreature(NPC_RUBBLE_SUMMON, cr->GetPositionX() + irand(-5, 5), cr->GetPositionY() + irand(-5, 5), cr->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000))
{
@@ -572,7 +571,7 @@ public:
}
if (me->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_KOLOGARN)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_KOLOGARN)))
cr->AI()->DoAction(DATA_KOLOGARN_RUBBLE_ACHIEV);
me->ExitVehicle();
@@ -605,7 +604,7 @@ public:
if (damage > 0 && !_damaged && me->GetInstanceScript())
{
_damaged = true;
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_KOLOGARN)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_KOLOGARN)))
cr->AI()->DoAction(DATA_KOLOGARN_LOOKS_ACHIEV);
}
}
@@ -615,7 +614,7 @@ public:
if (justSpawned)
{
me->DespawnOrUnsummon(10000);
if (Creature* cr = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(TYPE_KOLOGARN)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(TYPE_KOLOGARN)))
{
me->CastSpell(cr, me->GetEntry() == NPC_EYE_LEFT ? SPELL_FOCUSED_EYEBEAM_LEFT : SPELL_FOCUSED_EYEBEAM_RIGHT, true);
}
@@ -818,7 +817,7 @@ public:
{
if (target)
if (InstanceScript* instance = target->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetData64(TYPE_KOLOGARN)))
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetGuidData(TYPE_KOLOGARN)))
return cr->AI()->GetData(DATA_KOLOGARN_LOOKS_ACHIEV);
return false;
@@ -834,7 +833,7 @@ public:
{
if (target)
if (InstanceScript* instance = target->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetData64(TYPE_KOLOGARN)))
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetGuidData(TYPE_KOLOGARN)))
return cr->AI()->GetData(DATA_KOLOGARN_RUBBLE_ACHIEV);
return false;
@@ -850,7 +849,7 @@ public:
{
if (target)
if (InstanceScript* instance = target->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetData64(TYPE_KOLOGARN)))
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetGuidData(TYPE_KOLOGARN)))
return cr->AI()->GetData(DATA_KOLOGARN_ARMS_ACHIEV);
return false;
@@ -267,10 +267,10 @@ enum ComputerTalks
TALK_COMPUTER_ZERO = 12,
};
#define GetMimiron() ObjectAccessor::GetCreature(*me, pInstance->GetData64(TYPE_MIMIRON))
#define GetLMK2() ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_MIMIRON_LEVIATHAN_MKII))
#define GetVX001() ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_MIMIRON_VX001))
#define GetACU() ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_MIMIRON_ACU))
#define GetMimiron() ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_MIMIRON))
#define GetLMK2() ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_MIMIRON_LEVIATHAN_MKII))
#define GetVX001() ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_MIMIRON_VX001))
#define GetACU() ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_MIMIRON_ACU))
class boss_mimiron : public CreatureScript
{
@@ -779,7 +779,7 @@ public:
if( pInstance )
for( uint16 i = 0; i < 3; ++i )
if( uint64 guid = pInstance->GetData64(DATA_GO_MIMIRON_DOOR_1 + i) )
if( ObjectGuid guid = pInstance->GetGuidData(DATA_GO_MIMIRON_DOOR_1 + i) )
if( GameObject* door = ObjectAccessor::GetGameObject(*me, guid) )
if( door->GetGoState() != GO_STATE_ACTIVE )
{
@@ -862,7 +862,7 @@ public:
{
if( pInstance )
for( uint16 i = 0; i < 3; ++i )
if( uint64 guid = pInstance->GetData64(DATA_GO_MIMIRON_DOOR_1 + i) )
if( ObjectGuid guid = pInstance->GetGuidData(DATA_GO_MIMIRON_DOOR_1 + i) )
if( GameObject* door = ObjectAccessor::GetGameObject(*me, guid) )
if( door->GetGoState() != GO_STATE_ACTIVE )
{
@@ -893,7 +893,7 @@ public:
{
if( pInstance )
for( uint16 i = 0; i < 3; ++i )
if( uint64 guid = pInstance->GetData64(DATA_GO_MIMIRON_DOOR_1 + i) )
if( ObjectGuid guid = pInstance->GetGuidData(DATA_GO_MIMIRON_DOOR_1 + i) )
if( GameObject* door = ObjectAccessor::GetGameObject(*me, guid) )
if( door->GetGoState() != GO_STATE_READY )
{
@@ -2257,7 +2257,7 @@ public:
if(instance->GetData(TYPE_MIMIRON) != NOT_STARTED)
return false;
if (Creature* c = ObjectAccessor::GetCreature(*go, instance->GetData64(TYPE_MIMIRON)))
if (Creature* c = ObjectAccessor::GetCreature(*go, instance->GetGuidData(TYPE_MIMIRON)))
{
c->AI()->SetData(0, 7);
c->AI()->AttackStart(player);
@@ -2292,7 +2292,7 @@ public:
}
}
std::list<uint64> FlameList;
GuidList FlameList;
EventMap events;
uint32 CreateTime;
@@ -2314,15 +2314,15 @@ public:
}
}
void RemoveFlame(uint64 guid)
void RemoveFlame(ObjectGuid guid)
{
FlameList.remove(guid);
}
void RemoveAll()
{
for( std::list<uint64>::iterator itr = FlameList.begin(); itr != FlameList.end(); ++itr )
if (Creature* c = ObjectAccessor::GetCreature(*me, (*itr)))
for (ObjectGuid guid : FlameList)
if (Creature* c = ObjectAccessor::GetCreature(*me, guid))
c->DespawnOrUnsummon();
FlameList.clear();
me->DespawnOrUnsummon();
@@ -127,8 +127,8 @@ public:
InstanceScript* pInstance;
EventMap events;
SummonList summons;
uint64 ExpeditionEngineerGUIDs[3];
uint64 CommanderGUID;
ObjectGuid ExpeditionEngineerGUIDs[3];
ObjectGuid CommanderGUID;
float cords[4][2];
bool bGroundPhase;
bool startPath;
@@ -138,8 +138,11 @@ public:
{
events.Reset();
summons.DespawnAll();
memset(&ExpeditionEngineerGUIDs, 0, sizeof(ExpeditionEngineerGUIDs));
CommanderGUID = 0;
for (uint8 i = 0; i < 3; ++i)
ExpeditionEngineerGUIDs[i].Clear();
CommanderGUID.Clear();
bGroundPhase = false;
flyTimes = 0;
@@ -206,11 +209,11 @@ public:
case SPELL_LAUNCH_CHAIN:
{
uint32 spell = 0;
if( caster->GetGUID() == pInstance->GetData64(DATA_HARPOON_FIRE_STATE_1) )
if( caster->GetGUID() == pInstance->GetGuidData(DATA_HARPOON_FIRE_STATE_1) )
spell = SPELL_CHAIN_1;
else if( caster->GetGUID() == pInstance->GetData64(DATA_HARPOON_FIRE_STATE_2) )
else if( caster->GetGUID() == pInstance->GetGuidData(DATA_HARPOON_FIRE_STATE_2) )
spell = SPELL_CHAIN_2;
else if( caster->GetGUID() == pInstance->GetData64(DATA_HARPOON_FIRE_STATE_3) )
else if( caster->GetGUID() == pInstance->GetGuidData(DATA_HARPOON_FIRE_STATE_3) )
spell = SPELL_CHAIN_3;
else
spell = SPELL_CHAIN_4;
@@ -243,7 +246,7 @@ public:
events.CancelEvent(EVENT_SPELL_FIREBALL);
events.CancelEvent(EVENT_SPELL_DEVOURING_FLAME);
events.CancelEvent(EVENT_SUMMON_MOLE_MACHINES);
me->SetTarget(0);
me->SetTarget();
me->SendMeleeAttackStop(me->GetVictim());
me->GetMotionMaster()->MoveLand(0, CORDS_GROUND, 25.0f);
}
@@ -444,7 +447,7 @@ public:
me->SetInCombatWithZone(); // just in case
if (pInstance)
for( int i = 0; i < 4; ++i )
if( uint64 guid = pInstance->GetData64(DATA_HARPOON_FIRE_STATE_1 + i) )
if( ObjectGuid guid = pInstance->GetGuidData(DATA_HARPOON_FIRE_STATE_1 + i) )
if( Creature* hfs = ObjectAccessor::GetCreature(*me, guid) )
{
me->SummonCreature(34188, hfs->GetPositionX(), hfs->GetPositionY(), hfs->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 22000);
@@ -594,7 +597,7 @@ public:
if (instance->GetData(TYPE_RAZORSCALE) == DONE)
return true;
Creature* razorscale = ObjectAccessor::GetCreature(*creature, instance->GetData64(TYPE_RAZORSCALE));
Creature* razorscale = ObjectAccessor::GetCreature(*creature, instance->GetGuidData(TYPE_RAZORSCALE));
if (!razorscale || razorscale->IsInCombat())
return true;
@@ -614,12 +617,12 @@ public:
if (!instance || instance->GetData(TYPE_RAZORSCALE) == DONE)
return true;
Creature* razorscale = ObjectAccessor::GetCreature(*creature, instance->GetData64(TYPE_RAZORSCALE));
Creature* razorscale = ObjectAccessor::GetCreature(*creature, instance->GetGuidData(TYPE_RAZORSCALE));
if (razorscale && !razorscale->IsInCombat())
{
// reset npcs NPC_HARPOON_FIRE_STATE
for (uint8 i = 0; i < 4; ++i)
if (Creature* hfs = ObjectAccessor::GetCreature(*creature, instance->GetData64(DATA_HARPOON_FIRE_STATE_1 + i)))
if (Creature* hfs = ObjectAccessor::GetCreature(*creature, instance->GetGuidData(DATA_HARPOON_FIRE_STATE_1 + i)))
hfs->AI()->SetData(1, 0);
if (razorscale->AI())
@@ -696,11 +699,11 @@ public:
{
if (pInstance)
{
if( me->GetGUID() == pInstance->GetData64(DATA_HARPOON_FIRE_STATE_1) )
if( me->GetGUID() == pInstance->GetGuidData(DATA_HARPOON_FIRE_STATE_1) )
return GO_HARPOON_GUN_1;
else if( me->GetGUID() == pInstance->GetData64(DATA_HARPOON_FIRE_STATE_2) )
else if( me->GetGUID() == pInstance->GetGuidData(DATA_HARPOON_FIRE_STATE_2) )
return GO_HARPOON_GUN_2;
else if( me->GetGUID() == pInstance->GetData64(DATA_HARPOON_FIRE_STATE_3) )
else if( me->GetGUID() == pInstance->GetGuidData(DATA_HARPOON_FIRE_STATE_3) )
return GO_HARPOON_GUN_3;
else
return GO_HARPOON_GUN_4;
@@ -745,7 +748,7 @@ public:
case 3: // shoot
if (pInstance)
{
Creature* razorscale = ObjectAccessor::GetCreature(*me, pInstance->GetData64(TYPE_RAZORSCALE));
Creature* razorscale = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_RAZORSCALE));
if (!razorscale)
return;
if (!razorscale->HasAura(value))
@@ -787,13 +790,13 @@ public:
InstanceScript* pInstance;
bool working;
uint16 timer;
uint64 fixingGUID;
ObjectGuid fixingGUID;
void Reset() override
{
working = false;
timer = 0;
fixingGUID = 0;
fixingGUID.Clear();
}
void SetData(uint32 id, uint32 /*value*/) override
@@ -803,7 +806,7 @@ public:
case 1: // start/resume repairing
working = true;
timer = 0;
fixingGUID = 0;
fixingGUID.Clear();
break;
case 2: // stop repairing
Reset();
@@ -834,14 +837,14 @@ public:
c->AI()->SetData(2, 0);
if (c->AI()->GetData(2))
fixingGUID = 0;
fixingGUID.Clear();
}
}
if (!fixingGUID)
{
Creature* razorscale = nullptr;
if( uint64 rsGUID = pInstance->GetData64(TYPE_RAZORSCALE) )
if( ObjectGuid rsGUID = pInstance->GetGuidData(TYPE_RAZORSCALE) )
razorscale = ObjectAccessor::GetCreature(*me, rsGUID);
if( !razorscale || !razorscale->IsInCombat() )
@@ -852,7 +855,7 @@ public:
}
for( int i = 0; i < 4; ++i )
if( uint64 fs_GUID = pInstance->GetData64(DATA_HARPOON_FIRE_STATE_1 + i) )
if( ObjectGuid fs_GUID = pInstance->GetGuidData(DATA_HARPOON_FIRE_STATE_1 + i) )
if( Creature* fs = ObjectAccessor::GetCreature(*me, fs_GUID) )
if (!fs->AI()->GetData(2))
{
@@ -890,7 +893,7 @@ public:
return true;
Creature* rs = nullptr;
if( uint64 rsGUID = pInstance->GetData64(TYPE_RAZORSCALE) )
if( ObjectGuid rsGUID = pInstance->GetGuidData(TYPE_RAZORSCALE) )
rs = ObjectAccessor::GetCreature(*go, rsGUID);
if( !rs || !rs->IsInCombat() )
@@ -922,7 +925,7 @@ public:
break;
}
if( uint64 g = pInstance->GetData64(npc) )
if( ObjectGuid g = pInstance->GetGuidData(npc) )
if( Creature* hfs = ObjectAccessor::GetCreature(*go, g) )
hfs->AI()->SetData(3, spell);
@@ -355,7 +355,7 @@ public:
GameObject* GetThorimObject(uint32 entry)
{
if (m_pInstance)
return ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(entry));
return ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(entry));
return nullptr;
}
@@ -845,7 +845,7 @@ public:
else if (param == ACTION_SIF_START_DOMINION)
{
if (me->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_THORIM)))
if (Creature* cr = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_THORIM)))
me->CastSpell(cr, SPELL_TOUCH_OF_DOMINION, false);
events.ScheduleEvent(EVENT_SIF_FINISH_DOMINION, 150000);
@@ -938,7 +938,7 @@ public:
{
InitWaypoint();
Reset();
Start(false, true, 0);
Start(false, true);
}
uint32 Timer;
@@ -1024,7 +1024,7 @@ public:
{
InitWaypoint();
Reset();
Start(false, true, 0);
Start(false, true);
SetDespawnAtEnd(false);
}
@@ -1130,10 +1130,10 @@ public:
void DamageTaken(Unit* who, uint32&, DamageEffectType, SpellSchoolMask) override
{
if (!_playerAttack && who && (who->GetTypeId() == TYPEID_PLAYER || IS_PLAYER_GUID(who->GetOwnerGUID())))
if (!_playerAttack && who && (who->GetTypeId() == TYPEID_PLAYER || who->GetOwnerGUID().IsPlayer()))
{
if (me->GetInstanceScript())
if (Creature* thorim = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_THORIM)))
if (Creature* thorim = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_THORIM)))
{
if (!thorim->IsInCombat())
{
@@ -1154,7 +1154,7 @@ public:
void JustDied(Unit*) override
{
if (me->GetInstanceScript())
if (Creature* thorim = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_THORIM)))
if (Creature* thorim = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_THORIM)))
thorim->AI()->DoAction(ACTION_START_TRASH_DIED);
}
@@ -1379,7 +1379,7 @@ public:
bool _leftHand;
bool _checkTarget;
float _nextTriggerPos;
uint64 _triggerLeftGUID[2], _triggerRightGUID[2];
ObjectGuid _triggerLeftGUID[2], _triggerRightGUID[2];
void Reset() override
{
@@ -1404,7 +1404,7 @@ public:
void JustDied(Unit*) override
{
if (me->GetInstanceScript())
if (GameObject* go = ObjectAccessor::GetGameObject(*me, me->GetInstanceScript()->GetData64(DATA_THORIM_FIRST_DOORS)))
if (GameObject* go = ObjectAccessor::GetGameObject(*me, me->GetInstanceScript()->GetGuidData(DATA_THORIM_FIRST_DOORS)))
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -1533,10 +1533,10 @@ public:
{
if (InstanceScript* pInstance = me->GetInstanceScript())
{
if (GameObject* go = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(DATA_THORIM_SECOND_DOORS)))
if (GameObject* go = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(DATA_THORIM_SECOND_DOORS)))
go->SetGoState(GO_STATE_ACTIVE);
if (Creature* thorim = ObjectAccessor::GetCreature(*me, pInstance->GetData64(TYPE_THORIM)))
if (Creature* thorim = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_THORIM)))
thorim->AI()->DoAction(ACTION_ALLOW_HIT);
}
}
@@ -1805,7 +1805,7 @@ public:
bool OnCheck(Player* player, Unit*) override
{
if (InstanceScript* instance = player->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*player, instance->GetData64(TYPE_THORIM)))
if (Creature* cr = ObjectAccessor::GetCreature(*player, instance->GetGuidData(TYPE_THORIM)))
return cr->AI()->GetData(DATA_HIT_BY_LIGHTNING);
return false;
@@ -1820,7 +1820,7 @@ public:
bool OnCheck(Player* player, Unit*) override
{
if (InstanceScript* instance = player->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*player, instance->GetData64(TYPE_THORIM)))
if (Creature* cr = ObjectAccessor::GetCreature(*player, instance->GetGuidData(TYPE_THORIM)))
return cr->AI()->GetData(DATA_LOSE_YOUR_ILLUSION);
return false;
@@ -160,7 +160,7 @@ public:
{
m_pInstance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEVEMENT_MUST_DECONSTRUCT_FASTER);
m_pInstance->SetData(TYPE_XT002, NOT_STARTED);
if (GameObject* pGo = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(GO_XT002_DOORS)))
if (GameObject* pGo = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(GO_XT002_DOORS)))
pGo->SetGoState(GO_STATE_ACTIVE);
}
}
@@ -197,7 +197,7 @@ public:
{
m_pInstance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEVEMENT_MUST_DECONSTRUCT_FASTER);
m_pInstance->SetData(TYPE_XT002, IN_PROGRESS);
if (GameObject* pGo = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(GO_XT002_DOORS)))
if (GameObject* pGo = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(GO_XT002_DOORS)))
pGo->SetGoState(GO_STATE_READY);
}
@@ -231,7 +231,7 @@ public:
if (m_pInstance)
{
m_pInstance->SetData(TYPE_XT002, DONE);
if (GameObject* pGo = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(GO_XT002_DOORS)))
if (GameObject* pGo = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(GO_XT002_DOORS)))
pGo->SetGoState(GO_STATE_ACTIVE);
}
@@ -458,7 +458,7 @@ public:
}
else if (param == ACTION_HIDE_HEART)
{
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_XT002)))
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_XT002)))
if (pXT002->AI())
{
pXT002->AI()->DoAction(_damageDone);
@@ -524,7 +524,7 @@ public:
{
me->SetVisible(false);
if (me->GetInstanceScript())
if (Creature* XT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_XT002)))
if (Creature* XT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_XT002)))
if (XT002->AI())
XT002->AI()->DoAction(ACTION_HEART_BROKEN);
}
@@ -566,7 +566,7 @@ public:
me->SetWalk(true);
if (me->GetInstanceScript())
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_XT002)))
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_XT002)))
{
if (pXT002->GetPositionZ() > 411.0f) // he is on stairs... idiot cryness protection
me->GetMotionMaster()->MovePoint(0, 884.028931f, -14.593809f, 409.786987f);
@@ -597,7 +597,7 @@ public:
// we reached the target :)
if (type == FOLLOW_MOTION_TYPE && me->GetInstanceScript())
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_XT002)))
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_XT002)))
{
if (pXT002->IsAlive())
{
@@ -617,7 +617,7 @@ public:
if (!_locked)
{
if (me->GetInstanceScript())
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_XT002)))
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_XT002)))
{
me->GetMotionMaster()->MoveFollow(pXT002, 0.0f, 0.0f);
_locked = true;
@@ -737,7 +737,7 @@ public:
me->SetUnitMovementFlags(MOVEMENTFLAG_WALKING);
if (me->GetInstanceScript())
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_XT002)))
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_XT002)))
{
if (pXT002->GetPositionZ() > 411.0f) // he is on stairs... idiot cryness protection
me->GetMotionMaster()->MovePoint(0, 884.028931f, -14.593809f, 409.786987f);
@@ -754,8 +754,8 @@ public:
_boomed = true; // Prevent recursive calls
WorldPacket data(SMSG_SPELLINSTAKILLLOG, 8 + 8 + 4);
data << uint64(me->GetGUID());
data << uint64(me->GetGUID());
data << me->GetGUID();
data << me->GetGUID();
data << uint32(SPELL_BOOM);
me->SendMessageToSet(&data, false);
@@ -804,7 +804,7 @@ public:
if (!_locked)
{
if (me->GetInstanceScript())
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_XT002)))
if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_XT002)))
{
me->GetMotionMaster()->MoveFollow(pXT002, 0.0f, 0.0f);
_locked = true;
@@ -1047,7 +1047,7 @@ public:
{
if (target)
if (InstanceScript* instance = target->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetData64(TYPE_XT002)))
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetGuidData(TYPE_XT002)))
return cr->AI()->GetData(DATA_XT002_NERF_ENGINEERING);
return false;
@@ -1063,7 +1063,7 @@ public:
{
if (target)
if (InstanceScript* instance = target->GetInstanceScript())
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetData64(TYPE_XT002)))
if (Creature* cr = ObjectAccessor::GetCreature(*target, instance->GetGuidData(TYPE_XT002)))
return cr->AI()->GetData(DATA_XT002_GRAVITY_ACHIEV);
return false;
@@ -341,7 +341,7 @@ public:
SummonList summons;
uint32 _initFight;
uint64 _keepersGUID[4];
ObjectGuid _keepersGUID[4];
uint8 _summonedGuardiansCount;
uint32 _p2TalkTimer;
bool _secondPhase;
@@ -427,7 +427,10 @@ public:
SpawnClouds();
_initFight = 1;
memset(_keepersGUID, 0, sizeof(_keepersGUID));
for (uint8 i = 0; i < 4; ++i)
_keepersGUID[i].Clear();
_summonedGuardiansCount = 0;
_p2TalkTimer = 0;
_secondPhase = false;
@@ -440,7 +443,7 @@ public:
m_pInstance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, CRITERIA_NOT_GETTING_OLDER);
m_pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_SANITY);
m_pInstance->SetData(TYPE_YOGGSARON, NOT_STARTED);
if (GameObject* go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(GO_YOGG_SARON_DOORS)))
if (GameObject* go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(GO_YOGG_SARON_DOORS)))
go->SetGoState(GO_STATE_ACTIVE);
}
}
@@ -766,7 +769,7 @@ public:
me->SummonCreature(NPC_VOICE_OF_YOGG_SARON, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
if (m_pInstance)
if (GameObject* go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(GO_YOGG_SARON_DOORS)))
if (GameObject* go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(GO_YOGG_SARON_DOORS)))
go->SetGoState(GO_STATE_READY);
events.ScheduleEvent(EVENT_SARA_P1_SPELLS, 0, 1, EVENT_PHASE_ONE);
@@ -883,7 +886,7 @@ public:
{
InitWaypoint();
Reset();
Start(false, true, 0, 0, false, true);
Start(false, true, ObjectGuid::Empty, nullptr, false, true);
}
uint32 _checkTimer;
@@ -895,7 +898,7 @@ public:
_isSummoning = false;
if (me->GetInstanceScript())
if (Creature* sara = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(NPC_SARA)))
if (Creature* sara = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(NPC_SARA)))
sara->AI()->JustSummoned(cr);
}
@@ -1069,9 +1072,9 @@ public:
if (m_pInstance)
{
m_pInstance->SetData(TYPE_YOGGSARON, DONE);
if (Creature* sara = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(NPC_SARA)))
if (Creature* sara = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(NPC_SARA)))
sara->AI()->DoAction(ACTION_YOGG_SARON_DEATH);
if (GameObject* go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetData64(GO_YOGG_SARON_DOORS)))
if (GameObject* go = ObjectAccessor::GetGameObject(*me, m_pInstance->GetGuidData(GO_YOGG_SARON_DOORS)))
go->SetGoState(GO_STATE_ACTIVE);
}
@@ -1345,7 +1348,7 @@ public:
{
// Stun
if (me->GetInstanceScript())
if(Creature* sara = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(NPC_SARA)))
if(Creature* sara = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(NPC_SARA)))
sara->AI()->DoAction(MINUTE * IN_MILLISECONDS - std::min((uint32)MINUTE * IN_MILLISECONDS, _induceTimer));
_induceTimer = 0;
@@ -1412,7 +1415,7 @@ public:
me->CastSpell(me, SPELL_BRAIN_HURT_VISUAL, true);
if (me->GetInstanceScript())
if(Creature* sara = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(NPC_SARA)))
if(Creature* sara = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(NPC_SARA)))
sara->AI()->DoAction(ACTION_BRAIN_DAMAGED);
}
}
@@ -1601,11 +1604,11 @@ public:
{
SetCombatMovement(false);
_checkTimer = 1;
_playerGUID = 0;
_playerGUID.Clear();
}
uint32 _checkTimer;
uint64 _playerGUID;
ObjectGuid _playerGUID;
Unit* SelectConstrictTarget()
{
@@ -1877,17 +1880,17 @@ public:
bool _running;
int32 _checkTimer;
uint8 _step;
uint64 _championGUID;
uint64 _yoggGUID;
ObjectGuid _championGUID;
ObjectGuid _yoggGUID;
void Reset() override
{
_running = true;
_checkTimer = 0;
_step = 0;
_championGUID = 0;
_championGUID.Clear();
if (me->GetInstanceScript())
_yoggGUID = me->GetInstanceScript()->GetData64(TYPE_YOGGSARON);
_yoggGUID = me->GetInstanceScript()->GetGuidData(TYPE_YOGGSARON);
}
void NextStep(const uint32 time)
@@ -1896,7 +1899,7 @@ public:
_checkTimer = time;
}
void Say(std::string text, uint64 guid, bool yell, uint32 soundId)
void Say(std::string text, ObjectGuid guid, bool yell, uint32 soundId)
{
Creature* creature = guid ? ObjectAccessor::GetCreature(*me, guid) : me;
if (!creature)
@@ -1946,7 +1949,7 @@ public:
case 1:
if (Creature* cr = me->FindNearestCreature(NPC_IMMOLATED_CHAMPION, 50))
_championGUID = cr->GetGUID();
Say("Your resilience is admirable.", 0, false, LK_1);
Say("Your resilience is admirable.", ObjectGuid::Empty, false, LK_1);
NextStep(7000);
break;
case 2:
@@ -1958,7 +1961,7 @@ public:
NextStep(6500);
break;
case 4:
Say("I will break you as I broke him.", 0, false, LK_2);
Say("I will break you as I broke him.", ObjectGuid::Empty, false, LK_2);
NextStep(7500);
break;
case 5:
@@ -1991,17 +1994,17 @@ public:
bool _running;
int32 _checkTimer;
uint8 _step;
uint64 _garonaGUID;
uint64 _yoggGUID;
ObjectGuid _garonaGUID;
ObjectGuid _yoggGUID;
void Reset() override
{
_running = true;
_checkTimer = 0;
_step = 0;
_garonaGUID = 0;
_garonaGUID.Clear();
if (me->GetInstanceScript())
_yoggGUID = me->GetInstanceScript()->GetData64(TYPE_YOGGSARON);
_yoggGUID = me->GetInstanceScript()->GetGuidData(TYPE_YOGGSARON);
}
void NextStep(const uint32 time)
@@ -2010,7 +2013,7 @@ public:
_checkTimer = time;
}
void Say(std::string text, uint64 guid, bool yell, uint32 soundId)
void Say(std::string text, ObjectGuid guid, bool yell, uint32 soundId)
{
Creature* creature = guid ? ObjectAccessor::GetCreature(*me, guid) : me;
if (!creature)
@@ -2080,7 +2083,7 @@ public:
NextStep(2500);
break;
case 6:
Say("We will hold until the reinforcements come. As long as men with stout hearts are manning the walls and throne Stormwind will hold.", 0, false, LL_1);
Say("We will hold until the reinforcements come. As long as men with stout hearts are manning the walls and throne Stormwind will hold.", ObjectGuid::Empty, false, LL_1);
NextStep(10000);
break;
case 7:
@@ -2113,7 +2116,7 @@ public:
bool _running;
int32 _checkTimer;
uint8 _step;
uint64 _yoggGUID;
ObjectGuid _yoggGUID;
void Reset() override
{
@@ -2121,7 +2124,7 @@ public:
_checkTimer = 0;
_step = 0;
if (me->GetInstanceScript())
_yoggGUID = me->GetInstanceScript()->GetData64(TYPE_YOGGSARON);
_yoggGUID = me->GetInstanceScript()->GetGuidData(TYPE_YOGGSARON);
}
void NextStep(const uint32 time)
@@ -2130,9 +2133,9 @@ public:
_checkTimer = time;
}
void Say(std::string text, uint64 guid, bool yell, uint32 soundId)
void Say(std::string text, ObjectGuid guid, bool yell, uint32 soundId)
{
Creature* creature = guid ? ObjectAccessor::GetCreature(*me, guid) : me;
Creature* creature = !guid ? ObjectAccessor::GetCreature(*me, guid) : me;
if (!creature)
return;
@@ -2178,7 +2181,7 @@ public:
NextStep(5000);
break;
case 1:
Say("It is done... All have been given that which must be given. I now seal the Dragon Soul forever...", 0, false, NEL_1);
Say("It is done... All have been given that which must be given. I now seal the Dragon Soul forever...", ObjectGuid::Empty, false, NEL_1);
NextStep(10000);
break;
case 2:
@@ -2187,7 +2190,7 @@ public:
NextStep(4000);
break;
case 3:
Say("For it to be as it must, yes.", 0, false, NEL_2);
Say("For it to be as it must, yes.", ObjectGuid::Empty, false, NEL_2);
NextStep(4000);
break;
case 4:
@@ -2223,7 +2226,7 @@ public:
}
EventMap events;
std::vector<uint64> _targets;
GuidVector _targets;
uint32 _current;
void Reset() override
@@ -2237,7 +2240,7 @@ public:
{
// Drive Me Crazy achievement failed
if (me->GetInstanceScript())
if (Creature* yogg = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(TYPE_YOGGSARON)))
if (Creature* yogg = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(TYPE_YOGGSARON)))
yogg->AI()->DoAction(ACTION_FAILED_DRIVE_ME_CRAZY);
events.ScheduleEvent(40, 8000);
@@ -2252,7 +2255,7 @@ public:
{
case 40:
{
uint64 _guid = _targets.at(_current);
ObjectGuid _guid = _targets.at(_current);
++_current;
if (Player* player = ObjectAccessor::GetPlayer(*me, _guid))
@@ -2365,7 +2368,7 @@ public:
}
protected:
uint64 _targetGUID;
ObjectGuid _targetGUID;
};
AuraScript* GetAuraScript() const override
@@ -2969,7 +2972,7 @@ public:
bool OnCheck(Player* player, Unit* /*target*/ /*Yogg-Saron*/) override
{
if (player->GetInstanceScript())
if (Creature* sara = ObjectAccessor::GetCreature(*player, player->GetInstanceScript()->GetData64(NPC_SARA)))
if (Creature* sara = ObjectAccessor::GetCreature(*player, player->GetInstanceScript()->GetGuidData(NPC_SARA)))
return sara->GetAI()->GetData(DATA_GET_KEEPERS_COUNT) <= _keepersCount;
return false;
@@ -2990,7 +2993,7 @@ public:
bool OnCheck(Player* player, Unit* /*target*/ /*Yogg-Saron*/) override
{
if (player->GetInstanceScript())
if (Creature* sara = ObjectAccessor::GetCreature(*player, player->GetInstanceScript()->GetData64(NPC_BRAIN_OF_YOGG_SARON)))
if (Creature* sara = ObjectAccessor::GetCreature(*player, player->GetInstanceScript()->GetGuidData(NPC_BRAIN_OF_YOGG_SARON)))
return sara->GetAI()->GetData(DATA_GET_CURRENT_ILLUSION) == _requiredIllusion;
return false;
@@ -37,164 +37,111 @@ public:
int m_difficulty;
// Bosses
uint64 m_uiLeviathanGUID;
uint64 m_uiIgnisGUID;
uint64 m_uiRazorscaleGUID;
uint64 m_uiXT002GUID;
uint64 m_auiAssemblyGUIDs[3];
uint64 m_uiKologarnGUID;
uint64 m_uiAuriayaGUID;
uint64 m_uiMimironGUID;
uint64 m_uiHodirGUID;
uint64 m_uiThorimGUID;
uint64 m_uiFreyaGUID;
uint64 m_uiVezaxGUID;
uint64 m_uiYoggSaronGUID;
uint64 m_uiAlgalonGUID;
ObjectGuid m_uiLeviathanGUID;
ObjectGuid m_uiIgnisGUID;
ObjectGuid m_uiRazorscaleGUID;
ObjectGuid m_uiXT002GUID;
ObjectGuid m_auiAssemblyGUIDs[3];
ObjectGuid m_uiKologarnGUID;
ObjectGuid m_uiAuriayaGUID;
ObjectGuid m_uiMimironGUID;
ObjectGuid m_uiHodirGUID;
ObjectGuid m_uiThorimGUID;
ObjectGuid m_uiFreyaGUID;
ObjectGuid m_uiVezaxGUID;
ObjectGuid m_uiYoggSaronGUID;
ObjectGuid m_uiAlgalonGUID;
// Flame Leviathan
uint64 m_leviathanDoorsGUID;
uint64 m_leviathanVisualTowers[4][2];
uint64 m_RepairSGUID[2];
uint64 m_lightningWalls[2];
ObjectGuid m_leviathanDoorsGUID;
ObjectGuid m_leviathanVisualTowers[4][2];
ObjectGuid m_RepairSGUID[2];
ObjectGuid m_lightningWalls[2];
bool m_leviathanTowers[4];
std::list<uint64> _leviathanVehicles;
GuidList _leviathanVehicles;
uint32 m_unbrokenAchievement;
uint32 m_mageBarrier;
// Razorscale
uint64 m_RazorscaleHarpoonFireStateGUID[4];
ObjectGuid m_RazorscaleHarpoonFireStateGUID[4];
// XT-002
uint64 m_xt002DoorsGUID;
ObjectGuid m_xt002DoorsGUID;
// Kologarn
uint64 KologarnDoorGUID;
ObjectGuid KologarnDoorGUID;
// Assembly of Iron
uint64 m_assemblyDoorsGUID;
uint64 m_archivumDoorsGUID;
ObjectGuid m_assemblyDoorsGUID;
ObjectGuid m_archivumDoorsGUID;
// Thorim
uint64 m_thorimGameobjectsGUID[5];
ObjectGuid m_thorimGameobjectsGUID[5];
// Hodir's chests
bool hmHodir;
uint64 m_hodirNormalChest;
uint64 m_hodirHardmodeChest;
ObjectGuid m_hodirNormalChest;
ObjectGuid m_hodirHardmodeChest;
Position normalChestPosition = { 1967.152588f, -204.188461f, 432.686951f, 5.50957f };
Position hardChestPosition = { 2035.94600f, -202.084885f, 432.686859f, 3.164077f };
// Mimiron
uint64 m_MimironDoor[3];
uint64 m_MimironLeviathanMKIIguid;
uint64 m_MimironVX001guid;
uint64 m_MimironACUguid;
ObjectGuid m_MimironDoor[3];
ObjectGuid m_MimironLeviathanMKIIguid;
ObjectGuid m_MimironVX001guid;
ObjectGuid m_MimironACUguid;
// Freya
uint64 m_FreyaElder[3];
ObjectGuid m_FreyaElder[3];
uint32 m_conspeedatoryAttempt;
// Yogg-Saron
uint64 m_saraGUID;
uint64 m_yoggsaronBrainGUID;
uint64 m_yoggsaronDoorsGUID;
ObjectGuid m_saraGUID;
ObjectGuid m_yoggsaronBrainGUID;
ObjectGuid m_yoggsaronDoorsGUID;
// Algalon
uint64 m_algalonSigilDoorGUID[3];
uint64 m_algalonFloorGUID[2];
uint64 m_algalonUniverseGUID;
uint64 m_algalonTrapdoorGUID;
uint64 m_brannBronzebeardAlgGUID;
uint64 m_brannBronzebeardBaseCamp;
ObjectGuid m_algalonSigilDoorGUID[3];
ObjectGuid m_algalonFloorGUID[2];
ObjectGuid m_algalonUniverseGUID;
ObjectGuid m_algalonTrapdoorGUID;
ObjectGuid m_brannBronzebeardAlgGUID;
ObjectGuid m_brannBronzebeardBaseCamp;
uint32 m_algalonTimer;
// Shared
EventMap _events;
bool m_mimironTramUsed;
uint64 m_mimironTramGUID;
uint64 m_keepersgateGUID;
uint64 m_keepersGossipGUID[4];
ObjectGuid m_mimironTramGUID;
ObjectGuid m_keepersgateGUID;
ObjectGuid m_keepersGossipGUID[4];
void Initialize() override
{
// Bosses
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
C_of_Ulduar_MASK = 0;
memset(&m_auiAssemblyGUIDs, 0, sizeof(m_auiAssemblyGUIDs));
m_uiLeviathanGUID = 0;
m_uiIgnisGUID = 0;
m_uiRazorscaleGUID = 0;
m_uiXT002GUID = 0;
m_uiKologarnGUID = 0;
m_uiAuriayaGUID = 0;
m_uiMimironGUID = 0;
m_uiHodirGUID = 0;
m_uiThorimGUID = 0;
m_uiFreyaGUID = 0;
m_uiVezaxGUID = 0;
m_uiYoggSaronGUID = 0;
m_uiAlgalonGUID = 0;
// Flame Leviathan
memset(&m_leviathanTowers, 1, sizeof(m_leviathanTowers));
memset(&m_leviathanVisualTowers, 0, sizeof(m_leviathanVisualTowers));
memset(&m_RepairSGUID, 0, sizeof(m_RepairSGUID));
memset(&m_lightningWalls, 0, sizeof(m_lightningWalls));
m_leviathanDoorsGUID = 0;
for (uint8 i = 0; i < 4; ++i)
m_leviathanTowers[i] = false;
_leviathanVehicles.clear();
m_unbrokenAchievement = 1;
m_mageBarrier = 0;
m_brannBronzebeardBaseCamp = 0;
// Razorscale
memset(&m_RazorscaleHarpoonFireStateGUID, 0, sizeof(m_RazorscaleHarpoonFireStateGUID));
// XT-002
m_xt002DoorsGUID = 0;
// Kologarn Door
// Assembly of Iron
m_assemblyDoorsGUID = 0;
m_archivumDoorsGUID = 0;
// Thorim
memset(&m_thorimGameobjectsGUID, 0, sizeof(m_thorimGameobjectsGUID));
// Hodir
m_hodirNormalChest = 0;
m_hodirHardmodeChest = 0;
hmHodir = true; // If players fail the Hardmode then becomes false
// Mimiron
memset(&m_MimironDoor, 0, sizeof(m_MimironDoor));
m_MimironLeviathanMKIIguid = 0;
m_MimironVX001guid = 0;
m_MimironACUguid = 0;
// Freya
memset(&m_FreyaElder, 0, sizeof(m_FreyaElder));
m_conspeedatoryAttempt = 0;
// Yogg-Saron
m_saraGUID = 0;
m_yoggsaronBrainGUID = 0;
m_yoggsaronDoorsGUID = 0;
// Algalon
memset(&m_algalonSigilDoorGUID, 0, sizeof(m_algalonSigilDoorGUID));
memset(&m_algalonFloorGUID, 0, sizeof(m_algalonFloorGUID));
m_algalonUniverseGUID = 0;
m_algalonTrapdoorGUID = 0;
m_brannBronzebeardAlgGUID = 0;
m_algalonTimer = 0;
// Shared
_events.Reset();
memset(&m_keepersGossipGUID, 0, sizeof(m_keepersGossipGUID));
m_mimironTramUsed = false;
m_mimironTramGUID = 0;
m_keepersgateGUID = 0;
}
void FillInitialWorldStates(WorldPacket& packet) override
@@ -457,7 +404,7 @@ public:
{
case NPC_BRANN_BRONZBEARD_ALG:
if (m_brannBronzebeardAlgGUID == creature->GetGUID())
m_brannBronzebeardAlgGUID = 0;
m_brannBronzebeardAlgGUID.Clear();
break;
}
}
@@ -468,7 +415,7 @@ public:
go->SetGoState(state);
}
void ShowKeeperGossip(uint8 type, Creature* cr, uint64 guid = 0)
void ShowKeeperGossip(uint8 type, Creature* cr, ObjectGuid guid = ObjectGuid::Empty)
{
if (!cr)
{
@@ -739,7 +686,7 @@ public:
{
hmHodir = false;
go->Delete();
m_hodirHardmodeChest = 0;
m_hodirHardmodeChest.Clear();
}
break;
case TYPE_WATCHERS:
@@ -788,27 +735,27 @@ public:
return;
case TYPE_ALGALON:
m_auiEncounter[type] = data;
if (GameObject* go = instance->GetGameObject(GetData64(GO_DOODAD_UL_SIGILDOOR_03)))
if (GameObject* go = instance->GetGameObject(GetGuidData(GO_DOODAD_UL_SIGILDOOR_03)))
{
go->SetGoState(data != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
go->EnableCollision(false);
}
if (GameObject* go = instance->GetGameObject(GetData64(GO_DOODAD_UL_UNIVERSEFLOOR_01)))
if (GameObject* go = instance->GetGameObject(GetGuidData(GO_DOODAD_UL_UNIVERSEFLOOR_01)))
{
go->SetGoState(data != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
go->EnableCollision(false);
}
if (GameObject* go = instance->GetGameObject(GetData64(GO_DOODAD_UL_UNIVERSEFLOOR_02)))
if (GameObject* go = instance->GetGameObject(GetGuidData(GO_DOODAD_UL_UNIVERSEFLOOR_02)))
{
go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
go->EnableCollision(false);
}
if (GameObject* go = instance->GetGameObject(GetData64(GO_DOODAD_UL_UNIVERSEGLOBE01)))
if (GameObject* go = instance->GetGameObject(GetGuidData(GO_DOODAD_UL_UNIVERSEGLOBE01)))
{
go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
go->EnableCollision(false);
}
if (GameObject* go = instance->GetGameObject(GetData64(GO_DOODAD_UL_ULDUAR_TRAPDOOR_03)))
if (GameObject* go = instance->GetGameObject(GetGuidData(GO_DOODAD_UL_ULDUAR_TRAPDOOR_03)))
{
go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
go->EnableCollision(false);
@@ -848,7 +795,7 @@ public:
if (type == TYPE_FREYA && data == DONE)
{
std::list<GameObject*> goList;
if (Creature* freya = instance->GetCreature(GetData64(TYPE_FREYA)))
if (Creature* freya = instance->GetCreature(GetGuidData(TYPE_FREYA)))
{
freya->GetGameObjectListWithEntryInGrid(goList, 191019 /*Adder's Tongue*/, 333.0f);
freya->GetGameObjectListWithEntryInGrid(goList, 190176 /*Frost Lotus*/, 333.0f);
@@ -873,9 +820,9 @@ public:
}
}
uint64 GetData64(uint32 data) const override
ObjectGuid GetGuidData(uint32 data) const override
{
switch(data)
switch (data)
{
// Bosses
case TYPE_LEVIATHAN:
@@ -998,7 +945,7 @@ public:
return m_brannBronzebeardAlgGUID;
}
return 0;
return ObjectGuid::Empty;
}
uint32 GetData(uint32 type) const override
@@ -1272,8 +1219,8 @@ void instance_ulduar::instance_ulduar_InstanceMapScript::SpawnLeviathanEncounter
{
if (!_leviathanVehicles.empty())
{
for (std::list<uint64>::iterator itr = _leviathanVehicles.begin(); itr != _leviathanVehicles.end(); ++itr)
if (Creature* cr = instance->GetCreature(*itr))
for (ObjectGuid guid : _leviathanVehicles)
if (Creature* cr = instance->GetCreature(guid))
if (Vehicle* veh = cr->GetVehicleKit())
veh->Dismiss();
@@ -148,11 +148,11 @@ public:
{
npc_ulduar_storm_tempered_keeperAI(Creature* creature) : ScriptedAI(creature)
{
otherGUID = 0;
otherGUID.Clear();
}
EventMap events;
uint64 otherGUID;
ObjectGuid otherGUID;
void Reset() override
{
@@ -106,13 +106,13 @@ public:
InstanceScript* pInstance;
EventMap events;
SummonList summons;
uint64 ValkyrGUID;
uint64 ThrowGUID;
ObjectGuid ValkyrGUID;
ObjectGuid ThrowGUID;
void Reset() override
{
ValkyrGUID = 0;
ThrowGUID = 0;
ValkyrGUID.Clear();
ThrowGUID.Clear();
events.Reset();
summons.DespawnAll();
me->SetDisplayId(DISPLAYID_DEFAULT);
@@ -367,7 +367,7 @@ public:
c->DespawnOrUnsummon();
summons.DespawnAll();
}
ThrowGUID = 0;
ThrowGUID.Clear();
SetEquipmentSlots(true);
break;
}
@@ -55,7 +55,7 @@ public:
struct npc_frost_tombAI : public NullCreatureAI
{
npc_frost_tombAI(Creature* c) : NullCreatureAI(c), PrisonerGUID(0)
npc_frost_tombAI(Creature* c) : NullCreatureAI(c)
{
if (TempSummon* t = c->ToTempSummon())
if (Unit* s = t->GetSummoner())
@@ -70,7 +70,7 @@ public:
c->CastSpell(s, SPELL_FROST_TOMB_AURA, true);
}
}
uint64 PrisonerGUID;
ObjectGuid PrisonerGUID;
void JustDied(Unit* killer) override
{
@@ -120,7 +120,7 @@ public:
if (pInstance)
{
pInstance->SetData(DATA_DALRONN_AND_SKARVALD, IN_PROGRESS);
if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetData64(DATA_DALRONN)))
if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_DALRONN)))
{
if (!dalronn->IsInCombat() && who)
{
@@ -146,7 +146,7 @@ public:
if (pInstance)
{
if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetData64(DATA_DALRONN)))
if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_DALRONN)))
{
if (dalronn->isDead())
{
@@ -288,7 +288,7 @@ public:
if (pInstance)
{
pInstance->SetData(DATA_DALRONN_AND_SKARVALD, IN_PROGRESS);
if (Creature* skarvald = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SKARVALD)))
if (Creature* skarvald = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SKARVALD)))
{
if (!skarvald->IsInCombat() && who)
{
@@ -320,7 +320,7 @@ public:
if (pInstance)
{
if (Creature* skarvald = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SKARVALD)))
if (Creature* skarvald = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SKARVALD)))
{
if (skarvald->isDead())
{
@@ -25,19 +25,19 @@ public:
uint32 ForgeEventMask;
std::string str_data;
uint64 GO_ForgeBellowGUID[3];
uint64 GO_ForgeFireGUID[3];
uint64 GO_ForgeAnvilGUID[3];
uint64 GO_PortcullisGUID[2];
ObjectGuid GO_ForgeBellowGUID[3];
ObjectGuid GO_ForgeFireGUID[3];
ObjectGuid GO_ForgeAnvilGUID[3];
ObjectGuid GO_PortcullisGUID[2];
uint64 NPC_KelesethGUID;
uint64 NPC_DalronnGUID;
uint64 NPC_SkarvaldGUID;
uint64 NPC_DalronnGhostGUID;
uint64 NPC_SkarvaldGhostGUID;
uint64 NPC_IngvarGUID;
uint64 NPC_DarkRangerMarrahGUID;
uint64 NPC_SpecialDrakeGUID;
ObjectGuid NPC_KelesethGUID;
ObjectGuid NPC_DalronnGUID;
ObjectGuid NPC_SkarvaldGUID;
ObjectGuid NPC_DalronnGhostGUID;
ObjectGuid NPC_SkarvaldGhostGUID;
ObjectGuid NPC_IngvarGUID;
ObjectGuid NPC_DarkRangerMarrahGUID;
ObjectGuid NPC_SpecialDrakeGUID;
bool bRocksAchiev;
void Initialize() override
@@ -45,19 +45,6 @@ public:
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
ForgeEventMask = 0;
memset(&GO_ForgeBellowGUID, 0, sizeof(GO_ForgeBellowGUID));
memset(&GO_ForgeFireGUID, 0, sizeof(GO_ForgeFireGUID));
memset(&GO_ForgeAnvilGUID, 0, sizeof(GO_ForgeAnvilGUID));
memset(&GO_PortcullisGUID, 0, sizeof(GO_PortcullisGUID));
NPC_KelesethGUID = 0;
NPC_DalronnGUID = 0;
NPC_SkarvaldGUID = 0;
NPC_DalronnGhostGUID = 0;
NPC_SkarvaldGhostGUID = 0;
NPC_IngvarGUID = 0;
NPC_DarkRangerMarrahGUID = 0;
NPC_SpecialDrakeGUID = 0;
bRocksAchiev = true;
}
@@ -123,47 +110,47 @@ public:
{
case GO_BELLOW_1:
GO_ForgeBellowGUID[0] = go->GetGUID();
if (ForgeEventMask & 1) HandleGameObject(0, true, go);
if (ForgeEventMask & 1) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_BELLOW_2:
GO_ForgeBellowGUID[1] = go->GetGUID();
if (ForgeEventMask & 2) HandleGameObject(0, true, go);
if (ForgeEventMask & 2) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_BELLOW_3:
GO_ForgeBellowGUID[2] = go->GetGUID();
if (ForgeEventMask & 4) HandleGameObject(0, true, go);
if (ForgeEventMask & 4) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_FORGEFIRE_1:
GO_ForgeFireGUID[0] = go->GetGUID();
if (ForgeEventMask & 1) HandleGameObject(0, true, go);
if (ForgeEventMask & 1) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_FORGEFIRE_2:
GO_ForgeFireGUID[1] = go->GetGUID();
if (ForgeEventMask & 2) HandleGameObject(0, true, go);
if (ForgeEventMask & 2) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_FORGEFIRE_3:
GO_ForgeFireGUID[2] = go->GetGUID();
if (ForgeEventMask & 4) HandleGameObject(0, true, go);
if (ForgeEventMask & 4) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GLOWING_ANVIL_1:
GO_ForgeAnvilGUID[0] = go->GetGUID();
if (ForgeEventMask & 1) HandleGameObject(0, true, go);
if (ForgeEventMask & 1) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GLOWING_ANVIL_2:
GO_ForgeAnvilGUID[1] = go->GetGUID();
if (ForgeEventMask & 2) HandleGameObject(0, true, go);
if (ForgeEventMask & 2) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GLOWING_ANVIL_3:
GO_ForgeAnvilGUID[2] = go->GetGUID();
if (ForgeEventMask & 4) HandleGameObject(0, true, go);
if (ForgeEventMask & 4) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GIANT_PORTCULLIS_1:
GO_PortcullisGUID[0] = go->GetGUID();
if (m_auiEncounter[2] == DONE) HandleGameObject(0, true, go);
if (m_auiEncounter[2] == DONE) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GIANT_PORTCULLIS_2:
GO_PortcullisGUID[1] = go->GetGUID();
if (m_auiEncounter[2] == DONE) HandleGameObject(0, true, go);
if (m_auiEncounter[2] == DONE) HandleGameObject(ObjectGuid::Empty, true, go);
break;
}
}
@@ -197,10 +184,10 @@ public:
c->AI()->DoAction(-1);
c->DespawnOrUnsummon();
}
NPC_DalronnGhostGUID = 0;
NPC_DalronnGhostGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_SkarvaldGhostGUID) )
c->DespawnOrUnsummon();
NPC_SkarvaldGhostGUID = 0;
NPC_SkarvaldGhostGUID.Clear();
}
if (data == DONE)
{
@@ -209,10 +196,10 @@ public:
c->AI()->DoAction(-1);
c->DespawnOrUnsummon();
}
NPC_DalronnGhostGUID = 0;
NPC_DalronnGhostGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_SkarvaldGhostGUID) )
c->DespawnOrUnsummon();
NPC_SkarvaldGhostGUID = 0;
NPC_SkarvaldGhostGUID.Clear();
}
m_auiEncounter[1] = data;
@@ -284,9 +271,9 @@ public:
}
}
uint64 GetData64(uint32 id) const override
ObjectGuid GetGuidData(uint32 id) const override
{
switch(id)
switch (id)
{
case DATA_KELESETH:
return NPC_KelesethGUID;
@@ -297,12 +284,13 @@ public:
case DATA_INGVAR:
return NPC_IngvarGUID;
}
return 0;
return ObjectGuid::Empty;
}
uint32 GetData(uint32 id) const override
{
switch(id)
switch (id)
{
case DATA_KELESETH:
case DATA_DALRONN_AND_SKARVALD:
@@ -313,6 +301,7 @@ public:
case DATA_FORGE_3:
return ForgeEventMask & (uint32)(1 << (id - 100));
}
return 0;
}
@@ -114,7 +114,7 @@ public:
InstanceScript* m_pInstance;
EventMap events;
SummonList summons;
uint64 OrbGUID;
ObjectGuid OrbGUID;
uint8 Counter;
uint8 RandomUnfreeze[4];
@@ -140,7 +140,7 @@ public:
events.Reset();
summons.DoAction(ACTION_DESPAWN_ADDS);
summons.DespawnAll();
OrbGUID = 0;
OrbGUID.Clear();
Counter = 0;
me->CastSpell(me, SPELL_FREEZE, true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
@@ -151,7 +151,7 @@ public:
m_pInstance->SetData(DATA_GORTOK_PALEHOOF, NOT_STARTED);
// Reset statue
if (GameObject* statisGenerator = m_pInstance->instance->GetGameObject(m_pInstance->GetData64(STATIS_GENERATOR)))
if (GameObject* statisGenerator = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(STATIS_GENERATOR)))
{
statisGenerator->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
statisGenerator->SetGoState(GO_STATE_READY);
@@ -160,7 +160,7 @@ public:
// Reset mini bosses
for(uint8 i = 0; i < 4; ++i)
{
if(Creature* Animal = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_NPC_FRENZIED_WORGEN + i)))
if(Creature* Animal = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_NPC_FRENZIED_WORGEN + i)))
{
Animal->SetPosition(Animal->GetHomePosition());
Animal->StopMovingOnCurrentPos();
@@ -228,7 +228,7 @@ public:
{
if (Creature* orb = ObjectAccessor::GetCreature(*me, OrbGUID))
{
if (Creature* miniBoss = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_NPC_FRENZIED_WORGEN + RandomUnfreeze[Counter])))
if (Creature* miniBoss = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_NPC_FRENZIED_WORGEN + RandomUnfreeze[Counter])))
{
Counter++;
miniBoss->AI()->DoAction(ACTION_UNFREEZE);
@@ -244,7 +244,7 @@ public:
{
if (Creature* orb = ObjectAccessor::GetCreature(*me, OrbGUID))
{
if (Creature* miniBoss = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_NPC_FRENZIED_WORGEN + RandomUnfreeze[Counter - 1])))
if (Creature* miniBoss = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_NPC_FRENZIED_WORGEN + RandomUnfreeze[Counter - 1])))
{
miniBoss->AI()->DoAction(ACTION_UNFREEZE2);
orb->RemoveAurasDueToSpell(SPELL_AWAKEN_SUBBOSS);
@@ -443,7 +443,7 @@ public:
{
if (m_pInstance)
{
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_GORTOK_PALEHOOF)))
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
}
}
@@ -553,7 +553,7 @@ public:
{
if (m_pInstance)
{
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_GORTOK_PALEHOOF)))
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
}
}
@@ -661,7 +661,7 @@ public:
{
if (m_pInstance)
{
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_GORTOK_PALEHOOF)))
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
}
}
@@ -769,7 +769,7 @@ public:
{
if (m_pInstance)
{
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_GORTOK_PALEHOOF)))
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
}
}
@@ -785,7 +785,7 @@ public:
{
InstanceScript* pInstance = go->GetInstanceScript();
Creature* pPalehoof = ObjectAccessor::GetCreature(*go, pInstance ? pInstance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
Creature* pPalehoof = ObjectAccessor::GetCreature(*go, pInstance ? pInstance->GetGuidData(DATA_GORTOK_PALEHOOF) : ObjectGuid::Empty);
if (pPalehoof && pPalehoof->IsAlive())
{
// maybe these are hacks :(
@@ -113,7 +113,7 @@ public:
InstanceScript* m_pInstance;
EventMap events;
SummonList summons;
uint64 GraufGUID;
ObjectGuid GraufGUID;
bool SecondPhase, EventStarted;
void Reset() override
@@ -239,7 +239,7 @@ public:
if (m_pInstance)
{
m_pInstance->SetData(DATA_SKADI_THE_RUTHLESS, DONE);
m_pInstance->HandleGameObject(m_pInstance->GetData64(SKADI_DOOR), true);
m_pInstance->HandleGameObject(m_pInstance->GetGuidData(SKADI_DOOR), true);
}
}
@@ -495,7 +495,7 @@ public:
uint8 count = m_pInstance->GetData(SKADI_HITS) + 1;
m_pInstance->SetData(SKADI_HITS, count);
if (Creature* grauf = ObjectAccessor::GetCreature(*pPlayer, m_pInstance->GetData64(DATA_GRAUF)))
if (Creature* grauf = ObjectAccessor::GetCreature(*pPlayer, m_pInstance->GetGuidData(DATA_GRAUF)))
{
if (count >= 3)
{
@@ -101,10 +101,10 @@ public:
{
instance = creature->GetInstanceScript();
Started = false;
ArthasGUID = 0;
ArthasGUID.Clear();
}
uint64 ArthasGUID;
ObjectGuid ArthasGUID;
bool Started;
InstanceScript* instance;
EventMap events;
@@ -152,7 +152,7 @@ public:
if (instance)
{
instance->SetData(DATA_SVALA_SORROWGRAVE, IN_PROGRESS);
if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_SVALA_MIRROR)))
if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_SVALA_MIRROR)))
mirror->SetGoState(GO_STATE_READY);
}
}
@@ -227,7 +227,7 @@ public:
case 30:
{
WorldPacket data(SMSG_SPLINE_MOVE_SET_HOVER, 9);
data.append(me->GetPackGUID());
data << me->GetPackGUID();
me->SendMessageToSet(&data, false);
break;
}
@@ -263,7 +263,7 @@ public:
case EVENT_SVALA_TALK7:
me->SetFacingTo(M_PI / 2.0f);
Talk(TALK_INTRO_S3);
if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_SVALA_MIRROR)))
if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_SVALA_MIRROR)))
mirror->SetGoState(GO_STATE_ACTIVE);
events2.ScheduleEvent(EVENT_SVALA_TALK8, 13000);
break;
@@ -20,20 +20,20 @@ public:
{
instance_utgarde_pinnacle_InstanceMapScript(Map* pMap) : InstanceScript(pMap) {Initialize();};
uint64 SvalaSorrowgrave;
uint64 GortokPalehoof;
uint64 SkadiRuthless;
uint64 KingYmiron;
uint64 FrenziedWorgen;
uint64 RavenousFurbolg;
uint64 MassiveJormungar;
uint64 FerociousRhino;
uint64 Grauf;
ObjectGuid SvalaSorrowgrave;
ObjectGuid GortokPalehoof;
ObjectGuid SkadiRuthless;
ObjectGuid KingYmiron;
ObjectGuid FrenziedWorgen;
ObjectGuid RavenousFurbolg;
ObjectGuid MassiveJormungar;
ObjectGuid FerociousRhino;
ObjectGuid Grauf;
uint64 SvalaMirrorGUID;
uint64 SkadiRuthlessDoor;
uint64 YmironDoor;
uint64 StatisGenerator;
ObjectGuid SvalaMirrorGUID;
ObjectGuid SkadiRuthlessDoor;
ObjectGuid YmironDoor;
ObjectGuid StatisGenerator;
uint32 FightStatus;
uint32 Encounters[MAX_ENCOUNTERS];
uint8 SkadiHits;
@@ -45,22 +45,8 @@ public:
void Initialize() override
{
SvalaSorrowgrave = 0;
GortokPalehoof = 0;
SkadiRuthless = 0;
KingYmiron = 0;
FrenziedWorgen = 0;
RavenousFurbolg = 0;
MassiveJormungar = 0;
FerociousRhino = 0;
Grauf = 0;
SvalaMirrorGUID = 0;
StatisGenerator = 0;
SkadiHits = 0;
SkadiInRange = 0;
SkadiRuthlessDoor = 0;
YmironDoor = 0;
FightStatus = 0;
svalaAchievement = false;
@@ -120,12 +106,12 @@ public:
case GO_SKADI_THE_RUTHLESS_DOOR:
SkadiRuthlessDoor = pGo->GetGUID();
if (Encounters[DATA_SKADI_THE_RUTHLESS] == DONE)
HandleGameObject(0, true, pGo);
HandleGameObject(ObjectGuid::Empty, true, pGo);
break;
case GO_KING_YMIRON_DOOR:
YmironDoor = pGo->GetGUID();
if (Encounters[DATA_KING_YMIRON] == DONE)
HandleGameObject(0, true, pGo);
HandleGameObject(ObjectGuid::Empty, true, pGo);
break;
case GO_GORK_PALEHOOF_SPHERE:
StatisGenerator = pGo->GetGUID();
@@ -254,9 +240,9 @@ public:
return 0;
}
uint64 GetData64(uint32 identifier) const override
ObjectGuid GetGuidData(uint32 identifier) const override
{
switch(identifier)
switch (identifier)
{
case DATA_SVALA_SORROWGRAVE:
return SvalaSorrowgrave;
@@ -286,7 +272,7 @@ public:
return SvalaMirrorGUID;
}
return 0;
return ObjectGuid::Empty;
}
};
};
@@ -215,7 +215,7 @@ public:
void JustSummoned(Creature* cr) override
{
if (InstanceScript* pInstance = me->GetInstanceScript())
if (Creature* toravon = ObjectAccessor::GetCreature(*me, pInstance->GetData64(EVENT_TORAVON)))
if (Creature* toravon = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(EVENT_TORAVON)))
if (toravon->AI())
toravon->AI()->JustSummoned(cr);
}

Some files were not shown because too many files have changed in this diff Show More