From 6c71a84e6cd980cfe9a35421e8473dceebafba5b Mon Sep 17 00:00:00 2001 From: Meji Date: Sat, 15 Apr 2023 20:45:21 +0200 Subject: Core/GameObjects: Allow certain types to be sent to the client without display (#28908) --- src/server/game/Entities/GameObject/GameObject.cpp | 2 +- src/server/game/Entities/GameObject/GameObjectData.h | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src') 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; }; -- cgit v1.2.3