diff options
-rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 14 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 93 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 2 | ||||
-rw-r--r-- | src/server/game/Texts/CreatureTextMgr.cpp | 5 |
4 files changed, 48 insertions, 66 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index ee6e0da0f4c..aaca0ffd1c4 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -2722,8 +2722,10 @@ void AchievementGlobalMgr::LoadRewardLocales() uint32 id = fields[0].GetUInt32(); std::string localeName = fields[1].GetString(); - std::string subject = fields[2].GetString(); - std::string body = fields[3].GetString(); + + LocaleConstant locale = GetLocaleByName(localeName); + if (locale == LOCALE_enUS) + continue; if (m_achievementRewards.find(id) == m_achievementRewards.end()) { @@ -2732,12 +2734,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(body, 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)); diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 4f82235bfda..6380015ea2b 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -246,14 +246,14 @@ ObjectMgr::~ObjectMgr() { } -void ObjectMgr::AddLocaleString(std::string const& value, LocaleConstant localeConstant, std::vector<std::string>& data) +void ObjectMgr::AddLocaleString(std::string&& 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); } } @@ -275,17 +275,13 @@ void ObjectMgr::LoadCreatureLocales() uint32 id = fields[0].GetUInt32(); std::string localeName = fields[1].GetString(); - std::string name = fields[2].GetString(); - std::string title = fields[3].GetString(); - - CreatureLocale& data = _creatureLocaleStore[id]; LocaleConstant locale = GetLocaleByName(localeName); if (locale == LOCALE_enUS) continue; - AddLocaleString(name, locale, data.Name); - AddLocaleString(title, locale, data.Title); - + CreatureLocale& data = _creatureLocaleStore[id]; + AddLocaleString(fields[2].GetString(), locale, data.Name); + AddLocaleString(fields[3].GetString(), locale, data.Title); } while (result->NextRow()); TC_LOG_INFO("server.loading", ">> Loaded %u creature locale strings in %u ms", uint32(_creatureLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime)); @@ -310,16 +306,14 @@ void ObjectMgr::LoadGossipMenuItemsLocales() uint16 menuId = fields[0].GetUInt16(); uint16 optionId = fields[1].GetUInt16(); std::string localeName = fields[2].GetString(); - std::string optionText = fields[3].GetString(); - std::string boxText = fields[4].GetString(); - GossipMenuItemsLocale& data = _gossipMenuItemsLocaleStore[MAKE_PAIR32(menuId, optionId)]; - LocaleConstant locale = GetLocaleByName(localeName); + LocaleConstant locale = GetLocaleByName(localeName); if (locale == LOCALE_enUS) continue; - AddLocaleString(optionText, locale, data.OptionText); - AddLocaleString(boxText, locale, data.BoxText); + GossipMenuItemsLocale& data = _gossipMenuItemsLocaleStore[MAKE_PAIR32(menuId, optionId)]; + AddLocaleString(fields[3].GetString(), locale, data.OptionText); + AddLocaleString(fields[4].GetString(), locale, data.BoxText); } while (result->NextRow()); TC_LOG_INFO("server.loading", ">> Loaded %u gossip_menu_option locale strings in %u ms", uint32(_gossipMenuItemsLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime)); @@ -343,12 +337,13 @@ void ObjectMgr::LoadPointOfInterestLocales() uint32 id = fields[0].GetUInt32(); std::string localeName = fields[1].GetString(); - std::string name = fields[2].GetString(); - PointOfInterestLocale& data = _pointOfInterestLocaleStore[id]; LocaleConstant locale = GetLocaleByName(localeName); + if (locale == LOCALE_enUS) + continue; - AddLocaleString(name, locale, data.Name); + PointOfInterestLocale& data = _pointOfInterestLocaleStore[id]; + 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)); @@ -2783,16 +2778,14 @@ void ObjectMgr::LoadItemLocales() uint32 id = fields[0].GetUInt32(); std::string localeName = fields[1].GetString(); - std::string Name = fields[2].GetString(); - std::string Description = fields[3].GetString(); - ItemLocale& data = _itemLocaleStore[id]; - LocaleConstant locale = GetLocaleByName(localeName); + LocaleConstant locale = GetLocaleByName(localeName); if (locale == LOCALE_enUS) continue; - AddLocaleString(Name, locale, data.Name); - AddLocaleString(Description, locale, data.Description); + ItemLocale& data = _itemLocaleStore[id]; + AddLocaleString(fields[2].GetString(), locale, data.Name); + AddLocaleString(fields[3].GetString(), locale, data.Description); } while (result->NextRow()); TC_LOG_INFO("server.loading", ">> Loaded %u Item locale strings in %u ms", uint32(_itemLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime)); @@ -3421,14 +3414,13 @@ void ObjectMgr::LoadItemSetNameLocales() uint32 id = fields[0].GetUInt32(); std::string localeName = fields[1].GetString(); - std::string Name = fields[2].GetString(); - ItemSetNameLocale& data = _itemSetNameLocaleStore[id]; - LocaleConstant locale = GetLocaleByName(localeName); + LocaleConstant locale = GetLocaleByName(localeName); if (locale == LOCALE_enUS) continue; - AddLocaleString(Name, locale, data.Name); + ItemSetNameLocale& data = _itemSetNameLocaleStore[id]; + AddLocaleString(fields[2].GetString(), locale, data.Name); } while (result->NextRow()); TC_LOG_INFO("server.loading", ">> Loaded " UI64FMTD " Item set name locale strings in %u ms", uint64(_itemSetNameLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime)); @@ -5319,12 +5311,11 @@ 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); @@ -5953,12 +5944,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)); @@ -6214,11 +6206,11 @@ void ObjectMgr::LoadNpcTextLocales() uint32 id = fields[0].GetUInt32(); std::string localeName = fields[1].GetString(); - NpcTextLocale& data = _npcTextLocaleStore[id]; - LocaleConstant locale = GetLocaleByName(localeName); + LocaleConstant locale = GetLocaleByName(localeName); if (locale == LOCALE_enUS) continue; + NpcTextLocale& data = _npcTextLocaleStore[id]; for (uint8 i = 0; i < MAX_GOSSIP_TEXT_OPTIONS; ++i) { AddLocaleString(fields[2 + i * 2].GetString(), locale, data.Text_0[i]); @@ -6534,14 +6526,13 @@ void ObjectMgr::LoadQuestGreetingLocales() } 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)); @@ -7417,17 +7408,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()); TC_LOG_INFO("server.loading", ">> Loaded %u gameobject_template_locale strings in %u ms", uint32(_gameObjectLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime)); @@ -9783,8 +9770,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()) @@ -9793,12 +9782,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)); diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 9ac00872e13..f239897ffa2 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1534,7 +1534,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&& 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()) diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp index d587aaf2670..9d7efaa71ac 100644 --- a/src/server/game/Texts/CreatureTextMgr.cpp +++ b/src/server/game/Texts/CreatureTextMgr.cpp @@ -193,14 +193,13 @@ 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)); |