aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-01-07 22:38:21 +0100
committerShauren <shauren.trinity@gmail.com>2023-01-07 22:38:21 +0100
commit92ed5e8af1f8b1aac085fd9b0ea93afb2b6795d4 (patch)
treef141fe0afd8ff11a7037329ffd75f070d73d6e70 /src/server/game/Maps
parenta53e4a57565d3375a978effbbc32d3eed6aac7e3 (diff)
Core/Misc: Include cleanup, 2023 edition
Diffstat (limited to 'src/server/game/Maps')
-rw-r--r--src/server/game/Maps/Map.cpp13
-rw-r--r--src/server/game/Maps/Map.h17
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;