From 7df4f5b2856af9b8eb2af83f827915ac28e3db3a Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 15 Nov 2022 11:57:19 +0100 Subject: Core/GameObjects: Use serverOnly property of GameObjectTemplate for all types that have it, not just spell focus (cherry picked from commit 4ee64a232ad830255bc6779e595d412c934b6b74) --- src/server/game/Entities/GameObject/GameObject.cpp | 2 +- src/server/game/Entities/GameObject/GameObjectData.h | 12 ++++++++++++ 2 files changed, 13 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 2ae6a70d357..31ecfdc62f6 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1798,7 +1798,7 @@ bool GameObject::IsNeverVisibleFor(WorldObject const* seer) const if (WorldObject::IsNeverVisibleFor(seer)) return true; - if (GetGoType() == GAMEOBJECT_TYPE_SPELL_FOCUS && GetGOInfo()->spellFocus.serverOnly == 1) + if (GetGOInfo()->GetServerOnly()) return true; if (!GetDisplayId()) diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h index 0e08bb26fea..1012000322c 100644 --- a/src/server/game/Entities/GameObject/GameObjectData.h +++ b/src/server/game/Entities/GameObject/GameObjectData.h @@ -1192,6 +1192,18 @@ struct GameObjectTemplate } } + uint32 GetServerOnly() const + { + switch (type) + { + case GAMEOBJECT_TYPE_GENERIC: return generic.serverOnly; + case GAMEOBJECT_TYPE_TRAP: return trap.serverOnly; + case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.serverOnly; + case GAMEOBJECT_TYPE_AURA_GENERATOR: return auraGenerator.serverOnly; + default: return 0; + } + } + uint32 GetSpellFocusType() const { switch (type) -- cgit v1.2.3