From 8f3904f8fd4e7536d1e7ba8e701f4774519fd867 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 17 Aug 2019 22:30:27 +0200 Subject: Core/Map: Kill zoneId from RespawnInfo, all it did was significantly slow down startup to make one gm command faster (cherry picked from commit 3a4216fd979eb2a7667b0861a770e9af4f242eab) --- src/server/game/Maps/Map.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/server/game/Maps/Map.cpp') diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index b3e03e21755..e06861c0272 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -3255,18 +3255,19 @@ bool Map::AddRespawnInfo(RespawnInfo const& info) return true; } -static void PushRespawnInfoFrom(std::vector& data, RespawnInfoMap const& map, uint32 zoneId) +static void PushRespawnInfoFrom(std::vector& data, RespawnInfoMap const& map) { + data.reserve(data.size() + map.size()); for (auto const& pair : map) - if (!zoneId || pair.second->zoneId == zoneId) - data.push_back(pair.second); + data.push_back(pair.second); } -void Map::GetRespawnInfo(std::vector& respawnData, SpawnObjectTypeMask types, uint32 zoneId) const + +void Map::GetRespawnInfo(std::vector& respawnData, SpawnObjectTypeMask types) const { if (types & SPAWN_TYPEMASK_CREATURE) - PushRespawnInfoFrom(respawnData, _creatureRespawnTimesBySpawnId, zoneId); + PushRespawnInfoFrom(respawnData, _creatureRespawnTimesBySpawnId); if (types & SPAWN_TYPEMASK_GAMEOBJECT) - PushRespawnInfoFrom(respawnData, _gameObjectRespawnTimesBySpawnId, zoneId); + PushRespawnInfoFrom(respawnData, _gameObjectRespawnTimesBySpawnId); } RespawnInfo* Map::GetRespawnInfo(SpawnObjectType type, ObjectGuid::LowType spawnId) const @@ -4487,7 +4488,7 @@ void Map::UpdateIteratorBack(Player* player) m_mapRefIter = m_mapRefIter->nocheck_prev(); } -void Map::SaveRespawnTime(SpawnObjectType type, ObjectGuid::LowType spawnId, uint32 entry, time_t respawnTime, uint32 zoneId, uint32 gridId, CharacterDatabaseTransaction dbTrans, bool startup) +void Map::SaveRespawnTime(SpawnObjectType type, ObjectGuid::LowType spawnId, uint32 entry, time_t respawnTime, uint32 gridId, CharacterDatabaseTransaction dbTrans, bool startup) { if (!spawnId) return; @@ -4505,7 +4506,6 @@ void Map::SaveRespawnTime(SpawnObjectType type, ObjectGuid::LowType spawnId, uin ri.entry = entry; ri.respawnTime = respawnTime; ri.gridId = gridId; - ri.zoneId = zoneId; bool success = AddRespawnInfo(ri); if (startup) @@ -4545,7 +4545,7 @@ void Map::LoadRespawnTimes() if (type < SPAWN_TYPE_MAX) { if (SpawnData const* data = sObjectMgr->GetSpawnData(type, spawnId)) - SaveRespawnTime(type, spawnId, data->id, time_t(respawnTime), GetZoneId(PhasingHandler::GetEmptyPhaseShift(), data->spawnPoint), Trinity::ComputeGridCoord(data->spawnPoint.GetPositionX(), data->spawnPoint.GetPositionY()).GetId(), nullptr, true); + SaveRespawnTime(type, spawnId, data->id, time_t(respawnTime), Trinity::ComputeGridCoord(data->spawnPoint.GetPositionX(), data->spawnPoint.GetPositionY()).GetId(), nullptr, true); else TC_LOG_ERROR("maps", "Loading saved respawn time of %" PRIu64 " for spawnid (%u," UI64FMTD ") - spawn does not exist, ignoring", respawnTime, uint32(type), spawnId); } -- cgit v1.2.3