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

View File

@@ -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;
}

View File

@@ -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;
};
};

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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