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,13 +106,13 @@ public:
InstanceScript* pInstance;
EventMap events;
SummonList summons;
uint64 ValkyrGUID;
uint64 ThrowGUID;
ObjectGuid ValkyrGUID;
ObjectGuid ThrowGUID;
void Reset() override
{
ValkyrGUID = 0;
ThrowGUID = 0;
ValkyrGUID.Clear();
ThrowGUID.Clear();
events.Reset();
summons.DespawnAll();
me->SetDisplayId(DISPLAYID_DEFAULT);
@@ -367,7 +367,7 @@ public:
c->DespawnOrUnsummon();
summons.DespawnAll();
}
ThrowGUID = 0;
ThrowGUID.Clear();
SetEquipmentSlots(true);
break;
}

View File

@@ -55,7 +55,7 @@ public:
struct npc_frost_tombAI : public NullCreatureAI
{
npc_frost_tombAI(Creature* c) : NullCreatureAI(c), PrisonerGUID(0)
npc_frost_tombAI(Creature* c) : NullCreatureAI(c)
{
if (TempSummon* t = c->ToTempSummon())
if (Unit* s = t->GetSummoner())
@@ -70,7 +70,7 @@ public:
c->CastSpell(s, SPELL_FROST_TOMB_AURA, true);
}
}
uint64 PrisonerGUID;
ObjectGuid PrisonerGUID;
void JustDied(Unit* killer) override
{

View File

@@ -120,7 +120,7 @@ public:
if (pInstance)
{
pInstance->SetData(DATA_DALRONN_AND_SKARVALD, IN_PROGRESS);
if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetData64(DATA_DALRONN)))
if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_DALRONN)))
{
if (!dalronn->IsInCombat() && who)
{
@@ -146,7 +146,7 @@ public:
if (pInstance)
{
if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetData64(DATA_DALRONN)))
if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_DALRONN)))
{
if (dalronn->isDead())
{
@@ -288,7 +288,7 @@ public:
if (pInstance)
{
pInstance->SetData(DATA_DALRONN_AND_SKARVALD, IN_PROGRESS);
if (Creature* skarvald = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SKARVALD)))
if (Creature* skarvald = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SKARVALD)))
{
if (!skarvald->IsInCombat() && who)
{
@@ -320,7 +320,7 @@ public:
if (pInstance)
{
if (Creature* skarvald = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SKARVALD)))
if (Creature* skarvald = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SKARVALD)))
{
if (skarvald->isDead())
{

View File

@@ -25,19 +25,19 @@ public:
uint32 ForgeEventMask;
std::string str_data;
uint64 GO_ForgeBellowGUID[3];
uint64 GO_ForgeFireGUID[3];
uint64 GO_ForgeAnvilGUID[3];
uint64 GO_PortcullisGUID[2];
ObjectGuid GO_ForgeBellowGUID[3];
ObjectGuid GO_ForgeFireGUID[3];
ObjectGuid GO_ForgeAnvilGUID[3];
ObjectGuid GO_PortcullisGUID[2];
uint64 NPC_KelesethGUID;
uint64 NPC_DalronnGUID;
uint64 NPC_SkarvaldGUID;
uint64 NPC_DalronnGhostGUID;
uint64 NPC_SkarvaldGhostGUID;
uint64 NPC_IngvarGUID;
uint64 NPC_DarkRangerMarrahGUID;
uint64 NPC_SpecialDrakeGUID;
ObjectGuid NPC_KelesethGUID;
ObjectGuid NPC_DalronnGUID;
ObjectGuid NPC_SkarvaldGUID;
ObjectGuid NPC_DalronnGhostGUID;
ObjectGuid NPC_SkarvaldGhostGUID;
ObjectGuid NPC_IngvarGUID;
ObjectGuid NPC_DarkRangerMarrahGUID;
ObjectGuid NPC_SpecialDrakeGUID;
bool bRocksAchiev;
void Initialize() override
@@ -45,19 +45,6 @@ public:
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
ForgeEventMask = 0;
memset(&GO_ForgeBellowGUID, 0, sizeof(GO_ForgeBellowGUID));
memset(&GO_ForgeFireGUID, 0, sizeof(GO_ForgeFireGUID));
memset(&GO_ForgeAnvilGUID, 0, sizeof(GO_ForgeAnvilGUID));
memset(&GO_PortcullisGUID, 0, sizeof(GO_PortcullisGUID));
NPC_KelesethGUID = 0;
NPC_DalronnGUID = 0;
NPC_SkarvaldGUID = 0;
NPC_DalronnGhostGUID = 0;
NPC_SkarvaldGhostGUID = 0;
NPC_IngvarGUID = 0;
NPC_DarkRangerMarrahGUID = 0;
NPC_SpecialDrakeGUID = 0;
bRocksAchiev = true;
}
@@ -123,47 +110,47 @@ public:
{
case GO_BELLOW_1:
GO_ForgeBellowGUID[0] = go->GetGUID();
if (ForgeEventMask & 1) HandleGameObject(0, true, go);
if (ForgeEventMask & 1) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_BELLOW_2:
GO_ForgeBellowGUID[1] = go->GetGUID();
if (ForgeEventMask & 2) HandleGameObject(0, true, go);
if (ForgeEventMask & 2) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_BELLOW_3:
GO_ForgeBellowGUID[2] = go->GetGUID();
if (ForgeEventMask & 4) HandleGameObject(0, true, go);
if (ForgeEventMask & 4) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_FORGEFIRE_1:
GO_ForgeFireGUID[0] = go->GetGUID();
if (ForgeEventMask & 1) HandleGameObject(0, true, go);
if (ForgeEventMask & 1) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_FORGEFIRE_2:
GO_ForgeFireGUID[1] = go->GetGUID();
if (ForgeEventMask & 2) HandleGameObject(0, true, go);
if (ForgeEventMask & 2) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_FORGEFIRE_3:
GO_ForgeFireGUID[2] = go->GetGUID();
if (ForgeEventMask & 4) HandleGameObject(0, true, go);
if (ForgeEventMask & 4) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GLOWING_ANVIL_1:
GO_ForgeAnvilGUID[0] = go->GetGUID();
if (ForgeEventMask & 1) HandleGameObject(0, true, go);
if (ForgeEventMask & 1) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GLOWING_ANVIL_2:
GO_ForgeAnvilGUID[1] = go->GetGUID();
if (ForgeEventMask & 2) HandleGameObject(0, true, go);
if (ForgeEventMask & 2) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GLOWING_ANVIL_3:
GO_ForgeAnvilGUID[2] = go->GetGUID();
if (ForgeEventMask & 4) HandleGameObject(0, true, go);
if (ForgeEventMask & 4) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GIANT_PORTCULLIS_1:
GO_PortcullisGUID[0] = go->GetGUID();
if (m_auiEncounter[2] == DONE) HandleGameObject(0, true, go);
if (m_auiEncounter[2] == DONE) HandleGameObject(ObjectGuid::Empty, true, go);
break;
case GO_GIANT_PORTCULLIS_2:
GO_PortcullisGUID[1] = go->GetGUID();
if (m_auiEncounter[2] == DONE) HandleGameObject(0, true, go);
if (m_auiEncounter[2] == DONE) HandleGameObject(ObjectGuid::Empty, true, go);
break;
}
}
@@ -197,10 +184,10 @@ public:
c->AI()->DoAction(-1);
c->DespawnOrUnsummon();
}
NPC_DalronnGhostGUID = 0;
NPC_DalronnGhostGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_SkarvaldGhostGUID) )
c->DespawnOrUnsummon();
NPC_SkarvaldGhostGUID = 0;
NPC_SkarvaldGhostGUID.Clear();
}
if (data == DONE)
{
@@ -209,10 +196,10 @@ public:
c->AI()->DoAction(-1);
c->DespawnOrUnsummon();
}
NPC_DalronnGhostGUID = 0;
NPC_DalronnGhostGUID.Clear();
if( Creature* c = instance->GetCreature(NPC_SkarvaldGhostGUID) )
c->DespawnOrUnsummon();
NPC_SkarvaldGhostGUID = 0;
NPC_SkarvaldGhostGUID.Clear();
}
m_auiEncounter[1] = data;
@@ -284,9 +271,9 @@ public:
}
}
uint64 GetData64(uint32 id) const override
ObjectGuid GetGuidData(uint32 id) const override
{
switch(id)
switch (id)
{
case DATA_KELESETH:
return NPC_KelesethGUID;
@@ -297,12 +284,13 @@ public:
case DATA_INGVAR:
return NPC_IngvarGUID;
}
return 0;
return ObjectGuid::Empty;
}
uint32 GetData(uint32 id) const override
{
switch(id)
switch (id)
{
case DATA_KELESETH:
case DATA_DALRONN_AND_SKARVALD:
@@ -313,6 +301,7 @@ public:
case DATA_FORGE_3:
return ForgeEventMask & (uint32)(1 << (id - 100));
}
return 0;
}

View File

@@ -114,7 +114,7 @@ public:
InstanceScript* m_pInstance;
EventMap events;
SummonList summons;
uint64 OrbGUID;
ObjectGuid OrbGUID;
uint8 Counter;
uint8 RandomUnfreeze[4];
@@ -140,7 +140,7 @@ public:
events.Reset();
summons.DoAction(ACTION_DESPAWN_ADDS);
summons.DespawnAll();
OrbGUID = 0;
OrbGUID.Clear();
Counter = 0;
me->CastSpell(me, SPELL_FREEZE, true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
@@ -151,7 +151,7 @@ public:
m_pInstance->SetData(DATA_GORTOK_PALEHOOF, NOT_STARTED);
// Reset statue
if (GameObject* statisGenerator = m_pInstance->instance->GetGameObject(m_pInstance->GetData64(STATIS_GENERATOR)))
if (GameObject* statisGenerator = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(STATIS_GENERATOR)))
{
statisGenerator->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
statisGenerator->SetGoState(GO_STATE_READY);
@@ -160,7 +160,7 @@ public:
// Reset mini bosses
for(uint8 i = 0; i < 4; ++i)
{
if(Creature* Animal = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_NPC_FRENZIED_WORGEN + i)))
if(Creature* Animal = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_NPC_FRENZIED_WORGEN + i)))
{
Animal->SetPosition(Animal->GetHomePosition());
Animal->StopMovingOnCurrentPos();
@@ -228,7 +228,7 @@ public:
{
if (Creature* orb = ObjectAccessor::GetCreature(*me, OrbGUID))
{
if (Creature* miniBoss = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_NPC_FRENZIED_WORGEN + RandomUnfreeze[Counter])))
if (Creature* miniBoss = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_NPC_FRENZIED_WORGEN + RandomUnfreeze[Counter])))
{
Counter++;
miniBoss->AI()->DoAction(ACTION_UNFREEZE);
@@ -244,7 +244,7 @@ public:
{
if (Creature* orb = ObjectAccessor::GetCreature(*me, OrbGUID))
{
if (Creature* miniBoss = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_NPC_FRENZIED_WORGEN + RandomUnfreeze[Counter - 1])))
if (Creature* miniBoss = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_NPC_FRENZIED_WORGEN + RandomUnfreeze[Counter - 1])))
{
miniBoss->AI()->DoAction(ACTION_UNFREEZE2);
orb->RemoveAurasDueToSpell(SPELL_AWAKEN_SUBBOSS);
@@ -443,7 +443,7 @@ public:
{
if (m_pInstance)
{
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_GORTOK_PALEHOOF)))
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
}
}
@@ -553,7 +553,7 @@ public:
{
if (m_pInstance)
{
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_GORTOK_PALEHOOF)))
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
}
}
@@ -661,7 +661,7 @@ public:
{
if (m_pInstance)
{
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_GORTOK_PALEHOOF)))
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
}
}
@@ -769,7 +769,7 @@ public:
{
if (m_pInstance)
{
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetData64(DATA_GORTOK_PALEHOOF)))
if (Creature* palehoof = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(DATA_GORTOK_PALEHOOF)))
palehoof->AI()->DoAction(ACTION_MINIBOSS_DIED);
}
}
@@ -785,7 +785,7 @@ public:
{
InstanceScript* pInstance = go->GetInstanceScript();
Creature* pPalehoof = ObjectAccessor::GetCreature(*go, pInstance ? pInstance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
Creature* pPalehoof = ObjectAccessor::GetCreature(*go, pInstance ? pInstance->GetGuidData(DATA_GORTOK_PALEHOOF) : ObjectGuid::Empty);
if (pPalehoof && pPalehoof->IsAlive())
{
// maybe these are hacks :(

View File

@@ -113,7 +113,7 @@ public:
InstanceScript* m_pInstance;
EventMap events;
SummonList summons;
uint64 GraufGUID;
ObjectGuid GraufGUID;
bool SecondPhase, EventStarted;
void Reset() override
@@ -239,7 +239,7 @@ public:
if (m_pInstance)
{
m_pInstance->SetData(DATA_SKADI_THE_RUTHLESS, DONE);
m_pInstance->HandleGameObject(m_pInstance->GetData64(SKADI_DOOR), true);
m_pInstance->HandleGameObject(m_pInstance->GetGuidData(SKADI_DOOR), true);
}
}
@@ -495,7 +495,7 @@ public:
uint8 count = m_pInstance->GetData(SKADI_HITS) + 1;
m_pInstance->SetData(SKADI_HITS, count);
if (Creature* grauf = ObjectAccessor::GetCreature(*pPlayer, m_pInstance->GetData64(DATA_GRAUF)))
if (Creature* grauf = ObjectAccessor::GetCreature(*pPlayer, m_pInstance->GetGuidData(DATA_GRAUF)))
{
if (count >= 3)
{

View File

@@ -101,10 +101,10 @@ public:
{
instance = creature->GetInstanceScript();
Started = false;
ArthasGUID = 0;
ArthasGUID.Clear();
}
uint64 ArthasGUID;
ObjectGuid ArthasGUID;
bool Started;
InstanceScript* instance;
EventMap events;
@@ -152,7 +152,7 @@ public:
if (instance)
{
instance->SetData(DATA_SVALA_SORROWGRAVE, IN_PROGRESS);
if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_SVALA_MIRROR)))
if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_SVALA_MIRROR)))
mirror->SetGoState(GO_STATE_READY);
}
}
@@ -227,7 +227,7 @@ public:
case 30:
{
WorldPacket data(SMSG_SPLINE_MOVE_SET_HOVER, 9);
data.append(me->GetPackGUID());
data << me->GetPackGUID();
me->SendMessageToSet(&data, false);
break;
}
@@ -263,7 +263,7 @@ public:
case EVENT_SVALA_TALK7:
me->SetFacingTo(M_PI / 2.0f);
Talk(TALK_INTRO_S3);
if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_SVALA_MIRROR)))
if (GameObject* mirror = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_SVALA_MIRROR)))
mirror->SetGoState(GO_STATE_ACTIVE);
events2.ScheduleEvent(EVENT_SVALA_TALK8, 13000);
break;

View File

@@ -20,20 +20,20 @@ public:
{
instance_utgarde_pinnacle_InstanceMapScript(Map* pMap) : InstanceScript(pMap) {Initialize();};
uint64 SvalaSorrowgrave;
uint64 GortokPalehoof;
uint64 SkadiRuthless;
uint64 KingYmiron;
uint64 FrenziedWorgen;
uint64 RavenousFurbolg;
uint64 MassiveJormungar;
uint64 FerociousRhino;
uint64 Grauf;
ObjectGuid SvalaSorrowgrave;
ObjectGuid GortokPalehoof;
ObjectGuid SkadiRuthless;
ObjectGuid KingYmiron;
ObjectGuid FrenziedWorgen;
ObjectGuid RavenousFurbolg;
ObjectGuid MassiveJormungar;
ObjectGuid FerociousRhino;
ObjectGuid Grauf;
uint64 SvalaMirrorGUID;
uint64 SkadiRuthlessDoor;
uint64 YmironDoor;
uint64 StatisGenerator;
ObjectGuid SvalaMirrorGUID;
ObjectGuid SkadiRuthlessDoor;
ObjectGuid YmironDoor;
ObjectGuid StatisGenerator;
uint32 FightStatus;
uint32 Encounters[MAX_ENCOUNTERS];
uint8 SkadiHits;
@@ -45,22 +45,8 @@ public:
void Initialize() override
{
SvalaSorrowgrave = 0;
GortokPalehoof = 0;
SkadiRuthless = 0;
KingYmiron = 0;
FrenziedWorgen = 0;
RavenousFurbolg = 0;
MassiveJormungar = 0;
FerociousRhino = 0;
Grauf = 0;
SvalaMirrorGUID = 0;
StatisGenerator = 0;
SkadiHits = 0;
SkadiInRange = 0;
SkadiRuthlessDoor = 0;
YmironDoor = 0;
FightStatus = 0;
svalaAchievement = false;
@@ -120,12 +106,12 @@ public:
case GO_SKADI_THE_RUTHLESS_DOOR:
SkadiRuthlessDoor = pGo->GetGUID();
if (Encounters[DATA_SKADI_THE_RUTHLESS] == DONE)
HandleGameObject(0, true, pGo);
HandleGameObject(ObjectGuid::Empty, true, pGo);
break;
case GO_KING_YMIRON_DOOR:
YmironDoor = pGo->GetGUID();
if (Encounters[DATA_KING_YMIRON] == DONE)
HandleGameObject(0, true, pGo);
HandleGameObject(ObjectGuid::Empty, true, pGo);
break;
case GO_GORK_PALEHOOF_SPHERE:
StatisGenerator = pGo->GetGUID();
@@ -254,9 +240,9 @@ public:
return 0;
}
uint64 GetData64(uint32 identifier) const override
ObjectGuid GetGuidData(uint32 identifier) const override
{
switch(identifier)
switch (identifier)
{
case DATA_SVALA_SORROWGRAVE:
return SvalaSorrowgrave;
@@ -286,7 +272,7 @@ public:
return SvalaMirrorGUID;
}
return 0;
return ObjectGuid::Empty;
}
};
};