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
@@ -2680,7 +2680,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsGameObject(*itr)) if (IsGameObject(*itr))
(*itr)->ToGameObject()->SetUInt32Value(GAMEOBJECT_FLAGS, e.action.goFlag.flag); (*itr)->ToGameObject()->ReplaceAllGameObjectFlags((GameObjectFlags)e.action.goFlag.flag);
delete targets; delete targets;
break; break;
@@ -2693,7 +2693,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsGameObject(*itr)) if (IsGameObject(*itr))
(*itr)->ToGameObject()->SetFlag(GAMEOBJECT_FLAGS, e.action.goFlag.flag); (*itr)->ToGameObject()->SetGameObjectFlag((GameObjectFlags)e.action.goFlag.flag);
delete targets; delete targets;
break; break;
@@ -2706,7 +2706,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
if (IsGameObject(*itr)) if (IsGameObject(*itr))
(*itr)->ToGameObject()->RemoveFlag(GAMEOBJECT_FLAGS, e.action.goFlag.flag); (*itr)->ToGameObject()->RemoveGameObjectFlag((GameObjectFlags)e.action.goFlag.flag);
delete targets; delete targets;
break; break;
@@ -225,7 +225,7 @@ void BattlefieldWG::OnBattleStart()
// Update faction of relic, only attacker can click on // Update faction of relic, only attacker can click on
go->SetUInt32Value(GAMEOBJECT_FACTION, WintergraspFaction[GetAttackerTeam()]); go->SetUInt32Value(GAMEOBJECT_FACTION, WintergraspFaction[GetAttackerTeam()]);
// Set in use (not allow to click on before last door is broken) // Set in use (not allow to click on before last door is broken)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
// save guid // save guid
m_titansRelic = go->GetGUID(); m_titansRelic = go->GetGUID();
@@ -1208,7 +1208,7 @@ struct BfWGGameObjectBuilding
case BATTLEFIELD_WG_OBJECTTYPE_DOOR_LAST: case BATTLEFIELD_WG_OBJECTTYPE_DOOR_LAST:
m_WG->SetRelicInteractible(true); m_WG->SetRelicInteractible(true);
if (GameObject* go = m_WG->GetRelic()) if (GameObject* go = m_WG->GetRelic())
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
else else
LOG_ERROR("bg.battlefield", "BattlefieldWG: Relic not found."); LOG_ERROR("bg.battlefield", "BattlefieldWG: Relic not found.");
break; break;
@@ -293,7 +293,7 @@ void BattlegroundIC::StartingEventOpenDoors()
DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_2); DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_2);
for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i) for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i)
GetBGObject(BG_IC_Teleporters[i].type)->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); GetBGObject(BG_IC_Teleporters[i].type)->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS; ++i) for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS; ++i)
GetBGObject(BG_IC_TeleporterEffects[i].type)->SetGoState(GO_STATE_ACTIVE); GetBGObject(BG_IC_TeleporterEffects[i].type)->SetGoState(GO_STATE_ACTIVE);
@@ -125,7 +125,7 @@ void BattlegroundRV::PostUpdateImpl(uint32 diff)
uint32 objects[2] = { BG_RV_OBJECT_ELEVATOR_1, BG_RV_OBJECT_ELEVATOR_2 }; uint32 objects[2] = { BG_RV_OBJECT_ELEVATOR_1, BG_RV_OBJECT_ELEVATOR_2 };
for (uint8 i = 0; i < 2; ++i) for (uint8 i = 0; i < 2; ++i)
if (GameObject* go = GetBGObject(objects[i])) if (GameObject* go = GetBGObject(objects[i]))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_TRANSPORT); go->RemoveGameObjectFlag(GO_FLAG_TRANSPORT);
} }
break; break;
} }
@@ -853,9 +853,9 @@ void BattlegroundSA::UpdateObjectInteractionFlags(uint32 objectId)
if (GameObject* go = GetBGObject(objectId)) if (GameObject* go = GetBGObject(objectId))
{ {
if (CanInteractWithObject(objectId)) if (CanInteractWithObject(objectId))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE | GO_FLAG_INTERACT_COND | GO_FLAG_IN_USE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE | GO_FLAG_INTERACT_COND | GO_FLAG_IN_USE);
else else
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
} }
@@ -319,7 +319,7 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u
if (GameObjectTemplateAddon const* templateAddon = GetTemplateAddon()) if (GameObjectTemplateAddon const* templateAddon = GetTemplateAddon())
{ {
SetUInt32Value(GAMEOBJECT_FACTION, templateAddon->faction); SetUInt32Value(GAMEOBJECT_FACTION, templateAddon->faction);
SetUInt32Value(GAMEOBJECT_FLAGS, templateAddon->flags); ReplaceAllGameObjectFlags((GameObjectFlags)templateAddon->flags);
} }
SetEntry(goinfo->entry); SetEntry(goinfo->entry);
@@ -479,7 +479,7 @@ void GameObject::Update(uint32 diff)
if (caster && caster->GetTypeId() == TYPEID_PLAYER) if (caster && caster->GetTypeId() == TYPEID_PLAYER)
{ {
SetGoState(GO_STATE_ACTIVE); SetGoState(GO_STATE_ACTIVE);
SetUInt32Value(GAMEOBJECT_FLAGS, GO_FLAG_NODESPAWN); ReplaceAllGameObjectFlags(GO_FLAG_NODESPAWN);
UpdateData udata; UpdateData udata;
WorldPacket packet; WorldPacket packet;
@@ -721,7 +721,7 @@ void GameObject::Update(uint32 diff)
case GAMEOBJECT_TYPE_GOOBER: case GAMEOBJECT_TYPE_GOOBER:
if (GameTime::GetGameTimeMS().count() >= m_cooldownTime) if (GameTime::GetGameTimeMS().count() >= m_cooldownTime)
{ {
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); RemoveGameObjectFlag(GO_FLAG_IN_USE);
SetLootState(GO_JUST_DEACTIVATED); SetLootState(GO_JUST_DEACTIVATED);
} }
@@ -826,7 +826,7 @@ void GameObject::Update(uint32 diff)
SendObjectDeSpawnAnim(GetGUID()); SendObjectDeSpawnAnim(GetGUID());
//reset flags //reset flags
if (GameObjectTemplateAddon const* addon = GetTemplateAddon()) if (GameObjectTemplateAddon const* addon = GetTemplateAddon())
SetUInt32Value(GAMEOBJECT_FLAGS, addon->flags); ReplaceAllGameObjectFlags((GameObjectFlags)addon->flags);
} }
if (!m_respawnDelayTime) if (!m_respawnDelayTime)
@@ -908,7 +908,7 @@ void GameObject::DespawnOrUnsummon(Milliseconds delay, Seconds forceRespawnTime)
if (GameObjectTemplateAddon const* addon = GetTemplateAddon()) if (GameObjectTemplateAddon const* addon = GetTemplateAddon())
{ {
SetUInt32Value(GAMEOBJECT_FLAGS, addon->flags); ReplaceAllGameObjectFlags((GameObjectFlags)addon->flags);
} }
uint32 poolid = m_spawnId ? sPoolMgr->IsPartOfAPool<GameObject>(m_spawnId) : 0; uint32 poolid = m_spawnId ? sPoolMgr->IsPartOfAPool<GameObject>(m_spawnId) : 0;
@@ -930,7 +930,7 @@ void GameObject::Delete()
SetGoState(GO_STATE_READY); SetGoState(GO_STATE_READY);
if (GameObjectTemplateAddon const* addon = GetTemplateAddon()) if (GameObjectTemplateAddon const* addon = GetTemplateAddon())
SetUInt32Value(GAMEOBJECT_FLAGS, addon->flags); ReplaceAllGameObjectFlags((GameObjectFlags)addon->flags);
// Xinef: if ritual gameobject is removed, clear anim spells // Xinef: if ritual gameobject is removed, clear anim spells
if (GetGOInfo()->type == GAMEOBJECT_TYPE_SUMMONING_RITUAL) if (GetGOInfo()->type == GAMEOBJECT_TYPE_SUMMONING_RITUAL)
@@ -1096,7 +1096,7 @@ bool GameObject::LoadGameObjectFromDB(ObjectGuid::LowType spawnId, Map* map, boo
if (!GetGOInfo()->GetDespawnPossibility() && !GetGOInfo()->IsDespawnAtAction()) if (!GetGOInfo()->GetDespawnPossibility() && !GetGOInfo()->IsDespawnAtAction())
{ {
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NODESPAWN); SetGameObjectFlag(GO_FLAG_NODESPAWN);
m_respawnDelayTime = 0; m_respawnDelayTime = 0;
m_respawnTime = 0; m_respawnTime = 0;
} }
@@ -1410,9 +1410,9 @@ void GameObject::SetGoArtKit(uint8 artkit, GameObject* go, ObjectGuid::LowType l
void GameObject::SwitchDoorOrButton(bool activate, bool alternative /* = false */) void GameObject::SwitchDoorOrButton(bool activate, bool alternative /* = false */)
{ {
if (activate) if (activate)
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); SetGameObjectFlag(GO_FLAG_IN_USE);
else else
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); RemoveGameObjectFlag(GO_FLAG_IN_USE);
if (GetGoState() == GO_STATE_READY) //if closed -> open if (GetGoState() == GO_STATE_READY) //if closed -> open
SetGoState(alternative ? GO_STATE_ACTIVE_ALTERNATIVE : GO_STATE_ACTIVE); SetGoState(alternative ? GO_STATE_ACTIVE_ALTERNATIVE : GO_STATE_ACTIVE);
@@ -1423,7 +1423,7 @@ void GameObject::SwitchDoorOrButton(bool activate, bool alternative /* = false *
void GameObject::Use(Unit* user) void GameObject::Use(Unit* user)
{ {
// Xinef: we cannot use go with not selectable flags // Xinef: we cannot use go with not selectable flags
if (HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE)) if (HasGameObjectFlag(GO_FLAG_NOT_SELECTABLE))
return; return;
// by default spell caster is user // by default spell caster is user
@@ -1577,7 +1577,7 @@ void GameObject::Use(Unit* user)
GameObjectTemplate const* info = GetGOInfo(); GameObjectTemplate const* info = GetGOInfo();
// xinef: Goober cannot be used with this flag, skip // xinef: Goober cannot be used with this flag, skip
if (HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE)) if (HasGameObjectFlag(GO_FLAG_IN_USE))
return; return;
if (user->GetTypeId() == TYPEID_PLAYER) if (user->GetTypeId() == TYPEID_PLAYER)
@@ -1638,7 +1638,7 @@ void GameObject::Use(Unit* user)
if (info->GetAutoCloseTime()) if (info->GetAutoCloseTime())
{ {
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); SetGameObjectFlag(GO_FLAG_IN_USE);
SetLootState(GO_ACTIVATED, user); SetLootState(GO_ACTIVATED, user);
if (!info->goober.customAnim) if (!info->goober.customAnim)
SetGoState(GO_STATE_ACTIVE); SetGoState(GO_STATE_ACTIVE);
@@ -2282,7 +2282,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
switch (state) switch (state)
{ {
case GO_DESTRUCTIBLE_INTACT: case GO_DESTRUCTIBLE_INTACT:
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_DESTROYED); RemoveGameObjectFlag(GO_FLAG_DAMAGED | GO_FLAG_DESTROYED);
SetDisplayId(m_goInfo->displayId); SetDisplayId(m_goInfo->displayId);
if (setHealth) if (setHealth)
{ {
@@ -2301,8 +2301,8 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
if (Battleground* bg = bgMap->GetBG()) if (Battleground* bg = bgMap->GetBG())
bg->EventPlayerDamagedGO(eventInvoker, this, m_goInfo->building.damagedEvent); bg->EventPlayerDamagedGO(eventInvoker, this, m_goInfo->building.damagedEvent);
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED); RemoveGameObjectFlag(GO_FLAG_DESTROYED);
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); SetGameObjectFlag(GO_FLAG_DAMAGED);
uint32 modelId = m_goInfo->building.damagedDisplayId; uint32 modelId = m_goInfo->building.damagedDisplayId;
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData)) if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData))
@@ -2336,8 +2336,8 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
} }
} }
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); RemoveGameObjectFlag(GO_FLAG_DAMAGED);
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED); SetGameObjectFlag(GO_FLAG_DESTROYED);
uint32 modelId = m_goInfo->building.destroyedDisplayId; uint32 modelId = m_goInfo->building.destroyedDisplayId;
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData)) if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData))
@@ -2356,7 +2356,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
case GO_DESTRUCTIBLE_REBUILDING: case GO_DESTRUCTIBLE_REBUILDING:
{ {
EventInform(m_goInfo->building.rebuildingEvent); EventInform(m_goInfo->building.rebuildingEvent);
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_DESTROYED); RemoveGameObjectFlag(GO_FLAG_DAMAGED | GO_FLAG_DESTROYED);
uint32 modelId = m_goInfo->displayId; uint32 modelId = m_goInfo->displayId;
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData)) if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData))
@@ -856,6 +856,12 @@ public:
void SetPhaseMask(uint32 newPhaseMask, bool update) override; void SetPhaseMask(uint32 newPhaseMask, bool update) override;
void EnableCollision(bool enable); void EnableCollision(bool enable);
GameObjectFlags GetGameObjectFlags() const { return GameObjectFlags(GetUInt32Value(GAMEOBJECT_FLAGS)); }
bool HasGameObjectFlag(GameObjectFlags flags) const { return HasFlag(GAMEOBJECT_FLAGS, flags) != 0; }
void SetGameObjectFlag(GameObjectFlags flags) { SetFlag(GAMEOBJECT_FLAGS, flags); }
void RemoveGameObjectFlag(GameObjectFlags flags) { RemoveFlag(GAMEOBJECT_FLAGS, flags); }
void ReplaceAllGameObjectFlags(GameObjectFlags flags) { SetUInt32Value(GAMEOBJECT_FLAGS, flags); }
void Use(Unit* user); void Use(Unit* user);
[[nodiscard]] LootState getLootState() const { return m_lootState; } [[nodiscard]] LootState getLootState() const { return m_lootState; }
@@ -932,9 +938,9 @@ public:
void SetDestructibleState(GameObjectDestructibleState state, Player* eventInvoker = nullptr, bool setHealth = false); void SetDestructibleState(GameObjectDestructibleState state, Player* eventInvoker = nullptr, bool setHealth = false);
[[nodiscard]] GameObjectDestructibleState GetDestructibleState() const [[nodiscard]] GameObjectDestructibleState GetDestructibleState() const
{ {
if (HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED)) if (HasGameObjectFlag(GO_FLAG_DESTROYED))
return GO_DESTRUCTIBLE_DESTROYED; return GO_DESTRUCTIBLE_DESTROYED;
if (HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED)) if (HasGameObjectFlag(GO_FLAG_DAMAGED))
return GO_DESTRUCTIBLE_DAMAGED; return GO_DESTRUCTIBLE_DAMAGED;
return GO_DESTRUCTIBLE_INTACT; return GO_DESTRUCTIBLE_INTACT;
} }
@@ -84,7 +84,7 @@ bool MotionTransport::CreateMoTrans(ObjectGuid::LowType guidlow, uint32 entry, u
if (GameObjectTemplateAddon const* addon = GetTemplateAddon()) if (GameObjectTemplateAddon const* addon = GetTemplateAddon())
{ {
SetUInt32Value(GAMEOBJECT_FACTION, addon->faction); SetUInt32Value(GAMEOBJECT_FACTION, addon->faction);
SetUInt32Value(GAMEOBJECT_FLAGS, addon->flags); ReplaceAllGameObjectFlags((GameObjectFlags)addon->flags);
} }
SetObjectScale(goinfo->size); SetObjectScale(goinfo->size);
@@ -727,7 +727,7 @@ bool StaticTransport::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* m
if (GameObjectTemplateAddon const* addon = GetTemplateAddon()) if (GameObjectTemplateAddon const* addon = GetTemplateAddon())
{ {
SetUInt32Value(GAMEOBJECT_FACTION, addon->faction); SetUInt32Value(GAMEOBJECT_FACTION, addon->faction);
SetUInt32Value(GAMEOBJECT_FLAGS, addon->flags); ReplaceAllGameObjectFlags((GameObjectFlags)addon->flags);
} }
SetEntry(goinfo->entry); SetEntry(goinfo->entry);
+1
View File
@@ -1492,6 +1492,7 @@ public:
else else
RemoveByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_PVP); RemoveByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_PVP);
} }
[[nodiscard]] uint32 GetCreatureType() const; [[nodiscard]] uint32 GetCreatureType() const;
[[nodiscard]] uint32 GetCreatureTypeMask() const [[nodiscard]] uint32 GetCreatureTypeMask() const
{ {
@@ -220,7 +220,7 @@ class go_suppression_device : public GameObjectScript
if (me->GetGoState() == GO_STATE_ACTIVE) if (me->GetGoState() == GO_STATE_ACTIVE)
me->SetGoState(GO_STATE_READY); me->SetGoState(GO_STATE_READY);
me->SetLootState(GO_READY); me->SetLootState(GO_READY);
me->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); me->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
_events.ScheduleEvent(EVENT_SUPPRESSION_CAST, 5000); _events.ScheduleEvent(EVENT_SUPPRESSION_CAST, 5000);
me->Respawn(); me->Respawn();
} }
@@ -231,7 +231,7 @@ class go_suppression_device : public GameObjectScript
return; return;
_active = false; _active = false;
me->SetGoState(GO_STATE_ACTIVE); me->SetGoState(GO_STATE_ACTIVE);
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); me->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
_events.CancelEvent(EVENT_SUPPRESSION_CAST); _events.CancelEvent(EVENT_SUPPRESSION_CAST);
} }
@@ -343,7 +343,7 @@ class go_chromaggus_lever : public GameObjectScript
_instance->HandleGameObject(ObjectGuid::Empty, true, go); _instance->HandleGameObject(ObjectGuid::Empty, true, go);
} }
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE); me->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE);
me->SetGoState(GO_STATE_ACTIVE); me->SetGoState(GO_STATE_ACTIVE);
} }
@@ -169,7 +169,7 @@ public:
case GO_PORTCULLIS_CHROMAGGUS: case GO_PORTCULLIS_CHROMAGGUS:
AddDoor(go, true); AddDoor(go, true);
chromaggusDoorGUID = go->GetGUID(); chromaggusDoorGUID = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
default: default:
break; break;
@@ -143,7 +143,7 @@ public:
HandleGameObject(m_uiStageDoorLeftGUID, true); HandleGameObject(m_uiStageDoorLeftGUID, true);
HandleGameObject(m_uiStageDoorRightGUID, true); HandleGameObject(m_uiStageDoorRightGUID, true);
if (GameObject* sideEntrance = instance->GetGameObject(m_uiSideEntranceDoor)) if (GameObject* sideEntrance = instance->GetGameObject(m_uiSideEntranceDoor))
sideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); sideEntrance->RemoveGameObjectFlag(GO_FLAG_LOCKED);
instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, 16812, nullptr); instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, 16812, nullptr);
} }
break; break;
@@ -187,9 +187,9 @@ public:
case GO_MASSIVE_DOOR: case GO_MASSIVE_DOOR:
m_uiMassiveDoor = go->GetGUID(); m_uiMassiveDoor = go->GetGUID();
if (GetBossState(DATA_ARAN) != IN_PROGRESS) if (GetBossState(DATA_ARAN) != IN_PROGRESS)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); go->SetGameObjectFlag(GO_FLAG_LOCKED);
else else
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
break; break;
case GO_GAMESMAN_HALL_DOOR: case GO_GAMESMAN_HALL_DOOR:
m_uiGamesmansDoor = go->GetGUID(); m_uiGamesmansDoor = go->GetGUID();
@@ -200,9 +200,9 @@ public:
case GO_NETHERSPACE_DOOR: case GO_NETHERSPACE_DOOR:
m_uiNetherspaceDoor = go->GetGUID(); m_uiNetherspaceDoor = go->GetGUID();
if (GetBossState(DATA_PRINCE) != IN_PROGRESS) if (GetBossState(DATA_PRINCE) != IN_PROGRESS)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); go->SetGameObjectFlag(GO_FLAG_LOCKED);
else else
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
break; break;
case GO_MASTERS_TERRACE_DOOR: case GO_MASTERS_TERRACE_DOOR:
MastersTerraceDoor[0] = go->GetGUID(); MastersTerraceDoor[0] = go->GetGUID();
@@ -213,9 +213,9 @@ public:
case GO_SIDE_ENTRANCE_DOOR: case GO_SIDE_ENTRANCE_DOOR:
m_uiSideEntranceDoor = go->GetGUID(); m_uiSideEntranceDoor = go->GetGUID();
if (GetBossState(DATA_OPERA_PERFORMANCE) == DONE) if (GetBossState(DATA_OPERA_PERFORMANCE) == DONE)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); go->SetGameObjectFlag(GO_FLAG_LOCKED);
else else
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
break; break;
case GO_DUST_COVERED_CHEST: case GO_DUST_COVERED_CHEST:
DustCoveredChest = go->GetGUID(); DustCoveredChest = go->GetGUID();
@@ -89,7 +89,7 @@ public:
HandleGameObject(KaelDoorGUID, data != IN_PROGRESS); HandleGameObject(KaelDoorGUID, data != IN_PROGRESS);
if (data == DONE) if (data == DONE)
if (GameObject* escapeOrb = instance->GetGameObject(EscapeOrbGUID)) if (GameObject* escapeOrb = instance->GetGameObject(EscapeOrbGUID))
escapeOrb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); escapeOrb->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
Encounter[identifier] = data; Encounter[identifier] = data;
break; break;
} }
@@ -144,7 +144,7 @@ public:
break; break;
case GO_ESCAPE_ORB: case GO_ESCAPE_ORB:
if (GetData(DATA_KAELTHAS_EVENT) == DONE) if (GetData(DATA_KAELTHAS_EVENT) == DONE)
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
EscapeOrbGUID = go->GetGUID(); EscapeOrbGUID = go->GetGUID();
break; break;
} }
@@ -84,7 +84,7 @@ public:
if (gameobject->GetEntry() < GO_ATALAI_STATUE1 + _statuePhase) if (gameobject->GetEntry() < GO_ATALAI_STATUE1 + _statuePhase)
{ {
instance->SummonGameObject(GO_ATALAI_LIGHT2, gameobject->GetPositionX(), gameobject->GetPositionY(), gameobject->GetPositionZ(), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); instance->SummonGameObject(GO_ATALAI_LIGHT2, gameobject->GetPositionX(), gameobject->GetPositionY(), gameobject->GetPositionZ(), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
gameobject->SetUInt32Value(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameobject->ReplaceAllGameObjectFlags(GO_FLAG_NOT_SELECTABLE);
} }
break; break;
case GO_ATALAI_IDOL: case GO_ATALAI_IDOL:
@@ -93,7 +93,7 @@ public:
break; break;
case GO_IDOL_OF_HAKKAR: case GO_IDOL_OF_HAKKAR:
if (_encounters[TYPE_ATAL_ALARION] == DONE) if (_encounters[TYPE_ATAL_ALARION] == DONE)
gameobject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameobject->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
case GO_FORCEFIELD: case GO_FORCEFIELD:
_forcefieldGUID = gameobject->GetGUID(); _forcefieldGUID = gameobject->GetGUID();
@@ -184,7 +184,7 @@ public:
{ {
for (uint8 i = 0; i < 4; ++i) for (uint8 i = 0; i < 4; ++i)
if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 + i))) if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 + i)))
orb->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); orb->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
void Reset() override void Reset() override
@@ -643,9 +643,9 @@ public:
{ {
if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 + i))) if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 + i)))
{ {
if (orb->HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE)) if (orb->HasGameObjectFlag(GO_FLAG_NOT_SELECTABLE))
{ {
orb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); orb->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
if (Creature* trigger = me->SummonTrigger(orb->GetPositionX(), orb->GetPositionY(), orb->GetPositionZ(), 0, 10 * MINUTE * IN_MILLISECONDS)) if (Creature* trigger = me->SummonTrigger(orb->GetPositionX(), orb->GetPositionY(), orb->GetPositionZ(), 0, 10 * MINUTE * IN_MILLISECONDS))
{ {
trigger->CastSpell(trigger, SPELL_RING_OF_BLUE_FLAMES, true, nullptr, nullptr, trigger->GetGUID()); trigger->CastSpell(trigger, SPELL_RING_OF_BLUE_FLAMES, true, nullptr, nullptr, trigger->GetGUID());
@@ -55,7 +55,7 @@ public:
if (_encounters[DATA_IRONAYA_DOORS] == DONE) if (_encounters[DATA_IRONAYA_DOORS] == DONE)
{ {
HandleGameObject(ObjectGuid::Empty, true, gameobject); HandleGameObject(ObjectGuid::Empty, true, gameobject);
gameobject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameobject->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
break; break;
case GO_TEMPLE_DOOR: case GO_TEMPLE_DOOR:
@@ -671,14 +671,14 @@ public:
break; break;
case GONG_EVENT_3: case GONG_EVENT_3:
if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetGuidData(GO_STRANGE_GONG))) if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetGuidData(GO_STRANGE_GONG)))
gong->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gong->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
_gongEvent = GONG_EVENT_4; _gongEvent = GONG_EVENT_4;
_gongTimer = 105000; _gongTimer = 105000;
break; break;
case GONG_EVENT_4: case GONG_EVENT_4:
me->RemoveAura(SPELL_BANGING_THE_GONG); me->RemoveAura(SPELL_BANGING_THE_GONG);
if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetGuidData(GO_STRANGE_GONG))) if (GameObject* gong = me->GetMap()->GetGameObject(instance->GetGuidData(GO_STRANGE_GONG)))
gong->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gong->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
// trigger or gong will need to be scripted to set IN_PROGRESS after enough hits. // trigger or gong will need to be scripted to set IN_PROGRESS after enough hits.
// This is temp workaround. // This is temp workaround.
@@ -154,7 +154,7 @@ public:
{ {
BossAI::EnterEvadeMode(); BossAI::EnterEvadeMode();
if (GameObject* object = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_GONG_OF_BETHEKK))) if (GameObject* object = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_GONG_OF_BETHEKK)))
object->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); object->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
me->DespawnOrUnsummon(4000); me->DespawnOrUnsummon(4000);
} }
@@ -428,7 +428,7 @@ public:
{ {
if (go->GetInstanceScript() && !go->FindNearestCreature(NPC_ARLOKK, 25.0f)) if (go->GetInstanceScript() && !go->FindNearestCreature(NPC_ARLOKK, 25.0f))
{ {
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
go->SendCustomAnim(0); go->SendCustomAnim(0);
go->SummonCreature(NPC_ARLOKK, PosSummonArlokk[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 600000); go->SummonCreature(NPC_ARLOKK, PosSummonArlokk[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 600000);
} }
@@ -83,9 +83,9 @@ public:
case GO_GONG_OF_BETHEKK: case GO_GONG_OF_BETHEKK:
_goGongOfBethekkGUID = go->GetGUID(); _goGongOfBethekkGUID = go->GetGUID();
if (GetBossState(DATA_ARLOKK) == DONE) if (GetBossState(DATA_ARLOKK) == DONE)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
else else
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
default: default:
break; break;
@@ -611,7 +611,7 @@ public:
if (Creature* c = me->FindNearestCreature(NPC_SUNWELL_VISUAL_BUNNY, 60.0f, true)) if (Creature* c = me->FindNearestCreature(NPC_SUNWELL_VISUAL_BUNNY, 60.0f, true))
c->DespawnOrUnsummon(1); c->DespawnOrUnsummon(1);
if (GameObject* go = me->FindNearestGameObject(GO_QUEL_DELAR, 60.0f)) if (GameObject* go = me->FindNearestGameObject(GO_QUEL_DELAR, 60.0f))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
me->SetWalk(true); me->SetWalk(true);
if (me->GetCreatureData()) if (me->GetCreatureData())
me->GetMotionMaster()->MovePoint(0, me->GetCreatureData()->posX, me->GetCreatureData()->posY, me->GetCreatureData()->posZ); me->GetMotionMaster()->MovePoint(0, me->GetCreatureData()->posX, me->GetCreatureData()->posY, me->GetCreatureData()->posZ);
@@ -72,17 +72,17 @@ public:
case GO_FIRE_OF_AKU_MAI_4: case GO_FIRE_OF_AKU_MAI_4:
if (_encounters[TYPE_AKU_MAI_EVENT] == DONE) if (_encounters[TYPE_AKU_MAI_EVENT] == DONE)
{ {
gameobject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); gameobject->SetGameObjectFlag(GO_FLAG_IN_USE);
gameobject->SetGoState(GO_STATE_ACTIVE); gameobject->SetGoState(GO_STATE_ACTIVE);
} }
break; break;
case GO_SHRINE_OF_GELIHAST: case GO_SHRINE_OF_GELIHAST:
if (_encounters[TYPE_GELIHAST] == DONE) if (_encounters[TYPE_GELIHAST] == DONE)
gameobject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameobject->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
case GO_ALTAR_OF_THE_DEEPS: case GO_ALTAR_OF_THE_DEEPS:
if (_encounters[TYPE_AKU_MAI] == DONE) if (_encounters[TYPE_AKU_MAI] == DONE)
gameobject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameobject->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
case GO_AKU_MAI_DOOR: case GO_AKU_MAI_DOOR:
if (IsFireEventDone() && _encounters[TYPE_AKU_MAI_EVENT] == DONE) if (IsFireEventDone() && _encounters[TYPE_AKU_MAI_EVENT] == DONE)
@@ -116,7 +116,7 @@ public:
{ {
case GO_BARREL: case GO_BARREL:
if (_encounterProgress >= ENCOUNTER_PROGRESS_BARRELS) if (_encounterProgress >= ENCOUNTER_PROGRESS_BARRELS)
gameobject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameobject->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
case GO_PRISON_DOOR: case GO_PRISON_DOOR:
if (_encounterProgress >= ENCOUNTER_PROGRESS_THRALL_ARMORED) if (_encounterProgress >= ENCOUNTER_PROGRESS_THRALL_ARMORED)
@@ -49,7 +49,7 @@ public:
break; break;
case GO_GONG: case GO_GONG:
if (_gongPhase == DONE) if (_gongPhase == DONE)
gameobject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameobject->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
} }
} }
@@ -135,7 +135,7 @@ public:
if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE * 2)) if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE * 2))
{ {
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
SetEscortPaused(true); SetEscortPaused(true);
} }
break; break;
@@ -1031,7 +1031,7 @@ public:
void InitializeAI() override void InitializeAI() override
{ {
me->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); me->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
bool GossipHello(Player* player, bool reportUse) override bool GossipHello(Player* player, bool reportUse) override
@@ -1164,7 +1164,7 @@ public:
} }
me->DespawnOrUnsummon(5000ms, respawnTimer); // Despawn in 5 Seconds for respawnTimer value me->DespawnOrUnsummon(5000ms, respawnTimer); // Despawn in 5 Seconds for respawnTimer value
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); me->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
CloseGossipMenuFor(player); CloseGossipMenuFor(player);
return false; return false;
} }
@@ -354,13 +354,13 @@ public:
{ {
if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_ELUNE_ALTAR, 10.0f)) if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_ELUNE_ALTAR, 10.0f))
{ {
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
me->SetFacingToObject(go); me->SetFacingToObject(go);
_altarGUID = go->GetGUID(); _altarGUID = go->GetGUID();
} }
} }
else if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_ELUNE_FIRE, 10.0f)) else if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_ELUNE_FIRE, 10.0f))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
// Yell and set escort to pause // Yell and set escort to pause
Talk(SAY_REACH_TORCH); Talk(SAY_REACH_TORCH);
@@ -610,7 +610,7 @@ public:
escortAI->DoContinueEscort(isAltar); escortAI->DoContinueEscort(isAltar);
} }
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
return false; return false;
} }
@@ -507,7 +507,7 @@ public:
return true; return true;
} }
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
go->SetGoState(GO_STATE_ACTIVE); go->SetGoState(GO_STATE_ACTIVE);
uint32 const objectIndex = go->GetEntry() == GO_TELDARAM_SPHERE1 ? DATA_TELDRAM_SPHERE1 : DATA_TELDRAM_SPHERE2; uint32 const objectIndex = go->GetEntry() == GO_TELDARAM_SPHERE1 ? DATA_TELDRAM_SPHERE1 : DATA_TELDRAM_SPHERE2;
@@ -77,11 +77,11 @@ public:
if (teldaramSpheres.at(pGo->GetEntry() == GO_TELDARAM_SPHERE1 ? 0 : 1) == DONE || GetBossState(DATA_PRINCE_TALDARAM) == DONE) if (teldaramSpheres.at(pGo->GetEntry() == GO_TELDARAM_SPHERE1 ? 0 : 1) == DONE || GetBossState(DATA_PRINCE_TALDARAM) == DONE)
{ {
pGo->SetGoState(GO_STATE_ACTIVE); pGo->SetGoState(GO_STATE_ACTIVE);
pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGo->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
else else
{ {
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGo->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
break; break;
@@ -1153,7 +1153,7 @@ public:
for (uint8 i = 0; i < 3; ++i) for (uint8 i = 0; i < 3; ++i)
if (StairsPos[index][i].GetPositionX()) if (StairsPos[index][i].GetPositionX())
if (GameObject* go = leader->SummonGameObject(TeamIdInInstance == TEAM_ALLIANCE ? GO_STAIRS_ALLIANCE : GO_STAIRS_HORDE, StairsPos[index][i].GetPositionX(), StairsPos[index][i].GetPositionY(), StairsPos[index][i].GetPositionZ(), StairsPos[index][i].GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 86400, false)) if (GameObject* go = leader->SummonGameObject(TeamIdInInstance == TEAM_ALLIANCE ? GO_STAIRS_ALLIANCE : GO_STAIRS_HORDE, StairsPos[index][i].GetPositionX(), StairsPos[index][i].GetPositionY(), StairsPos[index][i].GetPositionZ(), StairsPos[index][i].GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 86400, false))
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
//Position pos = TeamIdInInstance == TEAM_ALLIANCE ? AllyPortalPos : HordePortalPos; //Position pos = TeamIdInInstance == TEAM_ALLIANCE ? AllyPortalPos : HordePortalPos;
//leader->SummonGameObject(GO_PORTAL_TO_DALARAN, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 86400); //leader->SummonGameObject(GO_PORTAL_TO_DALARAN, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 86400);
@@ -176,15 +176,15 @@ public:
{ {
case DATA_SLAD_RAN: case DATA_SLAD_RAN:
if (GameObject* altar = instance->GetGameObject(_sladRanAltarGUID)) if (GameObject* altar = instance->GetGameObject(_sladRanAltarGUID))
altar->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); altar->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
case DATA_MOORABI: case DATA_MOORABI:
if (GameObject* altar = instance->GetGameObject(_moorabiAltarGUID)) if (GameObject* altar = instance->GetGameObject(_moorabiAltarGUID))
altar->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); altar->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
case DATA_DRAKKARI_COLOSSUS: case DATA_DRAKKARI_COLOSSUS:
if (GameObject* altar = instance->GetGameObject(_drakkariAltarGUID)) if (GameObject* altar = instance->GetGameObject(_drakkariAltarGUID))
altar->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); altar->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
case DATA_ECK_THE_FEROCIOUS_INIT: case DATA_ECK_THE_FEROCIOUS_INIT:
{ {
@@ -568,7 +568,7 @@ public:
if (GameObject* teleporter = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(GO_SCOURGE_TRANSPORTER_SAURFANG))) if (GameObject* teleporter = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(GO_SCOURGE_TRANSPORTER_SAURFANG)))
{ {
_instance->HandleGameObject(ObjectGuid::Empty, false, teleporter); _instance->HandleGameObject(ObjectGuid::Empty, false, teleporter);
teleporter->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); teleporter->SetGameObjectFlag(GO_FLAG_IN_USE);
} }
deathbringer->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); deathbringer->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
@@ -830,7 +830,7 @@ public:
if (GameObject* teleporter = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(GO_SCOURGE_TRANSPORTER_SAURFANG))) if (GameObject* teleporter = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(GO_SCOURGE_TRANSPORTER_SAURFANG)))
{ {
_instance->HandleGameObject(ObjectGuid::Empty, false, teleporter); _instance->HandleGameObject(ObjectGuid::Empty, false, teleporter);
teleporter->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); teleporter->SetGameObjectFlag(GO_FLAG_IN_USE);
} }
deathbringer->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); deathbringer->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
@@ -758,12 +758,12 @@ public:
case GO_GAS_RELEASE_VALVE: case GO_GAS_RELEASE_VALVE:
GasReleaseValveGUID = go->GetGUID(); GasReleaseValveGUID = go->GetGUID();
if (GetBossState(DATA_FESTERGUT) != DONE) if (GetBossState(DATA_FESTERGUT) != DONE)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
break; break;
case GO_OOZE_RELEASE_VALVE: case GO_OOZE_RELEASE_VALVE:
OozeReleaseValveGUID = go->GetGUID(); OozeReleaseValveGUID = go->GetGUID();
if (GetBossState(DATA_ROTFACE) != DONE) if (GetBossState(DATA_ROTFACE) != DONE)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
break; break;
case GO_DRINK_ME: case GO_DRINK_ME:
PutricideTableGUID = go->GetGUID(); PutricideTableGUID = go->GetGUID();
@@ -774,7 +774,7 @@ public:
case GO_CACHE_OF_THE_DREAMWALKER_25H: case GO_CACHE_OF_THE_DREAMWALKER_25H:
if (Creature* valithria = instance->GetCreature(ValithriaDreamwalkerGUID)) if (Creature* valithria = instance->GetCreature(ValithriaDreamwalkerGUID))
go->SetLootRecipient(valithria); go->SetLootRecipient(valithria);
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN); go->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
break; break;
case GO_SCOURGE_TRANSPORTER_LK: case GO_SCOURGE_TRANSPORTER_LK:
TheLichKingTeleportGUID = go->GetGUID(); TheLichKingTeleportGUID = go->GetGUID();
@@ -819,7 +819,7 @@ public:
AddDoor(go, true); AddDoor(go, true);
ScourgeTransporterFirstGUID = go->GetGUID(); ScourgeTransporterFirstGUID = go->GetGUID();
if (GetBossState(DATA_LORD_MARROWGAR) == DONE) if (GetBossState(DATA_LORD_MARROWGAR) == DONE)
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
default: default:
break; break;
@@ -1029,7 +1029,7 @@ public:
WeeklyQuestId10 = RAND(QUEST_BLOOD_QUICKENING_10, QUEST_RESIDUE_RENDEZVOUS_10, QUEST_RESPITE_FOR_A_TORMENTED_SOUL_10, QUEST_DEPROGRAMMING_10, QUEST_SECURING_THE_RAMPARTS_10); WeeklyQuestId10 = RAND(QUEST_BLOOD_QUICKENING_10, QUEST_RESIDUE_RENDEZVOUS_10, QUEST_RESPITE_FOR_A_TORMENTED_SOUL_10, QUEST_DEPROGRAMMING_10, QUEST_SECURING_THE_RAMPARTS_10);
SetData(DATA_WEEKLY_QUEST_ID, 0); // show required hidden npcs SetData(DATA_WEEKLY_QUEST_ID, 0); // show required hidden npcs
if (GameObject* transporter = instance->GetGameObject(ScourgeTransporterFirstGUID)) if (GameObject* transporter = instance->GetGameObject(ScourgeTransporterFirstGUID))
transporter->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); transporter->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
SaveToDB(); SaveToDB();
} }
break; break;
@@ -1043,7 +1043,7 @@ public:
if (GameObject* loot = instance->GetGameObject(GunshipArmoryGUID)) if (GameObject* loot = instance->GetGameObject(GunshipArmoryGUID))
{ {
loot->SetLootRecipient(instance); loot->SetLootRecipient(instance);
loot->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN); loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
} }
} }
else if (state == FAIL) else if (state == FAIL)
@@ -1057,14 +1057,14 @@ public:
{ {
if (Creature* deathbringer = instance->GetCreature(DeathbringerSaurfangGUID)) if (Creature* deathbringer = instance->GetCreature(DeathbringerSaurfangGUID))
loot->SetLootRecipient(deathbringer); loot->SetLootRecipient(deathbringer);
loot->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN); loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
} }
[[fallthrough]]; [[fallthrough]];
case NOT_STARTED: case NOT_STARTED:
if (GameObject* teleporter = instance->GetGameObject(SaurfangTeleportGUID)) if (GameObject* teleporter = instance->GetGameObject(SaurfangTeleportGUID))
{ {
HandleGameObject(SaurfangTeleportGUID, true, teleporter); HandleGameObject(SaurfangTeleportGUID, true, teleporter);
teleporter->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); teleporter->RemoveGameObjectFlag(GO_FLAG_IN_USE);
} }
break; break;
default: default:
@@ -1075,7 +1075,7 @@ public:
if (state == DONE) if (state == DONE)
{ {
if (GameObject* go = instance->GetGameObject(GasReleaseValveGUID)) if (GameObject* go = instance->GetGameObject(GasReleaseValveGUID))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
if (GetBossState(DATA_ROTFACE) == DONE) if (GetBossState(DATA_ROTFACE) == DONE)
HandleDropAttempt(false); HandleDropAttempt(false);
} }
@@ -1084,7 +1084,7 @@ public:
if (state == DONE) if (state == DONE)
{ {
if (GameObject* go = instance->GetGameObject(OozeReleaseValveGUID)) if (GameObject* go = instance->GetGameObject(OozeReleaseValveGUID))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
if (GetBossState(DATA_FESTERGUT) == DONE) if (GetBossState(DATA_FESTERGUT) == DONE)
HandleDropAttempt(false); HandleDropAttempt(false);
} }
@@ -403,7 +403,7 @@ public:
if (GetBossState(BOSS_LOATHEB) == DONE) if (GetBossState(BOSS_LOATHEB) == DONE)
{ {
pGo->SetGoState(GO_STATE_ACTIVE); pGo->SetGoState(GO_STATE_ACTIVE);
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGo->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
break; break;
case GO_THADDIUS_PORTAL: case GO_THADDIUS_PORTAL:
@@ -411,7 +411,7 @@ public:
if (GetBossState(BOSS_THADDIUS) == DONE) if (GetBossState(BOSS_THADDIUS) == DONE)
{ {
pGo->SetGoState(GO_STATE_ACTIVE); pGo->SetGoState(GO_STATE_ACTIVE);
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGo->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
break; break;
case GO_MAEXXNA_PORTAL: case GO_MAEXXNA_PORTAL:
@@ -419,7 +419,7 @@ public:
if (GetBossState(BOSS_MAEXXNA) == DONE) if (GetBossState(BOSS_MAEXXNA) == DONE)
{ {
pGo->SetGoState(GO_STATE_ACTIVE); pGo->SetGoState(GO_STATE_ACTIVE);
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGo->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
break; break;
case GO_HORSEMAN_PORTAL: case GO_HORSEMAN_PORTAL:
@@ -427,7 +427,7 @@ public:
if (GetBossState(BOSS_HORSEMAN) == DONE) if (GetBossState(BOSS_HORSEMAN) == DONE)
{ {
pGo->SetGoState(GO_STATE_ACTIVE); pGo->SetGoState(GO_STATE_ACTIVE);
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGo->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
break; break;
@@ -844,7 +844,7 @@ public:
if (GameObject* go = instance->GetGameObject(_loathebPortalGUID)) if (GameObject* go = instance->GetGameObject(_loathebPortalGUID))
{ {
go->SetGoState(GO_STATE_ACTIVE); go->SetGoState(GO_STATE_ACTIVE);
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
if (GameObject* go = instance->GetGameObject(_plagueEyePortalGUID)) if (GameObject* go = instance->GetGameObject(_plagueEyePortalGUID))
{ {
@@ -884,7 +884,7 @@ public:
if (GameObject* go = instance->GetGameObject(_maexxnaPortalGUID)) if (GameObject* go = instance->GetGameObject(_maexxnaPortalGUID))
{ {
go->SetGoState(GO_STATE_ACTIVE); go->SetGoState(GO_STATE_ACTIVE);
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
if (GameObject* go = instance->GetGameObject(_spiderEyePortalGUID)) if (GameObject* go = instance->GetGameObject(_spiderEyePortalGUID))
{ {
@@ -917,7 +917,7 @@ public:
if (GameObject* go = instance->GetGameObject(_thaddiusPortalGUID)) if (GameObject* go = instance->GetGameObject(_thaddiusPortalGUID))
{ {
go->SetGoState(GO_STATE_ACTIVE); go->SetGoState(GO_STATE_ACTIVE);
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
if (GameObject* go = instance->GetGameObject(_abomEyePortalGUID)) if (GameObject* go = instance->GetGameObject(_abomEyePortalGUID))
{ {
@@ -933,7 +933,7 @@ public:
if (GameObject* go = instance->GetGameObject(_horsemanPortalGUID)) if (GameObject* go = instance->GetGameObject(_horsemanPortalGUID))
{ {
go->SetGoState(GO_STATE_ACTIVE); go->SetGoState(GO_STATE_ACTIVE);
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
if (GameObject* go = instance->GetGameObject(_deathknightEyePortalGUID)) if (GameObject* go = instance->GetGameObject(_deathknightEyePortalGUID))
{ {
@@ -91,17 +91,17 @@ public:
{ {
case GO_TELESTRA_SPHERE: case GO_TELESTRA_SPHERE:
if (GetBossState(DATA_TELESTRA_ORB) != DONE && GetBossState(DATA_MAGUS_TELESTRA_EVENT) == DONE) if (GetBossState(DATA_TELESTRA_ORB) != DONE && GetBossState(DATA_MAGUS_TELESTRA_EVENT) == DONE)
gameObject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameObject->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
AddDoor(gameObject, true); AddDoor(gameObject, true);
break; break;
case GO_ANOMALUS_SPHERE: case GO_ANOMALUS_SPHERE:
if (GetBossState(DATA_ANOMALUS_ORB) != DONE && GetBossState(DATA_ANOMALUS_EVENT) == DONE) if (GetBossState(DATA_ANOMALUS_ORB) != DONE && GetBossState(DATA_ANOMALUS_EVENT) == DONE)
gameObject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameObject->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
AddDoor(gameObject, true); AddDoor(gameObject, true);
break; break;
case GO_ORMOROK_SPHERE: case GO_ORMOROK_SPHERE:
if (GetBossState(DATA_ORMOROK_ORB) != DONE && GetBossState(DATA_ORMOROK_EVENT) == DONE) if (GetBossState(DATA_ORMOROK_ORB) != DONE && GetBossState(DATA_ORMOROK_EVENT) == DONE)
gameObject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gameObject->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
AddDoor(gameObject, true); AddDoor(gameObject, true);
break; break;
} }
@@ -148,7 +148,7 @@ public:
BossInfo const* bossInfo = GetBossInfo(id + DATA_TELESTRA_ORB); BossInfo const* bossInfo = GetBossInfo(id + DATA_TELESTRA_ORB);
for (DoorSet::const_iterator i = bossInfo->door[DOOR_TYPE_PASSAGE].begin(); i != bossInfo->door[DOOR_TYPE_PASSAGE].end(); ++i) for (DoorSet::const_iterator i = bossInfo->door[DOOR_TYPE_PASSAGE].begin(); i != bossInfo->door[DOOR_TYPE_PASSAGE].end(); ++i)
(*i)->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); (*i)->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
return true; return true;
} }
@@ -513,7 +513,7 @@ public:
{ {
plr->RemoveGameObject(go, false); plr->RemoveGameObject(go, false);
go->SetLootMode(1); go->SetLootMode(1);
go->SetUInt32Value(GAMEOBJECT_FLAGS, 0); go->ReplaceAllGameObjectFlags((GameObjectFlags)0);
} }
plr->GroupEventHappens(QUEST_HALLS_OF_STONE, me); plr->GroupEventHappens(QUEST_HALLS_OF_STONE, me);
@@ -752,7 +752,7 @@ public:
// Summon Chest // Summon Chest
if (GameObject* go = me->SummonGameObject(RAID_MODE(GO_ALGALON_CHEST, GO_ALGALON_CHEST_HERO), 1632.1f, -306.561f, 417.321f, 4.69494f, 0, 0, 0, 1, 0)) if (GameObject* go = me->SummonGameObject(RAID_MODE(GO_ALGALON_CHEST, GO_ALGALON_CHEST_HERO), 1632.1f, -306.561f, 417.321f, 4.69494f, 0, 0, 0, 1, 0))
{ {
go->SetUInt32Value(GAMEOBJECT_FLAGS, 0); go->ReplaceAllGameObjectFlags((GameObjectFlags)0);
go->SetLootRecipient(me); go->SetLootRecipient(me);
} }
break; break;
@@ -1132,7 +1132,7 @@ public:
return false; return false;
_locked = true; _locked = true;
// Start Algalon event // Start Algalon event
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); me->SetGameObjectFlag(GO_FLAG_IN_USE);
events.ScheduleEvent(EVENT_DESPAWN_CONSOLE, 5000); events.ScheduleEvent(EVENT_DESPAWN_CONSOLE, 5000);
if (Creature* brann = me->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannIntroSpawnPos)) if (Creature* brann = me->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannIntroSpawnPos))
brann->AI()->DoAction(ACTION_START_INTRO); brann->AI()->DoAction(ACTION_START_INTRO);
@@ -371,7 +371,7 @@ public:
me->DespawnOrUnsummon(5000); me->DespawnOrUnsummon(5000);
if (GameObject* go = me->SummonGameObject(chestId, 2345.61f, -71.20f, 425.104f, 3.0f, 0, 0, 0, 0, 0)) if (GameObject* go = me->SummonGameObject(chestId, 2345.61f, -71.20f, 425.104f, 3.0f, 0, 0, 0, 0, 0))
{ {
go->SetUInt32Value(GAMEOBJECT_FLAGS, 0); go->ReplaceAllGameObjectFlags((GameObjectFlags)0);
go->SetLootRecipient(me->GetMap()); go->SetLootRecipient(me->GetMap());
} }
@@ -318,7 +318,7 @@ public:
{ {
me->RemoveGameObject(go, false); me->RemoveGameObject(go, false);
go->SetSpellId(1); // hack to make it despawn go->SetSpellId(1); // hack to make it despawn
go->SetUInt32Value(GAMEOBJECT_FLAGS, 0); go->ReplaceAllGameObjectFlags((GameObjectFlags)0);
go->SetLootRecipient(me); go->SetLootRecipient(me);
} }
if (Creature* arm = ObjectAccessor::GetCreature(*me, _left)) if (Creature* arm = ObjectAccessor::GetCreature(*me, _left))
@@ -822,7 +822,7 @@ public:
{ {
if (GameObject* go = me->SummonGameObject(chestId, 2744.65f, 2569.46f, 364.397f, 0, 0, 0, 0, 0, 0)) if (GameObject* go = me->SummonGameObject(chestId, 2744.65f, 2569.46f, 364.397f, 0, 0, 0, 0, 0, 0))
{ {
go->SetUInt32Value(GAMEOBJECT_FLAGS, 0); go->ReplaceAllGameObjectFlags((GameObjectFlags)0);
go->SetLootRecipient(me->GetMap()); go->SetLootRecipient(me->GetMap());
} }
} }
@@ -906,7 +906,7 @@ public:
{ {
button->SetLootState(GO_READY); button->SetLootState(GO_READY);
button->UseDoorOrButton(0, false); button->UseDoorOrButton(0, false);
button->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); button->RemoveGameObjectFlag(GO_FLAG_IN_USE);
} }
} }
@@ -420,7 +420,7 @@ public:
GameObject* go; GameObject* go;
if ((go = GetThorimObject(DATA_THORIM_LEVER))) if ((go = GetThorimObject(DATA_THORIM_LEVER)))
{ {
go->SetUInt32Value(GAMEOBJECT_FLAGS, 48); go->ReplaceAllGameObjectFlags((GameObjectFlags)48);
go->SetGoState(GO_STATE_READY); go->SetGoState(GO_STATE_READY);
} }
if ((go = GetThorimObject(DATA_THORIM_FIRST_DOORS))) if ((go = GetThorimObject(DATA_THORIM_FIRST_DOORS)))
@@ -485,7 +485,7 @@ public:
if (_trashCounter >= 6) if (_trashCounter >= 6)
{ {
if (GameObject* go = GetThorimObject(DATA_THORIM_LEVER)) if (GameObject* go = GetThorimObject(DATA_THORIM_LEVER))
go->RemoveFlag(GAMEOBJECT_FLAGS, 48); go->RemoveGameObjectFlag((GameObjectFlags)48);
events.SetPhase(EVENT_PHASE_START); events.SetPhase(EVENT_PHASE_START);
events.ScheduleEvent(EVENT_THORIM_START_PHASE1, 20000); events.ScheduleEvent(EVENT_THORIM_START_PHASE1, 20000);
@@ -593,7 +593,7 @@ public:
if ((go = me->SummonGameObject(chestId, 2134.73f, -286.32f, 419.51f, 0.0f, 0, 0, 0, 0, 0))) if ((go = me->SummonGameObject(chestId, 2134.73f, -286.32f, 419.51f, 0.0f, 0, 0, 0, 0, 0)))
{ {
go->SetUInt32Value(GAMEOBJECT_FLAGS, 0); go->ReplaceAllGameObjectFlags((GameObjectFlags)0);
go->SetLootRecipient(me->GetMap()); go->SetLootRecipient(me->GetMap());
} }
@@ -230,7 +230,7 @@ public:
normalChestPosition.GetOrientation(), 0, 0, 0, 0, 0)) normalChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
{ {
m_hodirNormalChest = go->GetGUID(); m_hodirNormalChest = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
} }
if (!m_hodirHardmodeChest) if (!m_hodirHardmodeChest)
@@ -243,7 +243,7 @@ public:
hardChestPosition.GetOrientation(), 0, 0, 0, 0, 0)) hardChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
{ {
m_hodirHardmodeChest = go->GetGUID(); m_hodirHardmodeChest = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
hmHodir = true; hmHodir = true;
} }
} }
@@ -261,7 +261,7 @@ public:
normalChestPosition.GetOrientation(), 0, 0, 0, 0, 0)) normalChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
{ {
m_hodirNormalChest = go->GetGUID(); m_hodirNormalChest = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
} }
if (!m_hodirHardmodeChest) if (!m_hodirHardmodeChest)
@@ -274,7 +274,7 @@ public:
hardChestPosition.GetOrientation(), 0, 0, 0, 0, 0)) hardChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
{ {
m_hodirHardmodeChest = go->GetGUID(); m_hodirHardmodeChest = go->GetGUID();
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
hmHodir = true; hmHodir = true;
} }
} }
@@ -543,7 +543,7 @@ public:
if (GetData(TYPE_MIMIRON) == DONE && GetData(TYPE_FREYA) == DONE && GetData(TYPE_HODIR) == DONE && GetData(TYPE_THORIM) == DONE) if (GetData(TYPE_MIMIRON) == DONE && GetData(TYPE_FREYA) == DONE && GetData(TYPE_HODIR) == DONE && GetData(TYPE_THORIM) == DONE)
{ {
instance->LoadGrid(1903.0f, 248.0f); instance->LoadGrid(1903.0f, 248.0f);
gameObject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); gameObject->RemoveGameObjectFlag(GO_FLAG_LOCKED);
} }
m_keepersgateGUID = gameObject->GetGUID(); m_keepersgateGUID = gameObject->GetGUID();
@@ -590,7 +590,7 @@ public:
case GO_CELESTIAL_PLANETARIUM_ACCESS_10: case GO_CELESTIAL_PLANETARIUM_ACCESS_10:
case GO_CELESTIAL_PLANETARIUM_ACCESS_25: case GO_CELESTIAL_PLANETARIUM_ACCESS_25:
if (m_algalonTimer) if (m_algalonTimer)
gameObject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); gameObject->SetGameObjectFlag(GO_FLAG_IN_USE);
break; break;
case GO_DOODAD_UL_SIGILDOOR_01: case GO_DOODAD_UL_SIGILDOOR_01:
m_algalonSigilDoorGUID[0] = gameObject->GetGUID(); m_algalonSigilDoorGUID[0] = gameObject->GetGUID();
@@ -640,13 +640,13 @@ public:
{ {
if (GameObject* go = instance->GetGameObject(m_hodirHardmodeChest)) if (GameObject* go = instance->GetGameObject(m_hodirHardmodeChest))
{ {
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
go->SetLootRecipient(instance); go->SetLootRecipient(instance);
} }
} }
if (GameObject* go = instance->GetGameObject(m_hodirNormalChest)) if (GameObject* go = instance->GetGameObject(m_hodirNormalChest))
{ {
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
go->SetLootRecipient(instance); go->SetLootRecipient(instance);
} }
break; break;
@@ -694,7 +694,7 @@ public:
if (GetData(TYPE_MIMIRON) == DONE && GetData(TYPE_FREYA) == DONE && GetData(TYPE_HODIR) == DONE && GetData(TYPE_THORIM) == DONE) if (GetData(TYPE_MIMIRON) == DONE && GetData(TYPE_FREYA) == DONE && GetData(TYPE_HODIR) == DONE && GetData(TYPE_THORIM) == DONE)
{ {
if (GameObject* go = instance->GetGameObject(m_keepersgateGUID)) if (GameObject* go = instance->GetGameObject(m_keepersgateGUID))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
} }
if (type == TYPE_MIMIRON && data == IN_PROGRESS) // after reaching him without tram and starting the fight if (type == TYPE_MIMIRON && data == IN_PROGRESS) // after reaching him without tram and starting the fight
m_mimironTramUsed = true; m_mimironTramUsed = true;
@@ -166,7 +166,7 @@ public:
// Reset statue // Reset statue
if (GameObject* statisGenerator = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(STATIS_GENERATOR))) if (GameObject* statisGenerator = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(STATIS_GENERATOR)))
{ {
statisGenerator->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); statisGenerator->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
statisGenerator->SetGoState(GO_STATE_READY); statisGenerator->SetGoState(GO_STATE_READY);
} }
@@ -802,7 +802,7 @@ public:
if (pPalehoof && pPalehoof->IsAlive()) if (pPalehoof && pPalehoof->IsAlive())
{ {
// maybe these are hacks :( // maybe these are hacks :(
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
go->SetGoState(GO_STATE_ACTIVE); go->SetGoState(GO_STATE_ACTIVE);
pPalehoof->AI()->DoAction(ACTION_START_EVENT); pPalehoof->AI()->DoAction(ACTION_START_EVENT);
@@ -165,7 +165,7 @@ public:
{ {
case GO_ACTIVATION_CRYSTAL: case GO_ACTIVATION_CRYSTAL:
HandleGameObject(ObjectGuid::Empty, false, go); // make go not used yet HandleGameObject(ObjectGuid::Empty, false, go); // make go not used yet
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); // not useable at the beginning go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // not useable at the beginning
GO_ActivationCrystalGUID.push_back(go->GetGUID()); GO_ActivationCrystalGUID.push_back(go->GetGUID());
break; break;
case GO_MAIN_DOOR: case GO_MAIN_DOOR:
@@ -451,7 +451,7 @@ public:
if (GameObject* go = instance->GetGameObject(guid)) if (GameObject* go = instance->GetGameObject(guid))
{ {
HandleGameObject(ObjectGuid::Empty, false, go); // not used yet HandleGameObject(ObjectGuid::Empty, false, go); // not used yet
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); // make it useable go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // make it useable
} }
events.RescheduleEvent(EVENT_SUMMON_PORTAL, 4000); events.RescheduleEvent(EVENT_SUMMON_PORTAL, 4000);
} }
@@ -545,7 +545,7 @@ public:
if (GameObject* go = instance->GetGameObject(guid)) if (GameObject* go = instance->GetGameObject(guid))
{ {
HandleGameObject(ObjectGuid::Empty, false, go); // not used yet HandleGameObject(ObjectGuid::Empty, false, go); // not used yet
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); // not useable at the beginning go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // not useable at the beginning
} }
// reset positions of Sinclari and Guards // reset positions of Sinclari and Guards
@@ -848,7 +848,7 @@ public:
c->RemoveAllAuras(); c->RemoveAllAuras();
c->CastSpell(c, SPELL_SAC_HOLY_ZONE_AURA, true); c->CastSpell(c, SPELL_SAC_HOLY_ZONE_AURA, true);
if (GameObject* go = me->FindNearestGameObject(GO_SAC_LIGHTS_VENGEANCE_3, 150.0f)) if (GameObject* go = me->FindNearestGameObject(GO_SAC_LIGHTS_VENGEANCE_3, 150.0f))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
playerGUID.Clear(); playerGUID.Clear();
events.RescheduleEvent(2, 60000); events.RescheduleEvent(2, 60000);
} }
@@ -967,7 +967,7 @@ public:
c->CastSpell(c, SPELL_SAC_VEGARD_SUMMON_GHOULS_AURA, false); c->CastSpell(c, SPELL_SAC_VEGARD_SUMMON_GHOULS_AURA, false);
} }
if (GameObject* go = me->FindNearestGameObject(GO_SAC_LIGHTS_VENGEANCE_1, 150.0f)) if (GameObject* go = me->FindNearestGameObject(GO_SAC_LIGHTS_VENGEANCE_1, 150.0f))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
case 15: // remove light case 15: // remove light
if (Creature* x = me->FindNearestCreature(NPC_SAC_LIGHTS_VENGEANCE_VEH_2, 150.0f, true)) if (Creature* x = me->FindNearestCreature(NPC_SAC_LIGHTS_VENGEANCE_VEH_2, 150.0f, true))
@@ -71,7 +71,7 @@ public:
{ {
DoUseDoorOrButton(m_uiIkissDoorGUID, DAY * IN_MILLISECONDS); DoUseDoorOrButton(m_uiIkissDoorGUID, DAY * IN_MILLISECONDS);
if (GameObject* coffer = instance->GetGameObject(_talonKingsCofferGUID)) 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; break;
case TYPE_ANZU_ENCOUNTER: case TYPE_ANZU_ENCOUNTER:
@@ -56,7 +56,7 @@ public:
if (type == DATA_LADY_VASHJ) if (type == DATA_LADY_VASHJ)
for (uint8 i = 0; i < 4; ++i) for (uint8 i = 0; i < 4; ++i)
if (GameObject* gobject = instance->GetGameObject(ShieldGeneratorGUID[i])) if (GameObject* gobject = instance->GetGameObject(ShieldGeneratorGUID[i]))
gobject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); gobject->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
return true; return true;
} }
@@ -158,7 +158,7 @@ public:
for (uint8 i = 0; i < 4; ++i) for (uint8 i = 0; i < 4; ++i)
if (GameObject* gobject = instance->GetGameObject(ShieldGeneratorGUID[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); vashj->SummonTrigger(gobject->GetPositionX(), gobject->GetPositionY(), gobject->GetPositionZ(), 0.0f, 0);
} }
break; break;
@@ -33,14 +33,14 @@ public:
if (go->GetEntry() == GO_ACCESS_PANEL_HYDRO) if (go->GetEntry() == GO_ACCESS_PANEL_HYDRO)
if (instance->GetData(TYPE_HYDROMANCER_THESPIA) == DONE) 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); instance->SetData(TYPE_HYDROMANCER_THESPIA, SPECIAL);
} }
if (go->GetEntry() == GO_ACCESS_PANEL_MEK) if (go->GetEntry() == GO_ACCESS_PANEL_MEK)
if (instance->GetData(TYPE_MEKGINEER_STEAMRIGGER) == DONE) 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); instance->SetData(TYPE_MEKGINEER_STEAMRIGGER, SPECIAL);
} }
@@ -105,14 +105,14 @@ public:
case GO_ACCESS_PANEL_HYDRO: case GO_ACCESS_PANEL_HYDRO:
AccessPanelHydro = go->GetGUID(); AccessPanelHydro = go->GetGUID();
if (GetData(TYPE_HYDROMANCER_THESPIA) == DONE) 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) else if (GetData(TYPE_HYDROMANCER_THESPIA) == SPECIAL)
HandleGameObject(ObjectGuid::Empty, true, go); HandleGameObject(ObjectGuid::Empty, true, go);
break; break;
case GO_ACCESS_PANEL_MEK: case GO_ACCESS_PANEL_MEK:
AccessPanelMek = go->GetGUID(); AccessPanelMek = go->GetGUID();
if (GetData(TYPE_MEKGINEER_STEAMRIGGER) == DONE) 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) else if (GetData(TYPE_MEKGINEER_STEAMRIGGER) == SPECIAL)
HandleGameObject(ObjectGuid::Empty, true, go); HandleGameObject(ObjectGuid::Empty, true, go);
break; break;
@@ -132,7 +132,7 @@ public:
else if (data == DONE) else if (data == DONE)
{ {
if (GameObject* panel = instance->GetGameObject(AccessPanelHydro)) if (GameObject* panel = instance->GetGameObject(AccessPanelHydro))
panel->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); panel->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
m_auiEncounter[type] = data; m_auiEncounter[type] = data;
@@ -146,7 +146,7 @@ public:
else if (data == DONE) else if (data == DONE)
{ {
if (GameObject* panel = instance->GetGameObject(AccessPanelMek)) if (GameObject* panel = instance->GetGameObject(AccessPanelMek))
panel->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); panel->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
} }
m_auiEncounter[type] = data; m_auiEncounter[type] = data;
@@ -51,7 +51,7 @@ public:
if (type == DATA_VAZRUDEN && state == DONE) if (type == DATA_VAZRUDEN && state == DONE)
if (GameObject* chest = instance->GetGameObject(felIronChestGUID)) if (GameObject* chest = instance->GetGameObject(felIronChestGUID))
chest->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); chest->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
return true; return true;
} }
@@ -142,7 +142,7 @@ public:
{ {
for (ObjectGuid const& guid : _cubesSet) for (ObjectGuid const& guid : _cubesSet)
if (GameObject* cube = instance->GetGameObject(guid)) if (GameObject* cube = instance->GetGameObject(guid))
cube->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); cube->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
if (state == NOT_STARTED) if (state == NOT_STARTED)
SetData(DATA_COLLAPSE, GO_READY); SetData(DATA_COLLAPSE, GO_READY);
@@ -163,7 +163,7 @@ public:
case DATA_ACTIVATE_CUBES: case DATA_ACTIVATE_CUBES:
for (ObjectGuid const& guid : _cubesSet) for (ObjectGuid const& guid : _cubesSet)
if (GameObject* cube = instance->GetGameObject(guid)) if (GameObject* cube = instance->GetGameObject(guid))
cube->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); cube->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
break; break;
case DATA_COLLAPSE: case DATA_COLLAPSE:
for (ObjectGuid const& guid : _columnSet) for (ObjectGuid const& guid : _columnSet)
@@ -772,7 +772,7 @@ public:
_events.ScheduleEvent(EVENT_SIMON_PERIODIC_PLAYER_CHECK, 2000); _events.ScheduleEvent(EVENT_SIMON_PERIODIC_PLAYER_CHECK, 2000);
if (GameObject* relic = me->FindNearestGameObject(large ? GO_APEXIS_MONUMENT : GO_APEXIS_RELIC, searchDistance)) 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. // 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++) for (uint32 clusterId = SIMON_BLUE; clusterId < SIMON_MAX_COLORS; clusterId++)
if (GameObject* cluster = me->FindNearestGameObject(clusterIds[clusterId], searchDistance)) 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++) for (uint32 auraId = GO_AURA_BLUE; auraId <= GO_AURA_YELLOW; auraId++)
if (GameObject* auraGo = me->FindNearestGameObject(auraId, searchDistance)) if (GameObject* auraGo = me->FindNearestGameObject(auraId, searchDistance))
auraGo->RemoveFromWorld(); auraGo->RemoveFromWorld();
if (GameObject* relic = me->FindNearestGameObject(large ? GO_APEXIS_MONUMENT : GO_APEXIS_RELIC, searchDistance)) 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); me->DespawnOrUnsummon(1000);
} }
@@ -832,7 +832,7 @@ public:
{ {
for (uint32 clusterId = SIMON_BLUE; clusterId < SIMON_MAX_COLORS; clusterId++) for (uint32 clusterId = SIMON_BLUE; clusterId < SIMON_MAX_COLORS; clusterId++)
if (GameObject* cluster = me->FindNearestGameObject(clusterIds[clusterId], searchDistance)) if (GameObject* cluster = me->FindNearestGameObject(clusterIds[clusterId], searchDistance))
cluster->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); cluster->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
if (clustersOnly) if (clustersOnly)
return; return;
@@ -886,7 +886,7 @@ public:
{ {
if (GameObject* cluster = me->FindNearestGameObject(clusterIds[clusterId], 2.0f * searchDistance)) 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 // break since we don't need glowing auras for large clusters
if (large) if (large)
+2 -2
View File
@@ -895,7 +895,7 @@ public:
if (player->GetQuestStatus(QUEST_THE_FIRST_TRIAL) == QUEST_STATUS_INCOMPLETE) if (player->GetQuestStatus(QUEST_THE_FIRST_TRIAL) == QUEST_STATUS_INCOMPLETE)
{ {
_playerGUID = player->GetGUID(); _playerGUID = player->GetGUID();
me->SetFlag(GAMEOBJECT_FLAGS, 1); me->SetGameObjectFlag((GameObjectFlags)1);
me->RemoveByteFlag(GAMEOBJECT_BYTES_1, 0, 1); me->RemoveByteFlag(GAMEOBJECT_BYTES_1, 0, 1);
_events.ScheduleEvent(EVENT_STILLBLADE_SPAWN, 1000); _events.ScheduleEvent(EVENT_STILLBLADE_SPAWN, 1000);
} }
@@ -922,7 +922,7 @@ public:
} }
case EVENT_RESET_BRAZIER: case EVENT_RESET_BRAZIER:
{ {
me->RemoveFlag(GAMEOBJECT_FLAGS, 1); me->RemoveGameObjectFlag((GameObjectFlags)1);
me->SetByteFlag(GAMEOBJECT_BYTES_1, 0, 1); me->SetByteFlag(GAMEOBJECT_BYTES_1, 0, 1);
break; break;
} }
+4 -1
View File
@@ -20,6 +20,7 @@
#include "Define.h" #include "Define.h"
#include "DetourNavMesh.h" #include "DetourNavMesh.h"
#include "EnumFlag.h"
#include <cassert> #include <cassert>
float const GROUND_HEIGHT_TOLERANCE = 0.05f; // Extra tolerance to z position to check if it is in air or on ground. float const GROUND_HEIGHT_TOLERANCE = 0.05f; // Extra tolerance to z position to check if it is in air or on ground.
@@ -1570,7 +1571,7 @@ enum GameobjectTypes
#define MAX_GAMEOBJECT_TYPE 36 // sending to client this or greater value can crash client. #define MAX_GAMEOBJECT_TYPE 36 // sending to client this or greater value can crash client.
#define MAX_GAMEOBJECT_DATA 24 // Max number of uint32 vars in gameobject_template data field #define MAX_GAMEOBJECT_DATA 24 // Max number of uint32 vars in gameobject_template data field
enum GameObjectFlags enum GameObjectFlags : uint32
{ {
GO_FLAG_IN_USE = 0x00000001, // disables interaction while animated GO_FLAG_IN_USE = 0x00000001, // disables interaction while animated
GO_FLAG_LOCKED = 0x00000002, // require key, spell, event, etc to be opened. Makes "Locked" appear in tooltip GO_FLAG_LOCKED = 0x00000002, // require key, spell, event, etc to be opened. Makes "Locked" appear in tooltip
@@ -1583,6 +1584,8 @@ enum GameObjectFlags
GO_FLAG_DESTROYED = 0x00000400, GO_FLAG_DESTROYED = 0x00000400,
}; };
DEFINE_ENUM_FLAG(GameObjectFlags);
enum GameObjectDynamicLowFlags enum GameObjectDynamicLowFlags
{ {
GO_DYNFLAG_LO_ACTIVATE = 0x01, // enables interaction with GO GO_DYNFLAG_LO_ACTIVATE = 0x01, // enables interaction with GO