diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 56 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 5 | ||||
-rw-r--r-- | src/server/game/Handlers/QueryHandler.cpp | 6 | ||||
-rw-r--r-- | src/server/game/World/World.cpp | 3 | ||||
-rw-r--r-- | src/server/shared/Realm/RealmList.cpp | 17 | ||||
-rw-r--r-- | src/server/shared/Realm/RealmList.h | 1 |
6 files changed, 17 insertions, 71 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 16906f2bc27..89b8a5a2b2b 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -10882,62 +10882,6 @@ void ObjectMgr::LoadRaceAndClassExpansionRequirements() TC_LOG_INFO("server.loading", ">> Loaded 0 class expansion requirements. DB table `class_expansion_requirement` is empty."); } -void ObjectMgr::LoadRealmNames() -{ - uint32 oldMSTime = getMSTime(); - _realmNameStore.clear(); - - // 0 1 - QueryResult result = LoginDatabase.Query("SELECT id, name FROM `realmlist`"); - - if (!result) - { - TC_LOG_INFO("server.loading", ">> Loaded 0 realm names. DB table `realmlist` is empty."); - return; - } - - uint32 count = 0; - do - { - Field* fields = result->Fetch(); - - uint32 realmId = fields[0].GetUInt32(); - std::string realmName = fields[1].GetString(); - - _realmNameStore[realmId] = realmName; - - ++count; - } - while (result->NextRow()); - TC_LOG_INFO("server.loading", ">> Loaded {} realm names in {} ms.", count, GetMSTimeDiffToNow(oldMSTime)); -} - -std::string ObjectMgr::GetRealmName(uint32 realmId) const -{ - RealmNameContainer::const_iterator iter = _realmNameStore.find(realmId); - return iter != _realmNameStore.end() ? iter->second : ""; -} - -std::string ObjectMgr::GetNormalizedRealmName(uint32 realmId) const -{ - std::string name = GetRealmName(realmId); - name.erase(std::remove_if(name.begin(), name.end(), ::isspace), name.end()); - return name; -} - -bool ObjectMgr::GetRealmName(uint32 realmId, std::string& name, std::string& normalizedName) const -{ - RealmNameContainer::const_iterator itr = _realmNameStore.find(realmId); - if (itr != _realmNameStore.end()) - { - name = itr->second; - normalizedName = itr->second; - normalizedName.erase(std::remove_if(normalizedName.begin(), normalizedName.end(), ::isspace), normalizedName.end()); - return true; - } - return false; -} - ClassAvailability const* ObjectMgr::GetClassExpansionRequirement(uint8 raceId, uint8 classId) const { auto raceItr = std::find_if(_classExpansionRequirementStore.begin(), _classExpansionRequirementStore.end(), [raceId](RaceClassAvailability const& raceClass) diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 2c99dfe79cd..8b24e257163 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1752,11 +1752,6 @@ class TC_GAME_API ObjectMgr } void LoadRaceAndClassExpansionRequirements(); - void LoadRealmNames(); - - std::string GetRealmName(uint32 realm) const; - std::string GetNormalizedRealmName(uint32 realm) const; - bool GetRealmName(uint32 realmId, std::string& name, std::string& normalizedName) const; std::string GetPhaseName(uint32 phaseId) const; diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp index 565b27c2457..1dddefe38b7 100644 --- a/src/server/game/Handlers/QueryHandler.cpp +++ b/src/server/game/Handlers/QueryHandler.cpp @@ -28,7 +28,7 @@ #include "ObjectMgr.h" #include "Player.h" #include "QueryPackets.h" -#include "Realm.h" +#include "RealmList.h" #include "TerrainMgr.h" #include "World.h" @@ -317,11 +317,11 @@ void WorldSession::HandleQueryRealmName(WorldPackets::Query::QueryRealmName& que realmQueryResponse.VirtualRealmAddress = queryRealmName.VirtualRealmAddress; Battlenet::RealmHandle realmHandle(queryRealmName.VirtualRealmAddress); - if (sObjectMgr->GetRealmName(realmHandle.Realm, realmQueryResponse.NameInfo.RealmNameActual, realmQueryResponse.NameInfo.RealmNameNormalized)) + if (sRealmList->GetRealmNames(realmHandle, &realmQueryResponse.NameInfo.RealmNameActual, &realmQueryResponse.NameInfo.RealmNameNormalized)) { realmQueryResponse.LookupState = RESPONSE_SUCCESS; realmQueryResponse.NameInfo.IsInternalRealm = false; - realmQueryResponse.NameInfo.IsLocal = queryRealmName.VirtualRealmAddress == realm.Id.GetAddress(); + realmQueryResponse.NameInfo.IsLocal = queryRealmName.VirtualRealmAddress == GetVirtualRealmAddress(); } else realmQueryResponse.LookupState = RESPONSE_FAILURE; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 1edcb7bc3bb..d849a261698 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2490,9 +2490,6 @@ void World::SetInitialWorldSettings() TC_LOG_INFO("server.loading", "Loading character templates..."); sCharacterTemplateDataStore->LoadCharacterTemplates(); - TC_LOG_INFO("server.loading", "Loading realm names..."); - sObjectMgr->LoadRealmNames(); - TC_LOG_INFO("server.loading", "Loading battle pets info..."); BattlePets::BattlePetMgr::Initialize(); diff --git a/src/server/shared/Realm/RealmList.cpp b/src/server/shared/Realm/RealmList.cpp index 361e87872e2..c43b12ae241 100644 --- a/src/server/shared/Realm/RealmList.cpp +++ b/src/server/shared/Realm/RealmList.cpp @@ -23,6 +23,7 @@ #include "Errors.h" #include "IoContext.h" #include "Log.h" +#include "MapUtils.h" #include "ProtobufJSON.h" #include "Resolver.h" #include "Util.h" @@ -224,11 +225,19 @@ void RealmList::UpdateRealms(boost::system::error_code const& error) Realm const* RealmList::GetRealm(Battlenet::RealmHandle const& id) const { std::shared_lock<std::shared_mutex> lock(_realmsMutex); - auto itr = _realms.find(id); - if (itr != _realms.end()) - return &itr->second; + return Trinity::Containers::MapGetValuePtr(_realms, id); +} - return nullptr; +bool RealmList::GetRealmNames(Battlenet::RealmHandle const& id, std::string* name, std::string* normalizedName) const +{ + std::shared_lock<std::shared_mutex> lock(_realmsMutex); + Realm const* realm = Trinity::Containers::MapGetValuePtr(_realms, id); + if (!realm) + return false; + + *name = realm->Name; + *normalizedName = realm->NormalizedName; + return true; } RealmBuildInfo const* RealmList::GetBuildInfo(uint32 build) const diff --git a/src/server/shared/Realm/RealmList.h b/src/server/shared/Realm/RealmList.h index 9bf64270589..3d820120c37 100644 --- a/src/server/shared/Realm/RealmList.h +++ b/src/server/shared/Realm/RealmList.h @@ -82,6 +82,7 @@ public: void Close(); Realm const* GetRealm(Battlenet::RealmHandle const& id) const; + bool GetRealmNames(Battlenet::RealmHandle const& id, std::string* name, std::string* normalizedName) const; RealmBuildInfo const* GetBuildInfo(uint32 build) const; uint32 GetMinorMajorBugfixVersionForBuild(uint32 build) const; |