aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeji <alvaro.megias@outlook.com>2023-04-15 20:45:21 +0200
committerGitHub <noreply@github.com>2023-04-15 20:45:21 +0200
commit6c71a84e6cd980cfe9a35421e8473dceebafba5b (patch)
tree303e9c5e6d43f6293020338686f36c0023346327
parent795f139e755acd46bb9feba85f0f07a1f49cda39 (diff)
Core/GameObjects: Allow certain types to be sent to the client without display (#28908)
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp2
-rw-r--r--src/server/game/Entities/GameObject/GameObjectData.h13
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;
};