diff options
-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; }; |