diff options
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/GameObject/GameObjectData.h | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index d9ee233faf4..665e3244125 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1799,7 +1799,7 @@ bool GameObject::IsNeverVisibleFor(WorldObject const* seer, bool allowServerside if (GetGOInfo()->GetServerOnly() && !allowServersideObjects) return true; - if (!GetDisplayId()) + if (!GetDisplayId() && GetGOInfo()->IsDisplayMandatory()) return true; return false; diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h index 91b95eb0888..ae75a4d5ec9 100644 --- a/src/server/game/Entities/GameObject/GameObjectData.h +++ b/src/server/game/Entities/GameObject/GameObjectData.h @@ -1232,6 +1232,19 @@ struct GameObjectTemplate } } + bool IsDisplayMandatory() const + { + switch (type) + { + case GAMEOBJECT_TYPE_SPELL_FOCUS: + case GAMEOBJECT_TYPE_MULTI: + case GAMEOBJECT_TYPE_SIEGEABLE_MULTI: + return false; + default: + return true; + } + } + void InitializeQueryData(); WorldPacket BuildQueryData(LocaleConstant loc) const; }; |