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

@@ -106,8 +106,7 @@ public:
void Reset() override
{
LamentEvent = false;
targetGUID = 0;
playerGUID = 0;
playerGUID.Clear();
_events.Reset();
}
@@ -120,7 +119,7 @@ public:
_events.ScheduleEvent(EVENT_MULTI_SHOT, 10000);
}
void SetGUID(uint64 guid, int32 type) override
void SetGUID(ObjectGuid guid, int32 type) override
{
if (type == GUID_EVENT_INVOKER)
{
@@ -223,8 +222,7 @@ public:
private:
EventMap _events;
bool LamentEvent;
uint64 targetGUID;
uint64 playerGUID;
ObjectGuid playerGUID;
};
CreatureAI* GetAI(Creature* creature) const override
@@ -951,7 +949,7 @@ public:
if (Creature* jaina = GetClosestCreatureWithEntry(creature, NPC_JAINA, 50.0f))
ai->jainaGUID = jaina->GetGUID();
else
ai->jainaGUID = 0;
ai->jainaGUID.Clear();
ai->SetDespawnAtEnd(false);
ai->SetDespawnAtFar(false);
}
@@ -979,9 +977,6 @@ public:
{
npc_varian_wrynnAI(Creature* creature) : npc_escortAI(creature)
{
memset(generatorGUID, 0, sizeof(generatorGUID));
memset(allianceForcesGUID, 0, sizeof(allianceForcesGUID));
memset(hordeForcesGUID, 0, sizeof(hordeForcesGUID));
allianceGuardsGUID.clear();
}
@@ -993,17 +988,17 @@ public:
uint32 whirlwindTimer;
uint64 jainaGUID;
uint64 putressGUID;
uint64 blightWormGUID;
uint64 khanokGUID;
uint64 thrallGUID;
uint64 sylvanasGUID;
ObjectGuid jainaGUID;
ObjectGuid putressGUID;
ObjectGuid blightWormGUID;
ObjectGuid khanokGUID;
ObjectGuid thrallGUID;
ObjectGuid sylvanasGUID;
uint64 generatorGUID[GENERATOR_MAXCOUNT];
uint64 allianceForcesGUID[ALLIANCE_FORCE_MAXCOUNT];
uint64 hordeForcesGUID[HORDE_FORCE_MAXCOUNT];
std::vector<uint64> allianceGuardsGUID;
ObjectGuid generatorGUID[GENERATOR_MAXCOUNT];
ObjectGuid allianceForcesGUID[ALLIANCE_FORCE_MAXCOUNT];
ObjectGuid hordeForcesGUID[HORDE_FORCE_MAXCOUNT];
GuidVector allianceGuardsGUID;
EventMap _events;
@@ -1036,7 +1031,7 @@ public:
bStepping = false;
step = 0;
phaseTimer = 0;
jainaGUID = 0;
jainaGUID.Clear();
_events.ScheduleEvent(EVENT_WHIRLWIND, 5 * IN_MILLISECONDS);
_events.ScheduleEvent(EVENT_HEROIC_LEAP, 10 * IN_MILLISECONDS);
_events.ScheduleEvent(EVENT_AGGRO_JAINA, 2 * IN_MILLISECONDS);
@@ -1046,38 +1041,38 @@ public:
if (Creature* putress = ObjectAccessor::GetCreature(*me, putressGUID))
{
putress->DespawnOrUnsummon();
putressGUID = 0;
putressGUID.Clear();
}
if (Creature* blightWorm = ObjectAccessor::GetCreature(*me, blightWormGUID))
{
blightWorm->DespawnOrUnsummon();
blightWormGUID = 0;
blightWormGUID.Clear();
}
if (Creature* khanok = ObjectAccessor::GetCreature(*me, khanokGUID))
{
khanok->DespawnOrUnsummon();
khanokGUID = 0;
khanokGUID.Clear();
}
if (Creature* thrall = ObjectAccessor::GetCreature(*me, thrallGUID))
{
thrall->DespawnOrUnsummon();
thrallGUID = 0;
thrallGUID.Clear();
}
if (Creature* sylvanas = ObjectAccessor::GetCreature(*me, sylvanasGUID))
{
sylvanas->DespawnOrUnsummon();
sylvanasGUID = 0;
sylvanasGUID.Clear();
}
for (uint8 i = 0; i < GENERATOR_MAXCOUNT; ++i)
{
if (Creature* temp = ObjectAccessor::GetCreature(*me, generatorGUID[i]))
{
generatorGUID[i] = 0;
generatorGUID[i].Clear();
temp->DespawnOrUnsummon();
}
}
@@ -1086,13 +1081,13 @@ public:
{
if (Creature* temp = ObjectAccessor::GetCreature(*me, allianceForcesGUID[i]))
{
allianceForcesGUID[i] = 0;
allianceForcesGUID[i].Clear();
temp->DespawnOrUnsummon();
}
}
for (std::vector<uint64>::const_iterator i = allianceGuardsGUID.begin(); i != allianceGuardsGUID.end(); ++i)
if (Creature* temp = ObjectAccessor::GetCreature(*me, *i))
for (ObjectGuid const guid : allianceGuardsGUID)
if (Creature* temp = ObjectAccessor::GetCreature(*me, guid))
temp->DespawnOrUnsummon();
allianceGuardsGUID.clear();
@@ -1101,7 +1096,7 @@ public:
{
if (Creature* temp = ObjectAccessor::GetCreature(*me, hordeForcesGUID[i]))
{
hordeForcesGUID[i] = 0;
hordeForcesGUID[i].Clear();
temp->DespawnOrUnsummon();
}
}
@@ -2291,7 +2286,7 @@ public:
thrall_ai->SetDespawnAtFar(false);
}
else
thrall_ai->sylvanasfollowGUID = 0;
thrall_ai->sylvanasfollowGUID.Clear();
}
break;
}
@@ -2329,7 +2324,6 @@ public:
{
npc_thrall_bfuAI(Creature* creature) : npc_escortAI(creature)
{
memset(allianceForcesGUID, 0, sizeof(allianceForcesGUID));
hordeGuardsGUID.clear();
}
@@ -2339,14 +2333,14 @@ public:
uint32 step;
uint32 phaseTimer;
uint64 sylvanasfollowGUID;
uint64 allianceForcesGUID[ALLIANCE_FORCE_MAXCOUNT];
uint64 ValimathrasGUID;
uint64 ValimathrasPortalGUID;
uint64 WrynnGUID;
uint64 JainaGUID;
uint64 SaurfangGUID;
std::vector<uint64> hordeGuardsGUID;
ObjectGuid sylvanasfollowGUID;
ObjectGuid allianceForcesGUID[ALLIANCE_FORCE_MAXCOUNT];
ObjectGuid ValimathrasGUID;
ObjectGuid ValimathrasPortalGUID;
ObjectGuid WrynnGUID;
ObjectGuid JainaGUID;
ObjectGuid SaurfangGUID;
GuidVector hordeGuardsGUID;
EventMap _events;
@@ -2384,7 +2378,7 @@ public:
EnableAttack = false;
step = 0;
phaseTimer = 0;
sylvanasfollowGUID = 0;
sylvanasfollowGUID.Clear();
_events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 3 * IN_MILLISECONDS);
_events.ScheduleEvent(EVENT_LAVA_BURST, 5 * IN_MILLISECONDS);
_events.ScheduleEvent(EVENT_THUNDER, 8 * IN_MILLISECONDS);
@@ -2394,35 +2388,35 @@ public:
if (Creature* valimathras = ObjectAccessor::GetCreature(*me, ValimathrasGUID))
{
valimathras->DespawnOrUnsummon();
ValimathrasGUID = 0;
ValimathrasGUID.Clear();
}
if (Creature* valimathrasportal = ObjectAccessor::GetCreature(*me, ValimathrasPortalGUID))
{
valimathrasportal->DespawnOrUnsummon();
ValimathrasPortalGUID = 0;
ValimathrasPortalGUID.Clear();
}
if (Creature* wrynn = ObjectAccessor::GetCreature(*me, WrynnGUID))
{
wrynn->DespawnOrUnsummon();
WrynnGUID = 0;
WrynnGUID.Clear();
}
if (Creature* jaina = ObjectAccessor::GetCreature(*me, JainaGUID))
{
jaina->DespawnOrUnsummon();
JainaGUID = 0;
JainaGUID.Clear();
}
if (Creature* saurfang = ObjectAccessor::GetCreature(*me, SaurfangGUID))
{
saurfang->DespawnOrUnsummon();
SaurfangGUID = 0;
SaurfangGUID.Clear();
}
for (std::vector<uint64>::const_iterator i = hordeGuardsGUID.begin(); i != hordeGuardsGUID.end(); ++i)
if (Creature* temp = ObjectAccessor::GetCreature(*me, *i))
for (ObjectGuid const guid : hordeGuardsGUID)
if (Creature* temp = ObjectAccessor::GetCreature(*me, guid))
temp->DespawnOrUnsummon();
hordeGuardsGUID.clear();