diff options
author | Kittnz <Kittnz@users.noreply.github.com> | 2020-01-23 15:33:09 +0100 |
---|---|---|
committer | ccrs <ccrs@users.noreply.github.com> | 2020-01-23 15:33:09 +0100 |
commit | b0db728c49f0b70d2c4f18270c389e4445161b7f (patch) | |
tree | 693aa670139cd523f999803a63243eedc2f0b19d /src | |
parent | 78c1216bcf60b9e376d9afd9484ff478bda641b1 (diff) |
Core/GameObject: Add infinite visibility GameObject check (#24074)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/GameObject/GameObjectData.h | 13 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 698499e0228..c5f41bae2e6 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -408,6 +408,10 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u if (goinfo->IsLargeGameObject()) SetVisibilityDistanceOverride(VisibilityDistanceType::Large); + // Check if GameObject is Infinite + if (goinfo->IsInfiniteGameObject()) + SetVisibilityDistanceOverride(VisibilityDistanceType::Infinite); + return true; } diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h index 4a967588016..771c48e8682 100644 --- a/src/server/game/Entities/GameObject/GameObjectData.h +++ b/src/server/game/Entities/GameObject/GameObjectData.h @@ -603,6 +603,19 @@ struct GameObjectTemplate } } + bool IsInfiniteGameObject() const + { + switch (type) + { + case GAMEOBJECT_TYPE_DOOR: return true; + case GAMEOBJECT_TYPE_FLAGSTAND: return true; + case GAMEOBJECT_TYPE_FLAGDROP: return true; + case GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY: return true; + case GAMEOBJECT_TYPE_TRAPDOOR: return true; + default: return false; + } + } + void InitializeQueryData(); WorldPacket BuildQueryData(LocaleConstant loc) const; }; |