aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-11-15 11:57:19 +0100
committerShauren <shauren.trinity@gmail.com>2022-11-15 11:57:19 +0100
commit4ee64a232ad830255bc6779e595d412c934b6b74 (patch)
tree7a42027c893ea6bce69dc33a53c69782aa444265
parent37d8b6d33b58a136319a052db50900db3d798919 (diff)
Core/GameObjects: Use serverOnly property of GameObjectTemplate for all types that have it, not just spell focus
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp2
-rw-r--r--src/server/game/Entities/GameObject/GameObjectData.h12
2 files changed, 13 insertions, 1 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 8e9d541e2c6..44929448251 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -1245,7 +1245,7 @@ bool GameObject::IsNeverVisible() const
if (WorldObject::IsNeverVisible())
return true;
- if (GetGoType() == GAMEOBJECT_TYPE_SPELL_FOCUS && GetGOInfo()->spellFocus.serverOnly == 1)
+ if (GetGOInfo()->GetServerOnly())
return true;
return false;
diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h
index 087eb8c18bd..5f68c3f7b16 100644
--- a/src/server/game/Entities/GameObject/GameObjectData.h
+++ b/src/server/game/Entities/GameObject/GameObjectData.h
@@ -617,6 +617,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;
+ }
+ }
+
void InitializeQueryData();
WorldPacket BuildQueryData(LocaleConstant loc) const;
};