aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-07-17 19:14:13 +0200
committerShauren <shauren.trinity@gmail.com>2022-07-17 19:14:13 +0200
commitb8e52fd90bdab6e720d13e44c64483945e139fa2 (patch)
tree23217ab42d5d99f6042fd7bc22fafc3a242d2dfb /src/server/game/Globals/ObjectMgr.cpp
parent87b0a193049c23356b449b48dda1d56262d9c0af (diff)
Core/Maps: Made instance_template no longer required to create and enter instance maps
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index cae5700ef64..67a83cf7c8d 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -6304,7 +6304,7 @@ void ObjectMgr::LoadInstanceTemplate()
uint16 mapID = fields[0].GetUInt16();
- if (!MapManager::IsValidMAP(mapID, true))
+ if (!MapManager::IsValidMAP(mapID))
{
TC_LOG_ERROR("sql.sql", "ObjectMgr::LoadInstanceTemplate: bad mapid %d for template!", mapID);
continue;
@@ -7474,31 +7474,25 @@ void ObjectMgr::LoadAccessRequirements()
*/
AreaTriggerStruct const* ObjectMgr::GetGoBackTrigger(uint32 Map) const
{
- bool useParentDbValue = false;
- uint32 parentId = 0;
+ Optional<uint32> parentId;
MapEntry const* mapEntry = sMapStore.LookupEntry(Map);
if (!mapEntry || mapEntry->CorpseMapID < 0)
return nullptr;
if (mapEntry->IsDungeon())
- {
- InstanceTemplate const* iTemplate = sObjectMgr->GetInstanceTemplate(Map);
-
- if (!iTemplate)
- return nullptr;
+ if (InstanceTemplate const* iTemplate = sObjectMgr->GetInstanceTemplate(Map))
+ parentId = iTemplate->Parent;
- parentId = iTemplate->Parent;
- useParentDbValue = true;
- }
-
- uint32 entrance_map = uint32(mapEntry->CorpseMapID);
+ uint32 entrance_map = parentId.value_or(mapEntry->CorpseMapID);
for (AreaTriggerContainer::const_iterator itr = _areaTriggerStore.begin(); itr != _areaTriggerStore.end(); ++itr)
- if ((!useParentDbValue && itr->second.target_mapId == entrance_map) || (useParentDbValue && itr->second.target_mapId == parentId))
+ {
+ if (itr->second.target_mapId == entrance_map)
{
AreaTriggerEntry const* atEntry = sAreaTriggerStore.LookupEntry(itr->first);
if (atEntry && atEntry->ContinentID == int32(Map))
return &itr->second;
}
+ }
return nullptr;
}