aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorJeremy <Golrag@users.noreply.github.com>2024-09-14 13:01:54 +0200
committerGitHub <noreply@github.com>2024-09-14 13:01:54 +0200
commitc499110a0d09364fa62a1f67db17032aea9c77e6 (patch)
tree25dbe1cd4312e64e6f455ff9d05bec363f30ab3e /src/server/game/Entities
parent4a574c0ce1149825c0fba77b0bea60608cbc470f (diff)
Scripts/Battlegrounds: Implement Silvershard mines (#30120)
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp12
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 2600a5fbdf9..eb48c74b1fa 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -4495,6 +4495,18 @@ void GameObject::HandleCustomTypeCommand(GameObjectTypeBase::CustomCommand const
command.Execute(*m_goTypeImpl);
}
+TeamId GameObject::GetControllingTeam() const
+{
+ if (GetGoType() != GAMEOBJECT_TYPE_CONTROL_ZONE)
+ return TEAM_NEUTRAL;
+
+ GameObjectType::ControlZone const* controlZone = dynamic_cast<GameObjectType::ControlZone const*>(m_goTypeImpl.get());
+ if (!controlZone)
+ return TEAM_NEUTRAL;
+
+ return controlZone->GetControllingTeam();
+}
+
void GameObject::CreateModel()
{
m_model = GameObjectModel::Create(std::make_unique<GameObjectModelOwnerImpl>(this), sWorld->GetDataPath());
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 160b768544b..381317169db 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -453,6 +453,8 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
UF::UpdateField<UF::GameObjectData, 0, TYPEID_GAMEOBJECT> m_gameObjectData;
+ TeamId GetControllingTeam() const;
+
protected:
void CreateModel();
void UpdateModel(); // updates model in case displayId were changed