feat(Core/GameObject): Gob flag helpers (#11287)

This commit is contained in:
Kitzunu
2022-04-05 13:52:58 +02:00
committed by GitHub
parent edb7cac19b
commit b41967a067
54 changed files with 155 additions and 145 deletions

View File

@@ -71,7 +71,7 @@ public:
{
DoUseDoorOrButton(m_uiIkissDoorGUID, DAY * IN_MILLISECONDS);
if (GameObject* coffer = instance->GetGameObject(_talonKingsCofferGUID))
coffer->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE | GO_FLAG_INTERACT_COND);
coffer->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE | GO_FLAG_INTERACT_COND);
}
break;
case TYPE_ANZU_ENCOUNTER:

View File

@@ -56,7 +56,7 @@ public:
if (type == DATA_LADY_VASHJ)
for (uint8 i = 0; i < 4; ++i)
if (GameObject* gobject = instance->GetGameObject(ShieldGeneratorGUID[i]))
gobject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
gobject->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
return true;
}
@@ -158,7 +158,7 @@ public:
for (uint8 i = 0; i < 4; ++i)
if (GameObject* gobject = instance->GetGameObject(ShieldGeneratorGUID[i]))
{
gobject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
gobject->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
vashj->SummonTrigger(gobject->GetPositionX(), gobject->GetPositionY(), gobject->GetPositionZ(), 0.0f, 0);
}
break;

View File

@@ -33,14 +33,14 @@ public:
if (go->GetEntry() == GO_ACCESS_PANEL_HYDRO)
if (instance->GetData(TYPE_HYDROMANCER_THESPIA) == DONE)
{
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
instance->SetData(TYPE_HYDROMANCER_THESPIA, SPECIAL);
}
if (go->GetEntry() == GO_ACCESS_PANEL_MEK)
if (instance->GetData(TYPE_MEKGINEER_STEAMRIGGER) == DONE)
{
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
instance->SetData(TYPE_MEKGINEER_STEAMRIGGER, SPECIAL);
}
@@ -105,14 +105,14 @@ public:
case GO_ACCESS_PANEL_HYDRO:
AccessPanelHydro = go->GetGUID();
if (GetData(TYPE_HYDROMANCER_THESPIA) == DONE)
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
else if (GetData(TYPE_HYDROMANCER_THESPIA) == SPECIAL)
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);
go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
else if (GetData(TYPE_MEKGINEER_STEAMRIGGER) == SPECIAL)
HandleGameObject(ObjectGuid::Empty, true, go);
break;
@@ -132,7 +132,7 @@ public:
else if (data == DONE)
{
if (GameObject* panel = instance->GetGameObject(AccessPanelHydro))
panel->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
panel->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
}
m_auiEncounter[type] = data;
@@ -146,7 +146,7 @@ public:
else if (data == DONE)
{
if (GameObject* panel = instance->GetGameObject(AccessPanelMek))
panel->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
panel->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
}
m_auiEncounter[type] = data;

View File

@@ -51,7 +51,7 @@ public:
if (type == DATA_VAZRUDEN && state == DONE)
if (GameObject* chest = instance->GetGameObject(felIronChestGUID))
chest->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
chest->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
return true;
}

View File

@@ -142,7 +142,7 @@ public:
{
for (ObjectGuid const& guid : _cubesSet)
if (GameObject* cube = instance->GetGameObject(guid))
cube->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
cube->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
if (state == NOT_STARTED)
SetData(DATA_COLLAPSE, GO_READY);
@@ -163,7 +163,7 @@ public:
case DATA_ACTIVATE_CUBES:
for (ObjectGuid const& guid : _cubesSet)
if (GameObject* cube = instance->GetGameObject(guid))
cube->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
cube->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break;
case DATA_COLLAPSE:
for (ObjectGuid const& guid : _columnSet)

View File

@@ -772,7 +772,7 @@ public:
_events.ScheduleEvent(EVENT_SIMON_PERIODIC_PLAYER_CHECK, 2000);
if (GameObject* relic = me->FindNearestGameObject(large ? GO_APEXIS_MONUMENT : GO_APEXIS_RELIC, searchDistance))
relic->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
relic->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
}
// Called when despawning the bunny. Sets all the node GOs to their default states.
@@ -782,14 +782,14 @@ public:
for (uint32 clusterId = SIMON_BLUE; clusterId < SIMON_MAX_COLORS; clusterId++)
if (GameObject* cluster = me->FindNearestGameObject(clusterIds[clusterId], searchDistance))
cluster->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
cluster->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
for (uint32 auraId = GO_AURA_BLUE; auraId <= GO_AURA_YELLOW; auraId++)
if (GameObject* auraGo = me->FindNearestGameObject(auraId, searchDistance))
auraGo->RemoveFromWorld();
if (GameObject* relic = me->FindNearestGameObject(large ? GO_APEXIS_MONUMENT : GO_APEXIS_RELIC, searchDistance))
relic->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
relic->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
me->DespawnOrUnsummon(1000);
}
@@ -832,7 +832,7 @@ public:
{
for (uint32 clusterId = SIMON_BLUE; clusterId < SIMON_MAX_COLORS; clusterId++)
if (GameObject* cluster = me->FindNearestGameObject(clusterIds[clusterId], searchDistance))
cluster->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
cluster->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
if (clustersOnly)
return;
@@ -886,7 +886,7 @@ public:
{
if (GameObject* cluster = me->FindNearestGameObject(clusterIds[clusterId], 2.0f * searchDistance))
{
cluster->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
cluster->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
// break since we don't need glowing auras for large clusters
if (large)