aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-04-24 00:16:13 +0200
committerShauren <shauren.trinity@gmail.com>2022-04-24 00:16:13 +0200
commit41a04a0c496c8c0c521eeaa76e34fbeb531cc1d9 (patch)
tree481a8faf79ea916afa5c08dc6c4d8cb80addda68 /src/server/game/Entities/Object
parentfddd6cdf3fb342b98d4878d23874f60498d7545a (diff)
Core/Scripts: Begin unifying triggering gameevents (not the game_event db stuff)
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp14
-rw-r--r--src/server/game/Entities/Object/Object.h1
2 files changed, 11 insertions, 4 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index aede0b4276f..59b82508f79 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1921,20 +1921,26 @@ void Map::SummonCreatureGroup(uint8 group, std::list<TempSummon*>* list /*= null
list->push_back(summon);
}
-void WorldObject::SetZoneScript()
+ZoneScript* WorldObject::FindZoneScript() const
{
if (Map* map = FindMap())
{
if (InstanceMap* instanceMap = map->ToInstanceMap())
- m_zoneScript = reinterpret_cast<ZoneScript*>(instanceMap->GetInstanceScript());
+ return reinterpret_cast<ZoneScript*>(instanceMap->GetInstanceScript());
else if (!map->IsBattlegroundOrArena())
{
if (Battlefield* bf = sBattlefieldMgr->GetBattlefieldToZoneId(GetZoneId()))
- m_zoneScript = bf;
+ return bf;
else
- m_zoneScript = sOutdoorPvPMgr->GetZoneScript(GetZoneId());
+ return sOutdoorPvPMgr->GetZoneScript(GetZoneId());
}
}
+ return nullptr;
+}
+
+void WorldObject::SetZoneScript()
+{
+ m_zoneScript = FindZoneScript();
}
Scenario* WorldObject::GetScenario() const
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index cd1e47ca26a..8317e80f0b3 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -557,6 +557,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
//used to check all object's GetMap() calls when object is not in world!
void SetZoneScript();
+ ZoneScript* FindZoneScript() const;
ZoneScript* GetZoneScript() const { return m_zoneScript; }
Scenario* GetScenario() const;