diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-07-17 19:14:13 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-07-17 19:14:13 +0200 |
commit | b8e52fd90bdab6e720d13e44c64483945e139fa2 (patch) | |
tree | 23217ab42d5d99f6042fd7bc22fafc3a242d2dfb /src/server/game/Globals/ObjectMgr.cpp | |
parent | 87b0a193049c23356b449b48dda1d56262d9c0af (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.cpp | 22 |
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; } |