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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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