aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp4
-rw-r--r--src/server/game/Entities/GameObject/GameObjectData.h13
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;
};