diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-01-07 22:38:21 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-01-07 22:38:21 +0100 |
commit | 92ed5e8af1f8b1aac085fd9b0ea93afb2b6795d4 (patch) | |
tree | f141fe0afd8ff11a7037329ffd75f070d73d6e70 /src/server/game/Maps | |
parent | a53e4a57565d3375a978effbbc32d3eed6aac7e3 (diff) |
Core/Misc: Include cleanup, 2023 edition
Diffstat (limited to 'src/server/game/Maps')
-rw-r--r-- | src/server/game/Maps/Map.cpp | 13 | ||||
-rw-r--r-- | src/server/game/Maps/Map.h | 17 |
2 files changed, 17 insertions, 13 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index fdec078db36..9b863c17cac 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -164,7 +164,7 @@ i_scriptLock(false), _respawnTimes(std::make_unique<RespawnListContainer>()), _r _weatherUpdateTimer.SetInterval(time_t(1 * IN_MILLISECONDS)); - GetGuidSequenceGenerator<HighGuid::Transport>().Set(sObjectMgr->GetGenerator<HighGuid::Transport>().GetNextAfterMaxUsed()); + GetGuidSequenceGenerator(HighGuid::Transport).Set(sObjectMgr->GetGenerator<HighGuid::Transport>().GetNextAfterMaxUsed()); _poolData = sPoolMgr->InitPoolsForMap(this); @@ -2474,6 +2474,15 @@ void Map::UpdateSpawnGroupConditions() } } +ObjectGuidGenerator& Map::GetGuidSequenceGenerator(HighGuid high) +{ + auto itr = _guidGenerators.find(high); + if (itr == _guidGenerators.end()) + itr = _guidGenerators.insert(std::make_pair(high, std::make_unique<ObjectGuidGenerator>(high))).first; + + return *itr->second; +} + void Map::AddFarSpellCallback(FarSpellCallback&& callback) { _farSpellCallbacks.Enqueue(new FarSpellCallback(std::move(callback))); @@ -3913,3 +3922,5 @@ std::string InstanceMap::GetDebugInfo() const << "ScriptId: " << GetScriptId() << " ScriptName: " << GetScriptName(); return sstr.str(); } + +template class TC_GAME_API TypeUnorderedMapContainer<AllMapStoredObjectTypes, ObjectGuid>; diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index a3061418e4a..da4aa7ced8e 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -178,6 +178,7 @@ inline bool CompareRespawnInfo::operator()(RespawnInfo const* a, RespawnInfo con return a->type < b->type; } +extern template class TypeUnorderedMapContainer<AllMapStoredObjectTypes, ObjectGuid>; typedef TypeUnorderedMapContainer<AllMapStoredObjectTypes, ObjectGuid> MapStoredObjectTypesContainer; class TC_GAME_API Map : public GridRefManager<NGridType> @@ -494,14 +495,14 @@ class TC_GAME_API Map : public GridRefManager<NGridType> inline ObjectGuid::LowType GenerateLowGuid() { static_assert(ObjectGuidTraits<high>::SequenceSource.HasFlag(ObjectGuidSequenceSource::Map), "Only map specific guid can be generated in Map context"); - return GetGuidSequenceGenerator<high>().Generate(); + return GetGuidSequenceGenerator(high).Generate(); } template<HighGuid high> inline ObjectGuid::LowType GetMaxLowGuid() { static_assert(ObjectGuidTraits<high>::SequenceSource.HasFlag(ObjectGuidSequenceSource::Map), "Only map specific guid can be retrieved in Map context"); - return GetGuidSequenceGenerator<high>().GetNextAfterMaxUsed(); + return GetGuidSequenceGenerator(high).GetNextAfterMaxUsed(); } void AddUpdateObject(Object* obj) @@ -762,17 +763,9 @@ class TC_GAME_API Map : public GridRefManager<NGridType> ZoneDynamicInfoMap _zoneDynamicInfo; IntervalTimer _weatherUpdateTimer; - template<HighGuid high> - inline ObjectGuidGeneratorBase& GetGuidSequenceGenerator() - { - auto itr = _guidGenerators.find(high); - if (itr == _guidGenerators.end()) - itr = _guidGenerators.insert(std::make_pair(high, std::make_unique<ObjectGuidGenerator<high>>())).first; - - return *itr->second; - } + ObjectGuidGenerator& GetGuidSequenceGenerator(HighGuid high); - std::map<HighGuid, std::unique_ptr<ObjectGuidGeneratorBase>> _guidGenerators; + std::map<HighGuid, std::unique_ptr<ObjectGuidGenerator>> _guidGenerators; std::unique_ptr<SpawnedPoolData> _poolData; MapStoredObjectTypesContainer _objectsStore; CreatureBySpawnIdContainer _creatureBySpawnIdStore; |