aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
};