aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp56
-rw-r--r--src/server/game/Globals/ObjectMgr.h5
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp6
-rw-r--r--src/server/game/World/World.cpp3
-rw-r--r--src/server/shared/Realm/RealmList.cpp17
-rw-r--r--src/server/shared/Realm/RealmList.h1
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;