Core/Locales: ported locale string moving optimization from master branch

This commit is contained in:
Ovahlord committed 2022-12-20 16:31:46 +01:00
1 parent 122b52b079
commit b5ad731cf3
4 files changed
+37 -50

No files matched your search

@@ -3714,8 +3714,10 @@ void AchievementGlobalMgr::LoadRewardLocales()
uint32 id = fields[0].GetUInt32();
std::string localeName = fields[1].GetString();
std::string subject = fields[2].GetString();
std::string text = fields[3].GetString();
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
if (m_achievementRewards.find(id) == m_achievementRewards.end())
{
@@ -3724,12 +3726,8 @@ void AchievementGlobalMgr::LoadRewardLocales()
}
AchievementRewardLocale& data = m_achievementRewardLocales[id];
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
ObjectMgr::AddLocaleString(subject, locale, data.Subject);
ObjectMgr::AddLocaleString(text, locale, data.Text);
ObjectMgr::AddLocaleString(fields[2].GetString(), locale, data.Subject);
ObjectMgr::AddLocaleString(fields[3].GetString(), locale, data.Text);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u achievement reward locale strings in %u ms.", uint32(m_achievementRewardLocales.size()), GetMSTimeDiffToNow(oldMSTime));
+28 -37
View File
@@ -286,14 +286,14 @@ ObjectMgr::~ObjectMgr()
delete itr->second;
}
void ObjectMgr::AddLocaleString(std::string const& value, LocaleConstant localeConstant, std::vector<std::string>& data)
void ObjectMgr::AddLocaleString(std::string const&& value, LocaleConstant localeConstant, std::vector<std::string>& data)
{
if (!value.empty())
{
if (data.size() <= size_t(localeConstant))
data.resize(localeConstant + 1);
data[localeConstant] = value;
data[localeConstant] = std::move(value);
}
}
@@ -343,18 +343,14 @@ void ObjectMgr::LoadCreatureLocales()
uint32 id = fields[0].GetUInt32();
std::string localeName = fields[1].GetString();
std::string name = fields[2].GetString();
std::string femaleName = fields[3].GetString();
std::string title = fields[4].GetString();
CreatureLocale& data = _creatureLocaleStore[id];
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
AddLocaleString(name, locale, data.Name);
AddLocaleString(femaleName, locale, data.FemaleName);
AddLocaleString(title, locale, data.Title);
CreatureLocale& data = _creatureLocaleStore[id];
AddLocaleString(fields[2].GetString(), locale, data.Name);
AddLocaleString(fields[3].GetString(), locale, data.FemaleName);
AddLocaleString(fields[4].GetString(), locale, data.Title);
} while (result->NextRow());
@@ -411,12 +407,13 @@ void ObjectMgr::LoadPointOfInterestLocales()
uint32 id = fields[0].GetUInt32();
std::string localeName = fields[1].GetString();
std::string name = fields[2].GetString();
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
PointOfInterestLocale& data = _pointOfInterestLocaleStore[id];
LocaleConstant locale = GetLocaleByName(localeName);
AddLocaleString(name, locale, data.Name);
AddLocaleString(fields[2].GetString(), locale, data.Name);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u points_of_interest locale strings in %u ms", uint32(_pointOfInterestLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));
@@ -4950,10 +4947,12 @@ void ObjectMgr::LoadQuestLocales()
uint32 id = fields[0].GetUInt32();
std::string localeName = fields[1].GetString();
QuestLocale& data = _questLocaleStore[id];
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
QuestLocale& data = _questLocaleStore[id];
AddLocaleString(fields[2].GetString(), locale, data.Title);
AddLocaleString(fields[3].GetString(), locale, data.Details);
AddLocaleString(fields[4].GetString(), locale, data.Objectives);
@@ -5599,15 +5598,13 @@ void ObjectMgr::LoadPageTextLocales()
uint32 id = fields[0].GetUInt32();
std::string localeName = fields[1].GetString();
std::string text = fields[2].GetString();
PageTextLocale& data = _pageTextLocaleStore[id];
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
AddLocaleString(text, locale, data.Text);
PageTextLocale& data = _pageTextLocaleStore[id];
AddLocaleString(fields[2].GetString(), locale, data.Text);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u PageText locale strings in %u ms", uint32(_pageTextLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));
@@ -6193,14 +6190,13 @@ void ObjectMgr::LoadQuestGreetingsLocales()
}
std::string localeName = fields[2].GetString();
std::string greeting = fields[3].GetString();
QuestGreetingLocale& data = _questGreetingLocaleStore[MAKE_PAIR32(id, type)];
LocaleConstant locale = GetLocaleByName(localeName);
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
AddLocaleString(greeting, locale, data.greeting);
QuestGreetingLocale& data = _questGreetingLocaleStore[MAKE_PAIR32(id, type)];
AddLocaleString(fields[3].GetString(), locale, data.greeting);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u quest greeting locale strings in %u ms", uint32(_questGreetingLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));
@@ -7039,16 +7035,13 @@ void ObjectMgr::LoadGameObjectLocales()
uint32 id = fields[0].GetUInt32();
std::string localeName = fields[1].GetString();
std::string name = fields[2].GetString();
std::string castBarCaption = fields[3].GetString();
GameObjectLocale& data = _gameObjectLocaleStore[id];
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
AddLocaleString(name, locale, data.Name);
AddLocaleString(castBarCaption, locale, data.CastBarCaption);
GameObjectLocale& data = _gameObjectLocaleStore[id];
AddLocaleString(fields[2].GetString(), locale, data.Name);
AddLocaleString(fields[3].GetString(), locale, data.CastBarCaption);
} while (result->NextRow());
@@ -9500,8 +9493,10 @@ void ObjectMgr::LoadBroadcastTextLocales()
uint32 id = fields[0].GetUInt32();
std::string localeName = fields[1].GetString();
std::string Text = fields[2].GetString();
std::string Text1 = fields[3].GetString();
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
BroadcastTextContainer::iterator bct = _broadcastTextStore.find(id);
if (bct == _broadcastTextStore.end())
@@ -9510,12 +9505,8 @@ void ObjectMgr::LoadBroadcastTextLocales()
continue;
}
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
AddLocaleString(Text, locale, bct->second.Text);
AddLocaleString(Text1, locale, bct->second.Text1);
AddLocaleString(fields[2].GetString(), locale, bct->second.Text);
AddLocaleString(fields[3].GetString(), locale, bct->second.Text1);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u broadcast text locales in %u ms", uint32(_broadcastTextStore.size()), GetMSTimeDiffToNow(oldMSTime));
+1 -1
View File
@@ -1571,7 +1571,7 @@ class TC_GAME_API ObjectMgr
// for wintergrasp only
GraveyardContainer GraveyardStore;
static void AddLocaleString(std::string const& value, LocaleConstant localeConstant, std::vector<std::string>& data);
static void AddLocaleString(std::string const&& value, LocaleConstant localeConstant, std::vector<std::string>& data);
static inline void GetLocaleString(std::vector<std::string> const& data, LocaleConstant localeConstant, std::string& value)
{
if (data.size() > size_t(localeConstant) && !data[localeConstant].empty())
+2 -4
View File
@@ -200,14 +200,12 @@ void CreatureTextMgr::LoadCreatureTextLocales()
uint32 groupId = fields[1].GetUInt8();
uint32 id = fields[2].GetUInt8();
std::string localeName = fields[3].GetString();
std::string text = fields[4].GetString();
CreatureTextLocale& data = mLocaleTextMap[CreatureTextId(creatureId, groupId, id)];
LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
ObjectMgr::AddLocaleString(text, locale, data.Text);
CreatureTextLocale& data = mLocaleTextMap[CreatureTextId(creatureId, groupId, id)];
ObjectMgr::AddLocaleString(fields[4].GetString(), locale, data.Text);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u creature localized texts in %u ms", uint32(mLocaleTextMap.size()), GetMSTimeDiffToNow(oldMSTime));