feat(Core/Misc): implement ObjectGuid class (port from TC) (#4885)
This commit is contained in:
@@ -75,7 +75,7 @@ public:
|
||||
bool Execute(uint64 /*execTime*/, uint32 /*diff*/) override
|
||||
{
|
||||
if (InstanceScript* instance = _owner->GetInstanceScript())
|
||||
if (Creature* vashj = ObjectAccessor::GetCreature(*_owner, instance->GetData64(NPC_LADY_VASHJ)))
|
||||
if (Creature* vashj = ObjectAccessor::GetCreature(*_owner, instance->GetGuidData(NPC_LADY_VASHJ)))
|
||||
_owner->GetMotionMaster()->MoveFollow(vashj, 3.0f, vashj->GetAngle(_owner), MOTION_SLOT_CONTROLLED);
|
||||
return true;
|
||||
}
|
||||
@@ -363,7 +363,7 @@ public:
|
||||
if (CheckTimer <= diff)
|
||||
{
|
||||
// check if vashj is death
|
||||
Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ));
|
||||
Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LADYVASHJ));
|
||||
if (!Vashj || !Vashj->IsAlive() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->ToCreature()->AI())->Phase != 3)
|
||||
{
|
||||
// remove
|
||||
|
||||
+2
-2
@@ -273,7 +273,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
uint64 ownerGUID;
|
||||
ObjectGuid ownerGUID;
|
||||
EventMap events;
|
||||
|
||||
void EnterEvadeMode() override
|
||||
@@ -428,7 +428,7 @@ public:
|
||||
{
|
||||
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_DEFAULT)
|
||||
if (InstanceScript* instance = GetUnitOwner()->GetInstanceScript())
|
||||
if (Creature* leotheras = ObjectAccessor::GetCreature(*GetUnitOwner(), instance->GetData64(NPC_LEOTHERAS_THE_BLIND)))
|
||||
if (Creature* leotheras = ObjectAccessor::GetCreature(*GetUnitOwner(), instance->GetGuidData(NPC_LEOTHERAS_THE_BLIND)))
|
||||
leotheras->CastSpell(GetUnitOwner(), SPELL_CONSUMING_MADNESS, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ public:
|
||||
me->CastSpell(me, SPELL_SPOUT_VISUAL, TRIGGERED_IGNORE_SET_FACING);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFacingToObject(me->GetVictim());
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
events.ScheduleEvent(EVENT_SPELL_SPOUT, 60000);
|
||||
events.RescheduleEvent(EVENT_SPELL_WHIRL, 18000);
|
||||
events.RescheduleEvent(EVENT_SPELL_GEYSER, 25000);
|
||||
@@ -205,7 +205,7 @@ public:
|
||||
if (roll_chance_i(instance->GetBossState(DATA_THE_LURKER_BELOW) != DONE ? 25 : 0) && !instance->IsEncounterInProgress())
|
||||
{
|
||||
player->CastSpell(player, SPELL_LURKER_SPAWN_TRIGGER, true);
|
||||
if (Creature* lurker = ObjectAccessor::GetCreature(*go, instance->GetData64(NPC_THE_LURKER_BELOW)))
|
||||
if (Creature* lurker = ObjectAccessor::GetCreature(*go, instance->GetGuidData(NPC_THE_LURKER_BELOW)))
|
||||
lurker->AI()->DoAction(ACTION_START_EVENT);
|
||||
return true;
|
||||
}
|
||||
|
||||
+7
-10
@@ -32,11 +32,7 @@ public:
|
||||
SetBossNumber(MAX_ENCOUNTERS);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
LadyVashjGUID = 0;
|
||||
memset(&ShieldGeneratorGUID, 0, sizeof(ShieldGeneratorGUID));
|
||||
AliveKeepersCount = 0;
|
||||
LeotherasTheBlindGUID = 0;
|
||||
LurkerBelowGUID = 0;
|
||||
}
|
||||
|
||||
bool SetBossState(uint32 type, EncounterState state) override
|
||||
@@ -115,7 +111,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 identifier) const override
|
||||
ObjectGuid GetGuidData(uint32 identifier) const override
|
||||
{
|
||||
switch (identifier)
|
||||
{
|
||||
@@ -126,7 +122,8 @@ public:
|
||||
case NPC_LADY_VASHJ:
|
||||
return LadyVashjGUID;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 /*data*/) override
|
||||
@@ -207,10 +204,10 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 LadyVashjGUID;
|
||||
uint64 ShieldGeneratorGUID[4];
|
||||
uint64 LurkerBelowGUID;
|
||||
uint64 LeotherasTheBlindGUID;
|
||||
ObjectGuid LadyVashjGUID;
|
||||
ObjectGuid ShieldGeneratorGUID[4];
|
||||
ObjectGuid LurkerBelowGUID;
|
||||
ObjectGuid LeotherasTheBlindGUID;
|
||||
int32 AliveKeepersCount;
|
||||
};
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ public:
|
||||
SetCombatMovement(false);
|
||||
SetEquipmentSlots(false, 54806, EQUIP_UNEQUIP, EQUIP_UNEQUIP);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
InvokerGUID = 0;
|
||||
InvokerGUID.Clear();
|
||||
events.Reset();
|
||||
events.RescheduleEvent(EVENT_EMERGE, 12000);
|
||||
events.RescheduleEvent(EVENT_INVOKER_SAY_1, 1000);
|
||||
@@ -90,7 +90,7 @@ public:
|
||||
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
uint64 InvokerGUID;
|
||||
ObjectGuid InvokerGUID;
|
||||
|
||||
void StartPhase1()
|
||||
{
|
||||
|
||||
+12
-11
@@ -77,7 +77,7 @@ public:
|
||||
LumaGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_EARTHEN_RING_FLAMECALLER:
|
||||
SetData64(counter, creature->GetGUID());
|
||||
SetGuidData(counter, creature->GetGUID());
|
||||
++counter;
|
||||
break;
|
||||
default:
|
||||
@@ -85,7 +85,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void SetData64(uint32 data, uint64 guid) override
|
||||
void SetGuidData(uint32 data, ObjectGuid guid) override
|
||||
{
|
||||
switch (data)
|
||||
{
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 type) const override
|
||||
ObjectGuid GetGuidData(uint32 type) const override
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@@ -136,17 +136,18 @@ public:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 AhuneGUID;
|
||||
uint64 AhuneBunnyGUID;
|
||||
uint64 FrozenCoreGUID;
|
||||
uint64 LumaGUID;
|
||||
uint64 FlameCallerGUIDs[3];
|
||||
uint64 BonfireBunnyGUIDs[3];
|
||||
uint64 BeamBunnyGUIDs[3];
|
||||
ObjectGuid AhuneGUID;
|
||||
ObjectGuid AhuneBunnyGUID;
|
||||
ObjectGuid FrozenCoreGUID;
|
||||
ObjectGuid LumaGUID;
|
||||
ObjectGuid FlameCallerGUIDs[3];
|
||||
ObjectGuid BonfireBunnyGUIDs[3];
|
||||
ObjectGuid BeamBunnyGUIDs[3];
|
||||
uint8 counter;
|
||||
};
|
||||
|
||||
|
||||
+3
-3
@@ -157,14 +157,14 @@ public:
|
||||
}
|
||||
|
||||
uint32 repairTimer;
|
||||
uint64 bossGUID;
|
||||
ObjectGuid bossGUID;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
repairTimer = 0;
|
||||
bossGUID = 0;
|
||||
bossGUID.Clear();
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
bossGUID = instance->GetData64(TYPE_MEKGINEER_STEAMRIGGER);
|
||||
bossGUID = instance->GetGuidData(TYPE_MEKGINEER_STEAMRIGGER);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* /*who*/) override {}
|
||||
|
||||
@@ -51,19 +51,14 @@ public:
|
||||
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
|
||||
uint64 MekgineerGUID;
|
||||
uint64 MainChambersDoor;
|
||||
uint64 AccessPanelHydro;
|
||||
uint64 AccessPanelMek;
|
||||
ObjectGuid MekgineerGUID;
|
||||
ObjectGuid MainChambersDoor;
|
||||
ObjectGuid AccessPanelHydro;
|
||||
ObjectGuid AccessPanelMek;
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
|
||||
MekgineerGUID = 0;
|
||||
MainChambersDoor = 0;
|
||||
AccessPanelHydro = 0;
|
||||
AccessPanelMek = 0;
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const override
|
||||
@@ -92,21 +87,21 @@ public:
|
||||
case GO_MAIN_CHAMBERS_DOOR:
|
||||
MainChambersDoor = go->GetGUID();
|
||||
if (GetData(TYPE_HYDROMANCER_THESPIA) == SPECIAL && GetData(TYPE_MEKGINEER_STEAMRIGGER) == SPECIAL)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
break;
|
||||
case GO_ACCESS_PANEL_HYDRO:
|
||||
AccessPanelHydro = go->GetGUID();
|
||||
if (GetData(TYPE_HYDROMANCER_THESPIA) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
else if (GetData(TYPE_HYDROMANCER_THESPIA) == SPECIAL)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
break;
|
||||
case GO_ACCESS_PANEL_MEK:
|
||||
AccessPanelMek = go->GetGUID();
|
||||
if (GetData(TYPE_MEKGINEER_STEAMRIGGER) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
else if (GetData(TYPE_MEKGINEER_STEAMRIGGER) == SPECIAL)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -164,11 +159,12 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 data) const override
|
||||
ObjectGuid GetGuidData(uint32 data) const override
|
||||
{
|
||||
if (data == TYPE_MEKGINEER_STEAMRIGGER)
|
||||
return MekgineerGUID;
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
|
||||
@@ -55,13 +55,13 @@ public:
|
||||
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
uint64 lTarget;
|
||||
ObjectGuid lTarget;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
lTarget = 0;
|
||||
lTarget.Clear();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit*) override
|
||||
@@ -142,7 +142,7 @@ public:
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*me, lTarget))
|
||||
{
|
||||
if (!target->HasAura(SPELL_LEVITATE))
|
||||
lTarget = 0;
|
||||
lTarget.Clear();
|
||||
else
|
||||
{
|
||||
target->CastSpell(target, SPELL_MAGNETIC_PULL, true);
|
||||
@@ -154,11 +154,11 @@ public:
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*me, lTarget))
|
||||
{
|
||||
if (!target->HasAura(SPELL_LEVITATE))
|
||||
lTarget = 0;
|
||||
lTarget.Clear();
|
||||
else
|
||||
{
|
||||
target->AddAura(SPELL_SUSPENSION, target);
|
||||
lTarget = 0;
|
||||
lTarget.Clear();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user