mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-21 07:22:02 -04:00
Core/GameObjects: Reduce differences between branches part 3 - gameobject updatefield accessors
This commit is contained in:
@@ -240,7 +240,7 @@ void BattlegroundIC::StartingEventOpenDoors()
|
||||
DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_2);
|
||||
|
||||
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)->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS; ++i)
|
||||
GetBGObject(BG_IC_TeleporterEffects[i].type)->SetGoState(GO_STATE_ACTIVE);
|
||||
@@ -809,12 +809,12 @@ void BattlegroundIC::DestroyGate(Player* player, GameObject* go)
|
||||
if (player->GetTeamId() == TEAM_ALLIANCE)
|
||||
{
|
||||
DoorOpen(BG_IC_GO_HORDE_KEEP_PORTCULLIS);
|
||||
GetBGObject(BG_IC_GO_HORDE_BANNER)->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
GetBGObject(BG_IC_GO_HORDE_BANNER)->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
else
|
||||
{
|
||||
DoorOpen(BG_IC_GO_DOODAD_PORTCULLISACTIVE02);
|
||||
GetBGObject(BG_IC_GO_ALLIANCE_BANNER)->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
GetBGObject(BG_IC_GO_ALLIANCE_BANNER)->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
uint32 textId;
|
||||
|
||||
@@ -766,9 +766,9 @@ void BattlegroundSA::UpdateObjectInteractionFlags(uint32 objectId)
|
||||
if (GameObject* go = GetBGObject(objectId))
|
||||
{
|
||||
if (CanInteractWithObject(objectId))
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
else
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u
|
||||
if (GameObjectOverride const* goOverride = GetGameObjectOverride())
|
||||
{
|
||||
SetFaction(goOverride->Faction);
|
||||
SetUInt32Value(GAMEOBJECT_FLAGS, goOverride->Flags);
|
||||
ReplaceAllFlags(GameObjectFlags(goOverride->Flags));
|
||||
}
|
||||
|
||||
SetEntry(goinfo->entry);
|
||||
@@ -333,7 +333,7 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u
|
||||
|
||||
SetDisplayId(goinfo->displayId);
|
||||
|
||||
m_model = CreateModel();
|
||||
CreateModel();
|
||||
// GAMEOBJECT_BYTES_1, index at 0, 1, 2 and 3
|
||||
SetGoType(GameobjectTypes(goinfo->type));
|
||||
m_prevGoState = go_state;
|
||||
@@ -352,7 +352,7 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u
|
||||
SetGoAnimProgress(255);
|
||||
break;
|
||||
case GAMEOBJECT_TYPE_TRANSPORT:
|
||||
SetUInt32Value(GAMEOBJECT_LEVEL, goinfo->transport.pause);
|
||||
SetLevel(goinfo->transport.pause);
|
||||
SetGoState(goinfo->transport.startOpen ? GO_STATE_ACTIVE : GO_STATE_READY);
|
||||
SetGoAnimProgress(animprogress);
|
||||
m_goValue.Transport.PathProgress = 0;
|
||||
@@ -505,7 +505,7 @@ void GameObject::Update(uint32 diff)
|
||||
if (caster && caster->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
SetGoState(GO_STATE_ACTIVE);
|
||||
SetUInt32Value(GAMEOBJECT_FLAGS, GO_FLAG_NODESPAWN);
|
||||
ReplaceAllFlags(GO_FLAG_NODESPAWN);
|
||||
|
||||
UpdateData udata;
|
||||
WorldPacket packet;
|
||||
@@ -694,7 +694,7 @@ void GameObject::Update(uint32 diff)
|
||||
case GAMEOBJECT_TYPE_GOOBER:
|
||||
if (GameTime::GetGameTimeMS() >= m_cooldownTime)
|
||||
{
|
||||
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
RemoveFlag(GO_FLAG_IN_USE);
|
||||
SetLootState(GO_JUST_DEACTIVATED);
|
||||
}
|
||||
break;
|
||||
@@ -823,7 +823,7 @@ void GameObject::Update(uint32 diff)
|
||||
SendObjectDeSpawnAnim(GetGUID());
|
||||
//reset flags
|
||||
if (GameObjectOverride const* goOverride = GetGameObjectOverride())
|
||||
SetUInt32Value(GAMEOBJECT_FLAGS, goOverride->Flags);
|
||||
ReplaceAllFlags(GameObjectFlags(goOverride->Flags));
|
||||
}
|
||||
|
||||
if (!m_respawnDelayTime)
|
||||
@@ -918,7 +918,7 @@ void GameObject::Delete()
|
||||
SetGoState(GO_STATE_READY);
|
||||
|
||||
if (GameObjectOverride const* goOverride = GetGameObjectOverride())
|
||||
SetUInt32Value(GAMEOBJECT_FLAGS, goOverride->Flags);
|
||||
ReplaceAllFlags(GameObjectFlags(goOverride->Flags));
|
||||
|
||||
uint32 poolid = GetSpawnId() ? sPoolMgr->IsPartOfAPool<GameObject>(GetSpawnId()) : 0;
|
||||
if (poolid)
|
||||
@@ -1069,7 +1069,7 @@ bool GameObject::LoadFromDB(ObjectGuid::LowType spawnId, Map* map, bool addToMap
|
||||
|
||||
if (!GetGOInfo()->GetDespawnPossibility() && !GetGOInfo()->IsDespawnAtAction())
|
||||
{
|
||||
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NODESPAWN);
|
||||
SetFlag(GO_FLAG_NODESPAWN);
|
||||
m_respawnDelayTime = 0;
|
||||
m_respawnTime = 0;
|
||||
}
|
||||
@@ -1411,7 +1411,7 @@ void GameObject::ResetDoorOrButton()
|
||||
if (m_lootState == GO_READY || m_lootState == GO_JUST_DEACTIVATED)
|
||||
return;
|
||||
|
||||
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
RemoveFlag(GO_FLAG_IN_USE);
|
||||
SetGoState(m_prevGoState);
|
||||
|
||||
SetLootState(GO_JUST_DEACTIVATED);
|
||||
@@ -1452,8 +1452,10 @@ void GameObject::ActivateObject(GameObjectActions action, WorldObject* spellCast
|
||||
Use(unitCaster);
|
||||
break;
|
||||
case GameObjectActions::Unlock:
|
||||
RemoveFlag(GO_FLAG_LOCKED);
|
||||
break;
|
||||
case GameObjectActions::Lock:
|
||||
ApplyModFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED, action == GameObjectActions::Lock);
|
||||
SetFlag(GO_FLAG_LOCKED);
|
||||
break;
|
||||
case GameObjectActions::Open:
|
||||
if (unitCaster)
|
||||
@@ -1463,7 +1465,7 @@ void GameObject::ActivateObject(GameObjectActions action, WorldObject* spellCast
|
||||
if (unitCaster)
|
||||
{
|
||||
UseDoorOrButton(0, false, unitCaster);
|
||||
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
RemoveFlag(GO_FLAG_LOCKED);
|
||||
}
|
||||
break;
|
||||
case GameObjectActions::Close:
|
||||
@@ -1486,12 +1488,14 @@ void GameObject::ActivateObject(GameObjectActions action, WorldObject* spellCast
|
||||
DespawnOrUnsummon();
|
||||
break;
|
||||
case GameObjectActions::MakeInert:
|
||||
SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GameObjectActions::MakeActive:
|
||||
ApplyModFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE, action == GameObjectActions::MakeInert);
|
||||
RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GameObjectActions::CloseAndLock:
|
||||
ResetDoorOrButton();
|
||||
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
SetFlag(GO_FLAG_LOCKED);
|
||||
break;
|
||||
case GameObjectActions::UseArtKit0:
|
||||
case GameObjectActions::UseArtKit1:
|
||||
@@ -1548,9 +1552,9 @@ void GameObject::SetGoArtKit(uint8 artkit, GameObject* go, ObjectGuid::LowType l
|
||||
void GameObject::SwitchDoorOrButton(bool activate, bool alternative /* = false */)
|
||||
{
|
||||
if (activate)
|
||||
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
SetFlag(GO_FLAG_IN_USE);
|
||||
else
|
||||
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
RemoveFlag(GO_FLAG_IN_USE);
|
||||
|
||||
if (GetGoState() == GO_STATE_READY) //if closed -> open
|
||||
SetGoState(alternative ? GO_STATE_DESTROYED : GO_STATE_ACTIVE);
|
||||
@@ -1749,7 +1753,7 @@ void GameObject::Use(Unit* user)
|
||||
if (uint32 trapEntry = info->goober.linkedTrapId)
|
||||
TriggeringLinkedGameObject(trapEntry, user);
|
||||
|
||||
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
SetFlag(GO_FLAG_IN_USE);
|
||||
SetLootState(GO_ACTIVATED, user);
|
||||
|
||||
// this appear to be ok, however others exist in addition to this that should have custom (ex: 190510, 188692, 187389)
|
||||
@@ -2351,7 +2355,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, WorldOb
|
||||
switch (state)
|
||||
{
|
||||
case GO_DESTRUCTIBLE_INTACT:
|
||||
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_DESTROYED);
|
||||
RemoveFlag(GO_FLAG_DAMAGED | GO_FLAG_DESTROYED);
|
||||
SetDisplayId(m_goInfo->displayId);
|
||||
if (setHealth)
|
||||
{
|
||||
@@ -2365,8 +2369,8 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, WorldOb
|
||||
EventInform(m_goInfo->building.damagedEvent, attackerOrHealer);
|
||||
AI()->Damaged(attackerOrHealer, m_goInfo->building.damagedEvent);
|
||||
|
||||
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
|
||||
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
|
||||
RemoveFlag(GO_FLAG_DESTROYED);
|
||||
SetFlag(GO_FLAG_DAMAGED);
|
||||
|
||||
uint32 modelId = m_goInfo->displayId;
|
||||
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData))
|
||||
@@ -2394,8 +2398,8 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, WorldOb
|
||||
if (Battleground* bg = player->GetBattleground())
|
||||
bg->DestroyGate(player, this);
|
||||
|
||||
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
|
||||
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
|
||||
RemoveFlag(GO_FLAG_DAMAGED);
|
||||
SetFlag(GO_FLAG_DESTROYED);
|
||||
|
||||
uint32 modelId = m_goInfo->displayId;
|
||||
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData))
|
||||
@@ -2414,7 +2418,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, WorldOb
|
||||
case GO_DESTRUCTIBLE_REBUILDING:
|
||||
{
|
||||
EventInform(m_goInfo->building.rebuildingEvent, attackerOrHealer);
|
||||
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_DESTROYED);
|
||||
RemoveFlag(GO_FLAG_DAMAGED | GO_FLAG_DESTROYED);
|
||||
|
||||
uint32 modelId = m_goInfo->displayId;
|
||||
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData))
|
||||
@@ -2527,7 +2531,7 @@ void GameObject::UpdateModel()
|
||||
if (GetMap()->ContainsGameObjectModel(*m_model))
|
||||
GetMap()->RemoveGameObjectModel(*m_model);
|
||||
delete m_model;
|
||||
m_model = CreateModel();
|
||||
CreateModel();
|
||||
if (m_model)
|
||||
GetMap()->InsertGameObjectModel(*m_model);
|
||||
}
|
||||
@@ -2762,9 +2766,9 @@ private:
|
||||
GameObject* _owner;
|
||||
};
|
||||
|
||||
GameObjectModel* GameObject::CreateModel()
|
||||
void GameObject::CreateModel()
|
||||
{
|
||||
return GameObjectModel::Create(std::make_unique<GameObjectModelOwnerImpl>(this), sWorld->GetDataPath());
|
||||
m_model = GameObjectModel::Create(std::make_unique<GameObjectModelOwnerImpl>(this), sWorld->GetDataPath());
|
||||
}
|
||||
|
||||
std::string GameObject::GetDebugInfo() const
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
|
||||
#include "Object.h"
|
||||
#include "GridObject.h"
|
||||
#include "DatabaseEnvFwd.h"
|
||||
#include "GameObjectData.h"
|
||||
#include "Loot.h"
|
||||
#include "MapObject.h"
|
||||
@@ -116,7 +115,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
QuaternionData GetWorldRotation() const;
|
||||
|
||||
// overwrite WorldObject function for proper name localization
|
||||
std::string const& GetNameForLocaleIdx(LocaleConstant locale_idx) const override;
|
||||
std::string const& GetNameForLocaleIdx(LocaleConstant locale) const override;
|
||||
|
||||
void SaveToDB();
|
||||
void SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask);
|
||||
@@ -126,7 +125,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
void SetOwnerGUID(ObjectGuid owner)
|
||||
{
|
||||
// Owner already found and different than expected owner - remove object from old owner
|
||||
if (owner && GetOwnerGUID() && GetOwnerGUID() != owner)
|
||||
if (!owner.IsEmpty() && !GetOwnerGUID().IsEmpty() && GetOwnerGUID() != owner)
|
||||
{
|
||||
ABORT();
|
||||
}
|
||||
@@ -161,6 +160,13 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
void Delete();
|
||||
void getFishLoot(Loot* loot, Player* loot_owner);
|
||||
void getFishLootJunk(Loot* loot, Player* loot_owner);
|
||||
|
||||
bool HasFlag(GameObjectFlags flags) const { return Object::HasFlag(GAMEOBJECT_FLAGS, flags); }
|
||||
void SetFlag(GameObjectFlags flags) { Object::SetFlag(GAMEOBJECT_FLAGS, flags); }
|
||||
void RemoveFlag(GameObjectFlags flags) { Object::RemoveFlag(GAMEOBJECT_FLAGS, flags); }
|
||||
void ReplaceAllFlags(GameObjectFlags flags) { SetUInt32Value(GAMEOBJECT_FLAGS, flags); }
|
||||
|
||||
void SetLevel(uint32 level) { SetUInt32Value(GAMEOBJECT_LEVEL, level); }
|
||||
GameobjectTypes GetGoType() const { return GameobjectTypes(GetByteValue(GAMEOBJECT_BYTES_1, 1)); }
|
||||
void SetGoType(GameobjectTypes type) { SetByteValue(GAMEOBJECT_BYTES_1, 1, type); }
|
||||
GOState GetGoState() const { return GOState(GetByteValue(GAMEOBJECT_BYTES_1, 0)); }
|
||||
@@ -191,14 +197,10 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
void SetLootGenerationTime();
|
||||
uint32 GetLootGenerationTime() const { return m_lootGenerationTime; }
|
||||
|
||||
void AddToSkillupList(ObjectGuid::LowType PlayerGuidLow) { m_SkillupList.push_back(PlayerGuidLow); }
|
||||
bool IsInSkillupList(ObjectGuid::LowType PlayerGuidLow) const
|
||||
void AddToSkillupList(ObjectGuid const& PlayerGuidLow) { m_SkillupList.insert(PlayerGuidLow); }
|
||||
bool IsInSkillupList(ObjectGuid const& playerGuid) const
|
||||
{
|
||||
for (std::list<ObjectGuid::LowType>::const_iterator i = m_SkillupList.begin(); i != m_SkillupList.end(); ++i)
|
||||
if (*i == PlayerGuidLow)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return m_SkillupList.count(playerGuid) > 0;
|
||||
}
|
||||
void ClearSkillupList() { m_SkillupList.clear(); }
|
||||
|
||||
@@ -206,7 +208,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
void AddUse() { ++m_usetimes; }
|
||||
|
||||
uint32 GetUseCount() const { return m_usetimes; }
|
||||
uint32 GetUniqueUseCount() const { return m_unique_users.size(); }
|
||||
uint32 GetUniqueUseCount() const { return uint32(m_unique_users.size()); }
|
||||
|
||||
void SaveRespawnTime(uint32 forceDelay = 0);
|
||||
|
||||
@@ -234,7 +236,6 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
void TriggeringLinkedGameObject(uint32 trapEntry, Unit* target);
|
||||
|
||||
bool IsNeverVisible() const override;
|
||||
|
||||
bool IsAlwaysVisibleFor(WorldObject const* seer) const override;
|
||||
bool IsInvisibleDueToDespawn() const override;
|
||||
|
||||
@@ -250,9 +251,9 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
void SetDestructibleState(GameObjectDestructibleState state, WorldObject* attackerOrHealer = nullptr, bool setHealth = false);
|
||||
GameObjectDestructibleState GetDestructibleState() const
|
||||
{
|
||||
if (HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED))
|
||||
if (HasFlag(GO_FLAG_DESTROYED))
|
||||
return GO_DESTRUCTIBLE_DESTROYED;
|
||||
if (HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED))
|
||||
if (HasFlag(GO_FLAG_DAMAGED))
|
||||
return GO_DESTRUCTIBLE_DAMAGED;
|
||||
return GO_DESTRUCTIBLE_INTACT;
|
||||
}
|
||||
@@ -303,7 +304,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
std::string GetDebugInfo() const override;
|
||||
|
||||
protected:
|
||||
GameObjectModel* CreateModel();
|
||||
void CreateModel();
|
||||
void UpdateModel(); // updates model in case displayId were changed
|
||||
uint32 m_spellId;
|
||||
time_t m_respawnTime; // (secs) time of next respawn (or despawn if GO have owner()),
|
||||
@@ -318,9 +319,9 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
// For traps this: spell casting cooldown, for doors/buttons: reset time.
|
||||
GOState m_prevGoState; // What state to set whenever resetting
|
||||
|
||||
std::list<ObjectGuid::LowType> m_SkillupList;
|
||||
GuidSet m_SkillupList;
|
||||
|
||||
ObjectGuid m_ritualOwnerGUID; // used for GAMEOBJECT_TYPE_SUMMONING_RITUAL where GO is not summoned (no owner)
|
||||
ObjectGuid m_ritualOwnerGUID; // used for GAMEOBJECT_TYPE_RITUAL where GO is not summoned (no owner)
|
||||
GuidSet m_unique_users;
|
||||
uint32 m_usetimes;
|
||||
|
||||
@@ -355,6 +356,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
|
||||
//! Following check does check 3d distance
|
||||
return IsInRange(obj->GetPositionX(), obj->GetPositionY(), obj->GetPositionZ(), dist2compare);
|
||||
}
|
||||
|
||||
GameObjectAI* m_AI;
|
||||
bool m_respawnCompatibilityMode;
|
||||
};
|
||||
|
||||
@@ -87,7 +87,7 @@ bool Transport::Create(ObjectGuid::LowType guidlow, uint32 entry, uint32 mapid,
|
||||
if (GameObjectOverride const* goOverride = GetGameObjectOverride())
|
||||
{
|
||||
SetFaction(goOverride->Faction);
|
||||
SetUInt32Value(GAMEOBJECT_FLAGS, goOverride->Flags);
|
||||
ReplaceAllFlags(GameObjectFlags(goOverride->Flags));
|
||||
}
|
||||
|
||||
m_goValue.Transport.PathProgress = 0;
|
||||
@@ -102,7 +102,7 @@ bool Transport::Create(ObjectGuid::LowType guidlow, uint32 entry, uint32 mapid,
|
||||
SetLocalRotation(0.0f, 0.0f, 0.0f, 1.0f);
|
||||
SetParentRotation(QuaternionData());
|
||||
|
||||
m_model = CreateModel();
|
||||
CreateModel();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ class TC_GAME_API Transport : public GameObject, public TransportBase
|
||||
}
|
||||
|
||||
uint32 GetTransportPeriod() const override { return GetUInt32Value(GAMEOBJECT_LEVEL); }
|
||||
void SetPeriod(uint32 period) { SetUInt32Value(GAMEOBJECT_LEVEL, period); }
|
||||
void SetPeriod(uint32 period) { SetLevel(period); }
|
||||
uint32 GetTimer() const { return GetGOValue()->Transport.PathProgress; }
|
||||
|
||||
KeyFrameVec const& GetKeyFrames() const { return _transportInfo->keyFrames; }
|
||||
|
||||
@@ -1871,9 +1871,9 @@ void Spell::EffectOpenLock()
|
||||
if (gameObjTarget)
|
||||
{
|
||||
// Allow one skill-up until respawned
|
||||
if (!gameObjTarget->IsInSkillupList(player->GetGUID().GetCounter()) &&
|
||||
if (!gameObjTarget->IsInSkillupList(player->GetGUID()) &&
|
||||
player->UpdateGatherSkill(skillId, pureSkillValue, reqSkillValue))
|
||||
gameObjTarget->AddToSkillupList(player->GetGUID().GetCounter());
|
||||
gameObjTarget->AddToSkillupList(player->GetGUID());
|
||||
}
|
||||
else if (itemTarget)
|
||||
{
|
||||
@@ -3657,7 +3657,7 @@ void Spell::EffectDuel()
|
||||
}
|
||||
|
||||
pGameObj->SetFaction(caster->GetFaction());
|
||||
pGameObj->SetUInt32Value(GAMEOBJECT_LEVEL, caster->GetLevel() + 1);
|
||||
pGameObj->SetLevel(caster->GetLevel() + 1);
|
||||
int32 duration = m_spellInfo->GetDuration();
|
||||
pGameObj->SetRespawnTime(duration > 0 ? duration/IN_MILLISECONDS : 0);
|
||||
pGameObj->SetSpellId(m_spellInfo->Id);
|
||||
@@ -4000,7 +4000,7 @@ void Spell::EffectSummonObject()
|
||||
}
|
||||
|
||||
go->SetFaction(unitCaster->GetFaction());
|
||||
go->SetUInt32Value(GAMEOBJECT_LEVEL, unitCaster->GetLevel());
|
||||
go->SetLevel(unitCaster->GetLevel());
|
||||
int32 duration = m_spellInfo->GetDuration();
|
||||
go->SetRespawnTime(duration > 0 ? duration / IN_MILLISECONDS : 0);
|
||||
go->SetSpellId(m_spellInfo->Id);
|
||||
|
||||
@@ -571,7 +571,7 @@ void BattlefieldWG::OnBattleStart()
|
||||
// Update faction of relic, only attacker can click on
|
||||
relic->SetFaction(WintergraspFaction[GetAttackerTeam()]);
|
||||
// Set in use (not allow to click on before last door is broken)
|
||||
relic->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE | GO_FLAG_NOT_SELECTABLE);
|
||||
relic->SetFlag(GO_FLAG_IN_USE | GO_FLAG_NOT_SELECTABLE);
|
||||
m_titansRelicGUID = relic->GetGUID();
|
||||
}
|
||||
else
|
||||
@@ -1495,7 +1495,7 @@ void BfWGGameObjectBuilding::Destroyed()
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
_wg->SetRelicInteractible(true);
|
||||
if (_wg->GetRelic())
|
||||
_wg->GetRelic()->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE | GO_FLAG_NOT_SELECTABLE);
|
||||
_wg->GetRelic()->RemoveFlag(GO_FLAG_IN_USE | GO_FLAG_NOT_SELECTABLE);
|
||||
else
|
||||
TC_LOG_ERROR("bg.battlefield.wg", "Titan Relic not found.");
|
||||
break;
|
||||
|
||||
@@ -610,14 +610,31 @@ public:
|
||||
if (!objectState)
|
||||
return false;
|
||||
|
||||
if (objectType < 4)
|
||||
object->SetByteValue(GAMEOBJECT_BYTES_1, objectType, *objectState);
|
||||
else if (objectType == 4)
|
||||
switch (objectType)
|
||||
{
|
||||
WorldPacket data(SMSG_GAMEOBJECT_CUSTOM_ANIM, 8+4);
|
||||
data << object->GetGUID();
|
||||
data << static_cast<uint32>(*objectState);
|
||||
object->SendMessageToSet(&data, true);
|
||||
case 0:
|
||||
object->SetGoState(GOState(*objectState));
|
||||
break;
|
||||
case 1:
|
||||
object->SetGoType(GameobjectTypes(*objectState));
|
||||
break;
|
||||
case 2:
|
||||
object->SetGoArtKit(*objectState);
|
||||
break;
|
||||
case 3:
|
||||
object->SetGoAnimProgress(*objectState);
|
||||
break;
|
||||
case 4:
|
||||
object->SendCustomAnim(*objectState);
|
||||
break;
|
||||
case 5:
|
||||
if (*objectState > GO_DESTRUCTIBLE_REBUILDING)
|
||||
return false;
|
||||
|
||||
object->SetDestructibleState(GameObjectDestructibleState(*objectState));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
handler->PSendSysMessage("Set gobject type %d state %u", objectType, *objectState);
|
||||
return true;
|
||||
|
||||
+2
-2
@@ -194,7 +194,7 @@ struct go_suppression_device : public GameObjectAI
|
||||
if (me->GetGoState() == GO_STATE_ACTIVE)
|
||||
me->SetGoState(GO_STATE_READY);
|
||||
me->SetLootState(GO_READY);
|
||||
me->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
_events.ScheduleEvent(EVENT_SUPPRESSION_CAST, 0s);
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ struct go_suppression_device : public GameObjectAI
|
||||
return;
|
||||
_active = false;
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
_events.CancelEvent(EVENT_SUPPRESSION_CAST);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -303,7 +303,7 @@ struct go_chromaggus_lever : public GameObjectAI
|
||||
_instance->HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
}
|
||||
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE);
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -185,7 +185,7 @@ class instance_deadmines : public InstanceMapScript
|
||||
void LeverStucked()
|
||||
{
|
||||
if (GameObject* pDoorLever = instance->GetGameObject(DoorLeverGUID))
|
||||
pDoorLever->SetUInt32Value(GAMEOBJECT_FLAGS, 4);
|
||||
pDoorLever->SetFlag(GO_FLAG_INTERACT_COND);
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
|
||||
@@ -312,7 +312,7 @@ public:
|
||||
if (GameObject* go = me->SummonGameObject(183410, -533.140f, -105.322f, -156.016f, 0.f, QuaternionData(), 1s))
|
||||
{
|
||||
GoSummonList.push_back(go->GetGUID());
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); //We can't use it!
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE); //We can't use it!
|
||||
}
|
||||
Summon(3);
|
||||
break;
|
||||
@@ -327,7 +327,7 @@ public:
|
||||
if (GameObject* go = me->SummonGameObject(183410, -542.199f, -96.854f, -155.790f, 0.f, QuaternionData(), 1s))
|
||||
{
|
||||
GoSummonList.push_back(go->GetGUID());
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
@@ -341,7 +341,7 @@ public:
|
||||
if (GameObject* go = me->SummonGameObject(183410, -507.820f, -103.333f, -151.353f, 0.f, QuaternionData(), 1s))
|
||||
{
|
||||
GoSummonList.push_back(go->GetGUID());
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); //We can't use it!
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE); //We can't use it!
|
||||
Summon(5);
|
||||
}
|
||||
break;
|
||||
@@ -349,7 +349,7 @@ public:
|
||||
if (GameObject* go = me->SummonGameObject(183410, -511.829f, -86.249f, -151.431f, 0.f, QuaternionData(), 1s))
|
||||
{
|
||||
GoSummonList.push_back(go->GetGUID());
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); //We can't use it!
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE); //We can't use it!
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
|
||||
@@ -130,7 +130,7 @@ public:
|
||||
me->SetDisableGravity(true);
|
||||
HandleTerraceDoors(true);
|
||||
if (GameObject* urn = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_BLACKENED_URN)))
|
||||
urn->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
urn->RemoveFlag(GO_FLAG_IN_USE);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
@@ -430,7 +430,7 @@ class go_blackened_urn : public GameObjectScript
|
||||
|
||||
bool OnGossipHello(Player* /*player*/) override
|
||||
{
|
||||
if (me->HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE))
|
||||
if (me->HasFlag(GO_FLAG_IN_USE))
|
||||
return false;
|
||||
|
||||
if (instance->GetBossState(DATA_NIGHTBANE) == DONE || instance->GetBossState(DATA_NIGHTBANE) == IN_PROGRESS)
|
||||
@@ -438,7 +438,7 @@ class go_blackened_urn : public GameObjectScript
|
||||
|
||||
if (Creature* nightbane = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NIGHTBANE)))
|
||||
{
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
me->SetFlag(GO_FLAG_IN_USE);
|
||||
nightbane->AI()->DoAction(ACTION_SUMMON);
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -162,7 +162,7 @@ public:
|
||||
HandleGameObject(StageDoorLeftGUID, true);
|
||||
HandleGameObject(StageDoorRightGUID, true);
|
||||
if (GameObject* sideEntrance = instance->GetGameObject(SideEntranceDoor))
|
||||
sideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
sideEntrance->RemoveFlag(GO_FLAG_LOCKED);
|
||||
UpdateEncounterStateForKilledCreature(16812, nullptr);
|
||||
}
|
||||
break;
|
||||
@@ -224,9 +224,9 @@ public:
|
||||
case GO_SIDE_ENTRANCE_DOOR:
|
||||
SideEntranceDoor = go->GetGUID();
|
||||
if (GetBossState(DATA_OPERA_PERFORMANCE) == DONE)
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
go->SetFlag(GO_FLAG_LOCKED);
|
||||
else
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
go->RemoveFlag(GO_FLAG_LOCKED);
|
||||
break;
|
||||
case GO_DUST_COVERED_CHEST:
|
||||
DustCoveredChest = go->GetGUID();
|
||||
|
||||
@@ -159,7 +159,7 @@ class instance_magisters_terrace : public InstanceMapScript
|
||||
{
|
||||
case GO_ESCAPE_ORB:
|
||||
if (GetBossState(DATA_KAELTHAS_SUNSTRIDER) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -201,7 +201,7 @@ class instance_magisters_terrace : public InstanceMapScript
|
||||
case DATA_KAELTHAS_SUNSTRIDER:
|
||||
if (state == DONE)
|
||||
if (GameObject* orb = GetGameObject(DATA_ESCAPE_ORB))
|
||||
orb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
orb->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -71,7 +71,7 @@ class instance_scarlet_monastery : public InstanceMapScript
|
||||
_horsemanState = IN_PROGRESS;
|
||||
for (uint32 data : {DATA_PUMPKIN_SHRINE, DATA_LOOSELY_TURNED_SOIL})
|
||||
if (GameObject* gob = GetGameObject(data))
|
||||
gob->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
gob->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
instance->SummonCreature(NPC_HEADLESS_HORSEMAN_HEAD, HeadlessHorsemanHeadSpawnPosition);
|
||||
instance->SummonCreature(NPC_FLAME_BUNNY, BunnySpawnPosition);
|
||||
|
||||
@@ -198,7 +198,7 @@ class instance_stratholme : public InstanceMapScript
|
||||
break;
|
||||
case GO_GAUNTLET_GATE1:
|
||||
//weird, but unless flag is set, client will not respond as expected. DB bug?
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
go->SetFlag(GO_FLAG_LOCKED);
|
||||
gauntletGate1GUID = go->GetGUID();
|
||||
break;
|
||||
case GO_ZIGGURAT1:
|
||||
|
||||
@@ -178,7 +178,7 @@ public:
|
||||
void UseStatue(GameObject* go)
|
||||
{
|
||||
go->SummonGameObject(GO_ATALAI_LIGHT1, *go, QuaternionData(), 0s);
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS, 4);
|
||||
go->SetFlag(GO_FLAG_INTERACT_COND);
|
||||
}
|
||||
|
||||
void UseLastStatue(GameObject* go)
|
||||
|
||||
@@ -121,7 +121,7 @@ class instance_uldaman : public InstanceMapScript
|
||||
|
||||
case GO_ANCIENT_VAULT_DOOR:
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS, 33);
|
||||
go->ReplaceAllFlags(GO_FLAG_IN_USE | GO_FLAG_NODESPAWN);
|
||||
ancientVaultDoor = go->GetGUID();
|
||||
|
||||
if (m_auiEncounter[1] == DONE)
|
||||
@@ -141,7 +141,7 @@ class instance_uldaman : public InstanceMapScript
|
||||
if (m_auiEncounter[2] == DONE)
|
||||
{
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
|
||||
go->SetFlag(GO_FLAG_INTERACT_COND);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -171,7 +171,7 @@ class instance_uldaman : public InstanceMapScript
|
||||
if (!go)
|
||||
return;
|
||||
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
|
||||
go->SetFlag(GO_FLAG_INTERACT_COND);
|
||||
}
|
||||
|
||||
void ActivateStoneKeepers()
|
||||
|
||||
@@ -244,14 +244,14 @@ class npc_harrison_jones : public CreatureScript
|
||||
break;
|
||||
case GONG_EVENT_3:
|
||||
if (GameObject* gong = instance->GetGameObject(GO_STRANGE_GONG))
|
||||
gong->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
gong->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
_gongEvent = GONG_EVENT_4;
|
||||
_gongTimer = 105000;
|
||||
break;
|
||||
case GONG_EVENT_4:
|
||||
me->RemoveAura(SPELL_BANGING_THE_GONG);
|
||||
if (GameObject* gong = instance->GetGameObject(GO_STRANGE_GONG))
|
||||
gong->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
gong->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
// trigger or gong will need to be scripted to set IN_PROGRESS after enough hits.
|
||||
// This is temp workaround.
|
||||
|
||||
@@ -160,7 +160,7 @@ struct boss_arlokk : public BossAI
|
||||
{
|
||||
BossAI::EnterEvadeMode(why);
|
||||
if (GameObject* object = instance->GetGameObject(DATA_GONG_BETHEKK))
|
||||
object->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
object->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
me->DespawnOrUnsummon(4s);
|
||||
}
|
||||
|
||||
@@ -426,7 +426,7 @@ struct go_gong_of_bethekk : public GameObjectAI
|
||||
|
||||
bool OnGossipHello(Player* /*player*/) override
|
||||
{
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
me->SendCustomAnim(0);
|
||||
me->SummonCreature(NPC_ARLOKK, PosSummonArlokk[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 10min);
|
||||
return true;
|
||||
|
||||
@@ -73,9 +73,9 @@ class instance_zulgurub : public InstanceMapScript
|
||||
{
|
||||
case GO_GONG_OF_BETHEKK:
|
||||
if (GetBossState(DATA_ARLOKK) == DONE)
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
else
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -57,7 +57,7 @@ struct go_blackfathom_fire : public GameObjectAI
|
||||
bool OnGossipHello(Player* /*player*/) override
|
||||
{
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
instance->SetData(DATA_FIRE, instance->GetData(DATA_FIRE) + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -106,12 +106,12 @@ public:
|
||||
case GO_SHRINE_OF_GELIHAST:
|
||||
shrineOfGelihastGUID = go->GetGUID();
|
||||
if (GetBossState(DATA_GELIHAST) != DONE)
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_ALTAR_OF_THE_DEEPS:
|
||||
altarOfTheDeepsGUID = go->GetGUID();
|
||||
if (GetBossState(DATA_AKU_MAI) != DONE)
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_AKU_MAI_DOOR:
|
||||
if (GetBossState(DATA_AKU_MAI) == DONE)
|
||||
@@ -189,13 +189,13 @@ public:
|
||||
case DATA_GELIHAST:
|
||||
if (state == DONE)
|
||||
if (GameObject* go = instance->GetGameObject(shrineOfGelihastGUID))
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case DATA_AKU_MAI:
|
||||
if (state == DONE)
|
||||
if (GameObject* go = instance->GetGameObject(altarOfTheDeepsGUID))
|
||||
{
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
go->SummonCreature(NPC_MORRIDUNE, SpawnsLocation[10], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5min);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1419,7 +1419,7 @@ public:
|
||||
malganis->CastSpell(malganis, SPELL_MALGANIS_QUEST_CREDIT, true);
|
||||
malganis->CastSpell(malganis, SPELL_MALGANIS_KILL_CREDIT, true);
|
||||
if (GameObject* chest = malganis->FindNearestGameObject(RAID_MODE(GO_CHEST_NORMAL, GO_CHEST_HEROIC), 100.0f))
|
||||
chest->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
chest->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
events.ScheduleEvent(RP5_EVENT_MALGANIS12, 3s);
|
||||
events.ScheduleEvent(RP5_EVENT_MALGANIS_LEAVE, 19s);
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
case GO_GONG:
|
||||
goGongGUID = gameObject->GetGUID();
|
||||
if (GetBossState(DATA_TUTEN_KASH) == DONE)
|
||||
gameObject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
gameObject->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_IDOL_OVEN_FIRE:
|
||||
case GO_IDOL_CUP_FIRE:
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
case IN_PROGRESS:
|
||||
{
|
||||
if (GameObject* go = instance->GetGameObject(goGongGUID))
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
switch (gongWave)
|
||||
{
|
||||
@@ -153,7 +153,7 @@ public:
|
||||
{
|
||||
fiendsKilled = 0;
|
||||
if (GameObject* go = instance->GetGameObject(goGongGUID))
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
break;
|
||||
case NPC_TOMB_REAVER:
|
||||
@@ -161,7 +161,7 @@ public:
|
||||
{
|
||||
reaversKilled = 0;
|
||||
if (GameObject* go = instance->GetGameObject(goGongGUID))
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public:
|
||||
if (WardKeeperDeath == WARD_KEEPERS_NR)
|
||||
if (GameObject* go = instance->GetGameObject(DoorWardGUID))
|
||||
{
|
||||
go->SetUInt32Value(GAMEOBJECT_FLAGS, 33);
|
||||
go->ReplaceAllFlags(GO_FLAG_IN_USE | GO_FLAG_NODESPAWN);
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,7 +258,7 @@ public:
|
||||
|
||||
if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE*2))
|
||||
{
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
SetEscortPaused(true);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1418,7 +1418,7 @@ class go_wind_stone : public GameObjectScript
|
||||
void Reset() override
|
||||
{
|
||||
// Allow despawning
|
||||
me->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NODESPAWN);
|
||||
me->RemoveFlag(GO_FLAG_NODESPAWN);
|
||||
isSummoning = false;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -308,13 +308,13 @@ public:
|
||||
{
|
||||
if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_ELUNE_ALTAR, 10.0f))
|
||||
{
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFacingToObject(go);
|
||||
_altarGUID = go->GetGUID();
|
||||
}
|
||||
}
|
||||
else if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_ELUNE_FIRE, 10.0f))
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
// Yell and set escort to pause
|
||||
Talk(SAY_REACH_TORCH);
|
||||
@@ -585,7 +585,7 @@ public:
|
||||
if (npc_ranshalla::npc_ranshallaAI* escortAI = dynamic_cast<npc_ranshalla::npc_ranshallaAI*>(ranshalla->AI()))
|
||||
escortAI->DoContinueEscort(isAltar);
|
||||
}
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -387,7 +387,7 @@ struct go_prince_taldaram_sphere : public GameObjectAI
|
||||
Creature* princeTaldaram = instance->GetCreature(DATA_PRINCE_TALDARAM);
|
||||
if (princeTaldaram && princeTaldaram->IsAlive())
|
||||
{
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
switch (me->GetEntry())
|
||||
|
||||
@@ -83,19 +83,19 @@ class instance_ahnkahet : public InstanceMapScript
|
||||
if (SpheresState[0])
|
||||
{
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
else
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_SPHERE_2:
|
||||
if (SpheresState[1])
|
||||
{
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
else
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
+1
-1
@@ -210,7 +210,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
|
||||
DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_CHAMPIONS_KILLED_IN_MINUTE);
|
||||
DoRespawnGameObject(GetGuidData(DATA_CRUSADERS_CHEST), 7_days);
|
||||
if (GameObject* cache = GetGameObject(DATA_CRUSADERS_CHEST))
|
||||
cache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
cache->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
if (Creature* fordring = GetCreature(DATA_FORDRING))
|
||||
fordring->AI()->DoAction(ACTION_CHAMPIONS_DEFEATED);
|
||||
EventStage = 3100;
|
||||
|
||||
+1
-1
@@ -340,7 +340,7 @@ class instance_halls_of_reflection : public InstanceMapScript
|
||||
break;
|
||||
case DONE:
|
||||
if (GameObject* chest = instance->GetGameObject(CaptainsChestGUID))
|
||||
chest->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
chest->RemoveFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
|
||||
DoUseDoorOrButton(CaveInGUID, 15);
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ class instance_gundrak : public InstanceMapScript
|
||||
if (GetBossState(DATA_SLAD_RAN) == DONE)
|
||||
{
|
||||
if (SladRanStatueState == GO_STATE_ACTIVE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
else
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
@@ -108,7 +108,7 @@ class instance_gundrak : public InstanceMapScript
|
||||
if (GetBossState(DATA_MOORABI) == DONE)
|
||||
{
|
||||
if (MoorabiStatueState == GO_STATE_ACTIVE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
else
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
@@ -117,7 +117,7 @@ class instance_gundrak : public InstanceMapScript
|
||||
if (GetBossState(DATA_DRAKKARI_COLOSSUS) == DONE)
|
||||
{
|
||||
if (DrakkariColossusStatueState == GO_STATE_ACTIVE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
else
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
@@ -173,17 +173,17 @@ class instance_gundrak : public InstanceMapScript
|
||||
case DATA_SLAD_RAN:
|
||||
if (state == DONE)
|
||||
if (GameObject* go = GetGameObject(DATA_SLAD_RAN_ALTAR))
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case DATA_DRAKKARI_COLOSSUS:
|
||||
if (state == DONE)
|
||||
if (GameObject* go = GetGameObject(DATA_DRAKKARI_COLOSSUS_ALTAR))
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case DATA_MOORABI:
|
||||
if (state == DONE)
|
||||
if (GameObject* go = GetGameObject(DATA_MOORABI_ALTAR))
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -357,7 +357,7 @@ struct go_gundrak_altar : public GameObjectAI
|
||||
|
||||
bool OnGossipHello(Player* /*player*/) override
|
||||
{
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
instance->SetData(DATA_STATUE_ACTIVATE, me->GetEntry());
|
||||
|
||||
@@ -757,7 +757,7 @@ struct npc_icc_orb_controller : public ScriptedAI
|
||||
UpdateValidGuids();
|
||||
ScheduleVisualChannel(true);
|
||||
if (GameObject* orb = me->FindNearestGameObject(GO_EMPOWERING_BLOOD_ORB, 5.0f))
|
||||
orb->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
orb->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -825,7 +825,7 @@ struct DarkFallenAI : public ScriptedAI
|
||||
{
|
||||
if (action == ACTION_SIPHON_INTERRUPTED)
|
||||
if (GameObject* orb = me->FindNearestGameObject(GO_EMPOWERING_BLOOD_ORB, 10.0f))
|
||||
orb->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
orb->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void SetGUID(ObjectGuid const& guid, int32 id) override
|
||||
@@ -1132,7 +1132,7 @@ struct go_empowering_blood_orb : public GameObjectAI
|
||||
|
||||
void HandleObjectUse()
|
||||
{
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
me->SetFlag(GO_FLAG_IN_USE);
|
||||
me->SetGoAnimProgress(255);
|
||||
me->SetGoState(GO_STATE_DESTROYED);
|
||||
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _triggerGuid))
|
||||
|
||||
@@ -165,12 +165,12 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
{
|
||||
if (usable)
|
||||
{
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
else
|
||||
{
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
}
|
||||
}
|
||||
@@ -535,7 +535,7 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
LadyDeathwisperElevatorGUID = go->GetGUID();
|
||||
if (GetBossState(DATA_LADY_DEATHWHISPER) == DONE)
|
||||
{
|
||||
go->SetUInt32Value(GAMEOBJECT_LEVEL, 0);
|
||||
go->SetLevel(0);
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
}
|
||||
break;
|
||||
@@ -648,7 +648,7 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
case GO_CACHE_OF_THE_DREAMWALKER_25H:
|
||||
if (Creature* valithria = instance->GetCreature(ValithriaDreamwalkerGUID))
|
||||
go->SetLootRecipient(valithria->GetLootRecipient(), valithria->GetLootRecipientGroup());
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
go->RemoveFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
break;
|
||||
case GO_ARTHAS_PLATFORM:
|
||||
// this enables movement at The Frozen Throne, when printed this value is 0.000000f
|
||||
@@ -880,7 +880,7 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
|
||||
if (GameObject* elevator = instance->GetGameObject(LadyDeathwisperElevatorGUID))
|
||||
{
|
||||
elevator->SetUInt32Value(GAMEOBJECT_LEVEL, 0);
|
||||
elevator->SetLevel(0);
|
||||
elevator->SetGoState(GO_STATE_READY);
|
||||
}
|
||||
|
||||
@@ -895,7 +895,7 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
SetTeleporterState(teleporter, true);
|
||||
|
||||
if (GameObject* loot = instance->GetGameObject(GunshipArmoryGUID))
|
||||
loot->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
loot->RemoveFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
}
|
||||
else if (state == FAIL)
|
||||
Events.ScheduleEvent(EVENT_RESPAWN_GUNSHIP, 30s);
|
||||
@@ -909,7 +909,7 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
{
|
||||
if (Creature* deathbringer = instance->GetCreature(DeathbringerSaurfangGUID))
|
||||
loot->SetLootRecipient(deathbringer->GetLootRecipient(), deathbringer->GetLootRecipientGroup());
|
||||
loot->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
loot->RemoveFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
}
|
||||
|
||||
if (GameObject* teleporter = instance->GetGameObject(TeleporterUpperSpireGUID))
|
||||
|
||||
@@ -214,23 +214,23 @@ class instance_naxxramas : public InstanceMapScript
|
||||
break;
|
||||
case GO_NAXX_PORTAL_ARACHNID:
|
||||
if (GetBossState(BOSS_MAEXXNA) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_NAXX_PORTAL_CONSTRUCT:
|
||||
if (GetBossState(BOSS_THADDIUS) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_NAXX_PORTAL_PLAGUE:
|
||||
if (GetBossState(BOSS_LOATHEB) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_NAXX_PORTAL_MILITARY:
|
||||
if (GetBossState(BOSS_HORSEMEN) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_KELTHUZAD_THRONE:
|
||||
if (GetBossState(BOSS_KELTHUZAD) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_BIRTH:
|
||||
if (hadSapphironBirth || GetBossState(BOSS_SAPPHIRON) == DONE)
|
||||
@@ -355,7 +355,7 @@ class instance_naxxramas : public InstanceMapScript
|
||||
if (state == DONE)
|
||||
{
|
||||
if (GameObject* teleporter = GetGameObject(DATA_NAXX_PORTAL_ARACHNID))
|
||||
teleporter->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
teleporter->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6s);
|
||||
}
|
||||
@@ -364,7 +364,7 @@ class instance_naxxramas : public InstanceMapScript
|
||||
if (state == DONE)
|
||||
{
|
||||
if (GameObject* teleporter = GetGameObject(DATA_NAXX_PORTAL_PLAGUE))
|
||||
teleporter->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
teleporter->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6s);
|
||||
}
|
||||
@@ -373,7 +373,7 @@ class instance_naxxramas : public InstanceMapScript
|
||||
if (state == DONE)
|
||||
{
|
||||
if (GameObject* teleporter = GetGameObject(DATA_NAXX_PORTAL_CONSTRUCT))
|
||||
teleporter->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
teleporter->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6s);
|
||||
}
|
||||
@@ -388,11 +388,11 @@ class instance_naxxramas : public InstanceMapScript
|
||||
if (GameObject* horsemenChest = instance->GetGameObject(HorsemenChestGUID))
|
||||
{
|
||||
horsemenChest->SetRespawnTime(horsemenChest->GetRespawnDelay());
|
||||
horsemenChest->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
horsemenChest->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
if (GameObject* teleporter = GetGameObject(DATA_NAXX_PORTAL_MILITARY))
|
||||
teleporter->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
teleporter->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6s);
|
||||
}
|
||||
@@ -405,7 +405,7 @@ class instance_naxxramas : public InstanceMapScript
|
||||
case BOSS_KELTHUZAD:
|
||||
if (state == DONE)
|
||||
if (GameObject* throne = GetGameObject(DATA_KELTHUZAD_THRONE))
|
||||
throne->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
throne->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -1898,7 +1898,7 @@ class spell_alexstrasza_bunny_destroy_platform_event : public SpellScript
|
||||
Creature* caster = GetCaster()->ToCreature();
|
||||
if (InstanceScript* instance = caster->GetInstanceScript())
|
||||
if (GameObject* platform = caster->GetMap()->GetGameObject(instance->GetGuidData(DATA_PLATFORM)))
|
||||
platform->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
|
||||
platform->SetFlag(GO_FLAG_DESTROYED);
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
@@ -2119,13 +2119,13 @@ private:
|
||||
if (Creature* target = GetTarget()->ToCreature())
|
||||
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
|
||||
{
|
||||
_alexstraszaGift->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
_alexstraszaGift->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
if (GameObject* heartMagic = target->GetMap()->GetGameObject(instance->GetGuidData(DATA_HEART_OF_MAGIC_GUID)))
|
||||
{
|
||||
heartMagic->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
heartMagic->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
// TO DO: This is hack, core doesn't have support for these flags,
|
||||
// remove line below if it ever gets supported otherwise object won't be accessible.
|
||||
heartMagic->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
|
||||
heartMagic->RemoveFlag(GO_FLAG_INTERACT_COND);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ public:
|
||||
SpawnGameObject(GO_EXIT_PORTAL, exitPortalPosition);
|
||||
|
||||
if (GameObject* platform = instance->GetGameObject(platformGUID))
|
||||
platform->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
|
||||
platform->RemoveFlag(GO_FLAG_DESTROYED);
|
||||
}
|
||||
else if (state == DONE)
|
||||
SpawnGameObject(GO_EXIT_PORTAL, exitPortalPosition);
|
||||
@@ -173,7 +173,7 @@ public:
|
||||
alexstraszaBunny->CastSpell(alexstraszaBunny, SPELL_IRIS_OPENED);
|
||||
|
||||
if (GameObject* iris = instance->GetGameObject(irisGUID))
|
||||
iris->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
iris->SetFlag(GO_FLAG_IN_USE);
|
||||
|
||||
if (Creature* malygos = instance->GetCreature(malygosGUID))
|
||||
malygos->AI()->DoAction(0); // ACTION_LAND_ENCOUNTER_START
|
||||
|
||||
@@ -220,7 +220,7 @@ struct containment_sphere : public GameObjectAI
|
||||
if (keristrasza && keristrasza->IsAlive())
|
||||
{
|
||||
// maybe these are hacks :(
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
ENSURE_AI(boss_keristrasza, keristrasza->AI())->CheckContainmentSpheres(true);
|
||||
|
||||
@@ -101,17 +101,17 @@ class instance_nexus : public InstanceMapScript
|
||||
case GO_ANOMALUS_CONTAINMENT_SPHERE:
|
||||
AnomalusContainmentSphere = go->GetGUID();
|
||||
if (GetBossState(DATA_ANOMALUS) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_ORMOROKS_CONTAINMENT_SPHERE:
|
||||
OrmoroksContainmentSphere = go->GetGUID();
|
||||
if (GetBossState(DATA_ORMOROK) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_TELESTRAS_CONTAINMENT_SPHERE:
|
||||
TelestrasContainmentSphere = go->GetGUID();
|
||||
if (GetBossState(DATA_MAGUS_TELESTRA) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -129,21 +129,21 @@ class instance_nexus : public InstanceMapScript
|
||||
if (state == DONE)
|
||||
{
|
||||
if (GameObject* sphere = instance->GetGameObject(TelestrasContainmentSphere))
|
||||
sphere->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
sphere->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
break;
|
||||
case DATA_ANOMALUS:
|
||||
if (state == DONE)
|
||||
{
|
||||
if (GameObject* sphere = instance->GetGameObject(AnomalusContainmentSphere))
|
||||
sphere->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
sphere->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
break;
|
||||
case DATA_ORMOROK:
|
||||
if (state == DONE)
|
||||
{
|
||||
if (GameObject* sphere = instance->GetGameObject(OrmoroksContainmentSphere))
|
||||
sphere->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
sphere->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -212,7 +212,7 @@ class instance_oculus : public InstanceMapScript
|
||||
if (GameObject* cache = instance->GetGameObject(EregosCacheGUID))
|
||||
{
|
||||
cache->SetRespawnTime(cache->GetRespawnDelay());
|
||||
cache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
cache->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -95,7 +95,7 @@ class instance_halls_of_stone : public InstanceMapScript
|
||||
case GO_TRIBUNAL_CHEST_HERO:
|
||||
TribunalChestGUID = go->GetGUID();
|
||||
if (GetBossState(DATA_TRIBUNAL_OF_AGES) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case GO_TRIBUNAL_SKY_FLOOR:
|
||||
TribunalSkyFloorGUID = go->GetGUID();
|
||||
@@ -149,7 +149,7 @@ class instance_halls_of_stone : public InstanceMapScript
|
||||
if (state == DONE)
|
||||
{
|
||||
if (GameObject* go = instance->GetGameObject(TribunalChestGUID))
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -974,7 +974,7 @@ struct go_celestial_planetarium_access : public GameObjectAI
|
||||
|
||||
bool OnReportUse(Player* player) override
|
||||
{
|
||||
if (me->HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE))
|
||||
if (me->HasFlag(GO_FLAG_IN_USE))
|
||||
return true;
|
||||
|
||||
bool hasKey = true;
|
||||
@@ -998,7 +998,7 @@ struct go_celestial_planetarium_access : public GameObjectAI
|
||||
return false;
|
||||
|
||||
// Start Algalon event
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
me->SetFlag(GO_FLAG_IN_USE);
|
||||
_events.ScheduleEvent(EVENT_DESPAWN_CONSOLE, 5s);
|
||||
if (Creature* brann = me->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannIntroSpawnPos))
|
||||
brann->AI()->DoAction(ACTION_START_INTRO);
|
||||
|
||||
@@ -432,7 +432,7 @@ class boss_mimiron : public CreatureScript
|
||||
DoCast(me->GetVehicleBase(), SPELL_SEAT_6);
|
||||
|
||||
if (GameObject* button = instance->GetGameObject(DATA_MIMIRON_BUTTON))
|
||||
button->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
button->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
if (_fireFighter)
|
||||
events.ScheduleEvent(EVENT_SUMMON_FLAMES, 3s);
|
||||
@@ -474,7 +474,7 @@ class boss_mimiron : public CreatureScript
|
||||
if (GameObject* button = instance->GetGameObject(DATA_MIMIRON_BUTTON))
|
||||
{
|
||||
button->SetGoState(GO_STATE_READY);
|
||||
button->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
button->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
_fireFighter = false;
|
||||
@@ -1683,14 +1683,14 @@ class go_mimiron_hardmode_button : public GameObjectScript
|
||||
|
||||
bool OnGossipHello(Player* /*player*/) override
|
||||
{
|
||||
if (me->HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE))
|
||||
if (me->HasFlag(GO_FLAG_NOT_SELECTABLE))
|
||||
return true;
|
||||
|
||||
if (Creature* computer = instance->GetCreature(DATA_COMPUTER))
|
||||
computer->AI()->DoAction(DO_ACTIVATE_COMPUTER);
|
||||
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1515,7 +1515,7 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* /*player*/) override
|
||||
{
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
if (Creature* controller = me->FindNearestCreature(NPC_RAZORSCALE_CONTROLLER, 5.0f))
|
||||
{
|
||||
// Prevent 2 players clicking at "same time"
|
||||
@@ -1555,7 +1555,7 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
_scheduler.Schedule(Seconds(1), [this](TaskContext /*context*/)
|
||||
{
|
||||
me->UseDoorOrButton();
|
||||
|
||||
@@ -488,7 +488,7 @@ class boss_thorim : public CreatureScript
|
||||
me->SummonCreature(s.entry, s.pos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3s);
|
||||
|
||||
if (GameObject* lever = instance->GetGameObject(DATA_THORIM_LEVER))
|
||||
lever->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
lever->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
// Remove trigger auras
|
||||
if (Creature* pillar = ObjectAccessor::GetCreature(*me, _activePillarGUID))
|
||||
@@ -636,7 +636,7 @@ class boss_thorim : public CreatureScript
|
||||
}
|
||||
|
||||
if (GameObject* lever = instance->GetGameObject(DATA_THORIM_LEVER))
|
||||
lever->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
lever->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
// Summon Sif
|
||||
me->SummonCreature(NPC_SIF, SifSpawnPosition);
|
||||
|
||||
@@ -511,7 +511,7 @@ class instance_ulduar : public InstanceMapScript
|
||||
case GO_CELESTIAL_PLANETARIUM_ACCESS_10:
|
||||
case GO_CELESTIAL_PLANETARIUM_ACCESS_25:
|
||||
if (_algalonSummoned)
|
||||
gameObject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
gameObject->SetFlag(GO_FLAG_IN_USE);
|
||||
break;
|
||||
case GO_DOODAD_UL_SIGILDOOR_01:
|
||||
case GO_DOODAD_UL_SIGILDOOR_02:
|
||||
@@ -646,7 +646,7 @@ class instance_ulduar : public InstanceMapScript
|
||||
if (GameObject* gameObject = instance->GetGameObject(KologarnChestGUID))
|
||||
{
|
||||
gameObject->SetRespawnTime(gameObject->GetRespawnDelay());
|
||||
gameObject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
gameObject->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
HandleGameObject(KologarnBridgeGUID, false);
|
||||
}
|
||||
@@ -656,7 +656,7 @@ class instance_ulduar : public InstanceMapScript
|
||||
{
|
||||
if (GameObject* HodirRareCache = instance->GetGameObject(HodirRareCacheGUID))
|
||||
if (GetData(DATA_HODIR_RARE_CACHE))
|
||||
HodirRareCache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
HodirRareCache->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
if (GameObject* HodirChest = instance->GetGameObject(HodirChestGUID))
|
||||
HodirChest->SetRespawnTime(HodirChest->GetRespawnDelay());
|
||||
|
||||
@@ -672,7 +672,7 @@ class instance_ulduar : public InstanceMapScript
|
||||
{
|
||||
cache->SetLootRecipient(thorim->GetLootRecipient());
|
||||
cache->SetRespawnTime(cache->GetRespawnDelay());
|
||||
cache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
cache->RemoveFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -202,7 +202,7 @@ struct boss_palehoof : public BossAI
|
||||
if (GameObject* go = instance->GetGameObject(DATA_GORTOK_PALEHOOF_SPHERE))
|
||||
{
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -512,7 +512,7 @@ struct go_palehoof_sphere : public GameObjectAI
|
||||
{
|
||||
if (palehoof->IsAlive() && instance->GetBossState(DATA_GORTOK_PALEHOOF) != DONE)
|
||||
{
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
palehoof->AI()->DoAction(ACTION_START_ENCOUNTER);
|
||||
}
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ class instance_utgarde_pinnacle : public InstanceMapScript
|
||||
|
||||
if (go->GetEntry() == GO_GORTOK_PALEHOOF_SPHERE)
|
||||
if (GetBossState(DATA_GORTOK_PALEHOOF) == DONE)
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
go->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void SetGuidData(uint32 type, ObjectGuid data) override
|
||||
|
||||
@@ -409,7 +409,7 @@ class instance_violet_hold : public InstanceMapScript
|
||||
|
||||
for (uint8 i = 0; i < ActivationCrystalCount; ++i)
|
||||
if (GameObject* crystal = instance->GetGameObject(ActivationCrystalGUIDs[i]))
|
||||
crystal->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
crystal->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
Scheduler.Schedule(Seconds(3), [this](TaskContext task)
|
||||
{
|
||||
@@ -422,7 +422,7 @@ class instance_violet_hold : public InstanceMapScript
|
||||
if (GameObject* mainDoor = GetGameObject(DATA_MAIN_DOOR))
|
||||
{
|
||||
mainDoor->SetGoState(GO_STATE_ACTIVE);
|
||||
mainDoor->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
mainDoor->RemoveFlag(GO_FLAG_LOCKED);
|
||||
}
|
||||
|
||||
DoUpdateWorldState(WORLD_STATE_VH_SHOW, 0);
|
||||
@@ -431,21 +431,21 @@ class instance_violet_hold : public InstanceMapScript
|
||||
|
||||
for (uint8 i = 0; i < ActivationCrystalCount; ++i)
|
||||
if (GameObject* crystal = instance->GetGameObject(ActivationCrystalGUIDs[i]))
|
||||
crystal->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
crystal->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
else if (data == DONE)
|
||||
{
|
||||
if (GameObject* mainDoor = GetGameObject(DATA_MAIN_DOOR))
|
||||
{
|
||||
mainDoor->SetGoState(GO_STATE_ACTIVE);
|
||||
mainDoor->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
mainDoor->RemoveFlag(GO_FLAG_LOCKED);
|
||||
}
|
||||
|
||||
DoUpdateWorldState(WORLD_STATE_VH_SHOW, 0);
|
||||
|
||||
for (uint8 i = 0; i < ActivationCrystalCount; ++i)
|
||||
if (GameObject* crystal = instance->GetGameObject(ActivationCrystalGUIDs[i]))
|
||||
crystal->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
crystal->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
if (Creature* sinclari = GetCreature(DATA_SINCLARI))
|
||||
sinclari->AI()->DoAction(ACTION_SINCLARI_OUTRO);
|
||||
|
||||
@@ -502,7 +502,7 @@ struct npc_sinclari_vh : public ScriptedAI
|
||||
if (GameObject* mainDoor = _instance->GetGameObject(DATA_MAIN_DOOR))
|
||||
{
|
||||
mainDoor->SetGoState(GO_STATE_READY);
|
||||
mainDoor->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
|
||||
mainDoor->SetFlag(GO_FLAG_LOCKED);
|
||||
}
|
||||
task.Repeat(Seconds(5));
|
||||
break;
|
||||
|
||||
@@ -73,7 +73,7 @@ class instance_sethekk_halls : public InstanceMapScript
|
||||
/// gameobject should have GO_DYNFLAG_LO_ACTIVATE too, which makes gobs interactable with GO_FLAG_INTERACT_COND
|
||||
/// so just removed GO_FLAG_INTERACT_COND
|
||||
if (GameObject* coffer = GetGameObject(DATA_TALON_KING_COFFER))
|
||||
coffer->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
|
||||
coffer->RemoveFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -33,7 +33,7 @@ struct go_main_chambers_access_panel : public GameObjectAI
|
||||
if (Creature* controller = _instance->GetCreature(DATA_DOOR_CONTROLLER))
|
||||
controller->AI()->Talk(CONTROLLER_TEXT_ACESS_USED);
|
||||
_instance->SetData(ACTION_OPEN_DOOR, 0);
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
return true;
|
||||
}
|
||||
@@ -91,7 +91,7 @@ class instance_steam_vault : public InstanceMapScript
|
||||
if (GameObject* mainDoor = GetGameObject(DATA_MAIN_DOOR))
|
||||
{
|
||||
HandleGameObject(ObjectGuid::Empty, true, mainDoor);
|
||||
mainDoor->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
mainDoor->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -121,12 +121,12 @@ class instance_steam_vault : public InstanceMapScript
|
||||
case DATA_HYDROMANCER_THESPIA:
|
||||
if (state == DONE)
|
||||
if (GameObject* panel = GetGameObject(DATA_ACCESS_PANEL_HYDRO))
|
||||
panel->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
panel->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case DATA_MEKGINEER_STEAMRIGGER:
|
||||
if (state == DONE)
|
||||
if (GameObject* panel = GetGameObject(DATA_ACCESS_PANEL_MEK))
|
||||
panel->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
panel->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -132,7 +132,7 @@ class boss_broggok : public CreatureScript
|
||||
instance->SetBossState(DATA_BROGGOK, NOT_STARTED);
|
||||
if (GameObject * lever = instance->GetGameObject(DATA_BROGGOK_LEVER))
|
||||
{
|
||||
lever->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE);
|
||||
lever->RemoveFlag(GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE);
|
||||
lever->SetGoState(GO_STATE_READY);
|
||||
}
|
||||
break;
|
||||
@@ -261,7 +261,7 @@ class go_broggok_lever : public GameObjectScript
|
||||
broggok->AI()->DoAction(ACTION_PREPARE_BROGGOK);
|
||||
}
|
||||
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE);
|
||||
me->SetFlag(GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE);
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
return true;
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ class instance_ramparts : public InstanceMapScript
|
||||
case DATA_NAZAN:
|
||||
if (GetBossState(DATA_VAZRUDEN) == DONE && GetBossState(DATA_NAZAN) == DONE)
|
||||
if (GameObject* chest = instance->GetGameObject(felIronChestGUID))
|
||||
chest->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
chest->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
+2
-2
@@ -105,9 +105,9 @@ class instance_magtheridons_lair : public InstanceMapScript
|
||||
if (GameObject* cube = instance->GetGameObject(gobGUID))
|
||||
{
|
||||
if (value == ACTION_ENABLE)
|
||||
cube->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
cube->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
else
|
||||
cube->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
cube->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
break;
|
||||
case DATA_COLLAPSE:
|
||||
|
||||
@@ -595,7 +595,7 @@ class npc_simon_bunny : public CreatureScript
|
||||
_events.ScheduleEvent(EVENT_SIMON_PERIODIC_PLAYER_CHECK, 2s);
|
||||
|
||||
if (GameObject* relic = me->FindNearestGameObject(large ? GO_APEXIS_MONUMENT : GO_APEXIS_RELIC, searchDistance))
|
||||
relic->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
relic->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
// Called when despawning the bunny. Sets all the node GOs to their default states.
|
||||
@@ -605,14 +605,14 @@ class npc_simon_bunny : public CreatureScript
|
||||
|
||||
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->SetFlag(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->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
me->DespawnOrUnsummon(1s);
|
||||
}
|
||||
@@ -655,7 +655,7 @@ class npc_simon_bunny : public CreatureScript
|
||||
{
|
||||
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->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
if (clustersOnly)
|
||||
return;
|
||||
@@ -709,7 +709,7 @@ class npc_simon_bunny : public CreatureScript
|
||||
{
|
||||
if (GameObject* cluster = me->FindNearestGameObject(clusterIds[clusterId], 2.0f*searchDistance))
|
||||
{
|
||||
cluster->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
cluster->SetFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
// break since we don't need glowing auras for large clusters
|
||||
if (large)
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "DBCEnums.h"
|
||||
#include "Define.h"
|
||||
#include "EnumFlag.h"
|
||||
#include "SmartEnum.h"
|
||||
|
||||
float const GROUND_HEIGHT_TOLERANCE = 0.05f; // Extra tolerance to z position to check if it is in air or on ground.
|
||||
@@ -1639,6 +1640,8 @@ enum GameObjectFlags
|
||||
GO_FLAG_DESTROYED = 0x00000400
|
||||
};
|
||||
|
||||
DEFINE_ENUM_FLAG(GameObjectFlags);
|
||||
|
||||
enum GameObjectDynamicLowFlags
|
||||
{
|
||||
GO_DYNFLAG_LO_ACTIVATE = 0x01, // enables interaction with GO
|
||||
|
||||
Reference in New Issue
Block a user