From 4a6db8f8c6fb5fa3b942d89d08405426f5be45bb Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Fri, 17 Dec 2021 18:06:57 +0100 Subject: [PATCH] fix(Core/Object): Add infinite gob check (#9667) * cherry-pick commit (https://github.com/TrinityCore/TrinityCore/commit/b0db728c49f0b70d2c4f18270c389e4445161b7f) Co-authored-by: Kittnz <5845231+kittnz@users.noreply.github.com> --- .../game/Entities/GameObject/GameObject.cpp | 6 ++++++ .../game/Entities/GameObject/GameObject.h | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index a159ebbfd..fad53f256 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -400,6 +400,12 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u SetVisibilityDistanceOverride(VisibilityDistanceType::Large); } + // Check if GameObject is Infinite + if (goinfo->IsInfiniteGameObject()) + { + SetVisibilityDistanceOverride(VisibilityDistanceType::Infinite); + } + return true; } diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index 1a71c1f38..f65691903 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -624,6 +624,25 @@ struct GameObjectTemplate } } + [[nodiscard]] 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; + } + } + [[nodiscard]] bool IsGameObjectForQuests() const { return IsForQuests;