aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp34
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp10
-rw-r--r--src/server/game/Chat/Commands/Level3.cpp12
-rw-r--r--src/server/game/Entities/Creature/GossipDef.cpp120
-rw-r--r--src/server/game/Entities/Object/Object.cpp2
-rw-r--r--src/server/game/Entities/Player/Player.cpp35
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.h10
-rw-r--r--src/server/game/Server/Protocol/Handlers/ItemHandler.cpp17
-rw-r--r--src/server/game/Server/Protocol/Handlers/QueryHandler.cpp37
-rw-r--r--src/server/game/Server/WorldSession.cpp2
11 files changed, 86 insertions, 195 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index d840283040e..d91ae2eec0c 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -1946,10 +1946,8 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
{
if (AchievementRewardLocale const* loc = sAchievementMgr.GetAchievementRewardLocale(achievement))
{
- if (loc->subject.size() > size_t(loc_idx) && !loc->subject[loc_idx].empty())
- subject = loc->subject[loc_idx];
- if (loc->text.size() > size_t(loc_idx) && !loc->text[loc_idx].empty())
- text = loc->text[loc_idx];
+ sObjectMgr.GetLocaleString(loc->subject, loc_idx, subject);
+ sObjectMgr.GetLocaleString(loc->text, loc_idx, text);
}
}
@@ -2420,30 +2418,12 @@ void AchievementGlobalMgr::LoadRewardLocales()
for (int i = 1; i < MAX_LOCALE; ++i)
{
- std::string str = fields[1+2*(i-1)].GetCppString();
- if (!str.empty())
- {
- int idx = sObjectMgr.GetOrNewIndexForLocale(LocaleConstant(i));
- if (idx >= 0)
- {
- if (data.subject.size() <= size_t(idx))
- data.subject.resize(idx+1);
+ LocaleConstant locale = (LocaleConstant) i;
+ std::string str = fields[1 + 2 * (i - 1)].GetCppString();
+ sObjectMgr.AddLocaleString(str, locale, data.subject);
- data.subject[idx] = str;
- }
- }
- str = fields[1+2*(i-1)+1].GetCppString();
- if (!str.empty())
- {
- int idx = sObjectMgr.GetOrNewIndexForLocale(LocaleConstant(i));
- if (idx >= 0)
- {
- if (data.text.size() <= size_t(idx))
- data.text.resize(idx+1);
-
- data.text[idx] = str;
- }
- }
+ str = fields[1 + 2 * (i - 1) + 1].GetCppString();
+ sObjectMgr.AddLocaleString(str, locale, data.text);
}
} while (result->NextRow());
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
index 6cbe44a5703..6e7a5ea1199 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
@@ -674,14 +674,8 @@ void AuctionHouseObject::BuildListAuctionItems(WorldPacket& data, Player* player
// local name
if (loc_idx >= 0)
- {
- ItemLocale const *il = sObjectMgr.GetItemLocale(proto->ItemId);
- if (il)
- {
- if (il->Name.size() > size_t(loc_idx) && !il->Name[loc_idx].empty())
- name = il->Name[loc_idx];
- }
- }
+ if (ItemLocale const *il = sObjectMgr.GetItemLocale(proto->ItemId))
+ sObjectMgr.GetLocaleString(il->Name, loc_idx, name);
// DO NOT use GetItemEnchantMod(proto->RandomProperty) as it may return a result
// that matches the search but it may not equal item->GetItemRandomPropertyId()
diff --git a/src/server/game/Chat/Commands/Level3.cpp b/src/server/game/Chat/Commands/Level3.cpp
index c1e46896d77..d1663d41930 100644
--- a/src/server/game/Chat/Commands/Level3.cpp
+++ b/src/server/game/Chat/Commands/Level3.cpp
@@ -2948,8 +2948,7 @@ bool ChatHandler::HandleLookupItemCommand(const char *args)
if (loc_idx >= 0)
{
uint8 uloc_idx = uint8(loc_idx);
- ItemLocale const *il = sObjectMgr.GetItemLocale(pProto->ItemId);
- if (il)
+ if (ItemLocale const *il = sObjectMgr.GetItemLocale(pProto->ItemId))
{
if (il->Name.size() > uloc_idx && !il->Name[uloc_idx].empty())
{
@@ -3263,8 +3262,7 @@ bool ChatHandler::HandleLookupQuestCommand(const char *args)
if (loc_idx >= 0)
{
uint8 uloc_idx = uint8(loc_idx);
- QuestLocale const *il = sObjectMgr.GetQuestLocale(qinfo->GetQuestId());
- if (il)
+ if (QuestLocale const *il = sObjectMgr.GetQuestLocale(qinfo->GetQuestId()))
{
if (il->Title.size() > uloc_idx && !il->Title[uloc_idx].empty())
{
@@ -3368,8 +3366,7 @@ bool ChatHandler::HandleLookupCreatureCommand(const char *args)
if (loc_idx >= 0)
{
uint8 uloc_idx = uint8(loc_idx);
- CreatureLocale const *cl = sObjectMgr.GetCreatureLocale (id);
- if (cl)
+ if (CreatureLocale const *cl = sObjectMgr.GetCreatureLocale (id))
{
if (cl->Name.size() > uloc_idx && !cl->Name[uloc_idx].empty ())
{
@@ -3439,8 +3436,7 @@ bool ChatHandler::HandleLookupObjectCommand(const char *args)
if (loc_idx >= 0)
{
uint8 uloc_idx = uint8(loc_idx);
- GameObjectLocale const *gl = sObjectMgr.GetGameObjectLocale(id);
- if (gl)
+ if (GameObjectLocale const *gl = sObjectMgr.GetGameObjectLocale(id))
{
if (gl->Name.size() > uloc_idx && !gl->Name[uloc_idx].empty())
{
diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp
index b6953e85931..ff93089fcb2 100644
--- a/src/server/game/Entities/Creature/GossipDef.cpp
+++ b/src/server/game/Entities/Creature/GossipDef.cpp
@@ -171,14 +171,11 @@ void PlayerMenu::SendGossipMenu(uint32 TitleTextId, uint64 objectGUID)
data << uint8(0); // 3.3.3 changes icon: blue question or yellow exclamation
std::string Title = pQuest->GetTitle();
- int8 loc_idx = pSession->GetSessionDbLocaleIndex();
+ int loc_idx = pSession->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
- {
- uint8 uloc_idx = uint8(loc_idx);
if (QuestLocale const *ql = sObjectMgr.GetQuestLocale(questID))
- if (ql->Title.size() > uloc_idx && !ql->Title[uloc_idx].empty())
- Title = ql->Title[uloc_idx];
- }
+ sObjectMgr.GetLocaleString(ql->Title, loc_idx, Title);
+
data << Title; // max 0x200
}
@@ -217,17 +214,10 @@ void PlayerMenu::SendPointOfInterest(uint32 poi_id)
std::string icon_name = poi->icon_name;
- int8 loc_idx = pSession->GetSessionDbLocaleIndex();
+ int loc_idx = pSession->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
- {
- uint8 uloc_idx = uint8(loc_idx);
- PointOfInterestLocale const *pl = sObjectMgr.GetPointOfInterestLocale(poi_id);
- if (pl)
- {
- if (pl->IconName.size() > uloc_idx && !pl->IconName[uloc_idx].empty())
- icon_name = pl->IconName[uloc_idx];
- }
- }
+ if (PointOfInterestLocale const *pl = sObjectMgr.GetPointOfInterestLocale(poi_id))
+ sObjectMgr.GetLocaleString(pl->IconName, loc_idx, icon_name);
WorldPacket data(SMSG_GOSSIP_POI, (4+4+4+4+4+10)); // guess size
data << uint32(poi->flags);
@@ -266,29 +256,25 @@ void PlayerMenu::SendTalking(uint32 textID)
}
else
{
- std::string Text_0[8],Text_1[8];
- for (int i=0; i<8; ++i)
+ std::string Text_0[8], Text_1[8];
+ for (int i = 0; i < 8; ++i)
{
- Text_0[i]=pGossip->Options[i].Text_0;
- Text_1[i]=pGossip->Options[i].Text_1;
+ Text_0[i] = pGossip->Options[i].Text_0;
+ Text_1[i] = pGossip->Options[i].Text_1;
}
- int8 loc_idx = pSession->GetSessionDbLocaleIndex();
+ int loc_idx = pSession->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
- uint8 uloc_idx = uint8(loc_idx);
- NpcTextLocale const *nl = sObjectMgr.GetNpcTextLocale(textID);
- if (nl)
+ if (NpcTextLocale const *nl = sObjectMgr.GetNpcTextLocale(textID))
{
- for (int i=0; i<8; ++i)
+ for (int i = 0; i < 8; ++i)
{
- if (nl->Text_0[i].size() > uloc_idx && !nl->Text_0[i][uloc_idx].empty())
- Text_0[i]=nl->Text_0[i][uloc_idx];
- if (nl->Text_1[i].size() > uloc_idx && !nl->Text_1[i][uloc_idx].empty())
- Text_1[i]=nl->Text_1[i][uloc_idx];
+ sObjectMgr.GetLocaleString(nl->Text_0[i], loc_idx, Text_0[i]);
+ sObjectMgr.GetLocaleString(nl->Text_1[i], loc_idx, Text_1[i]);
}
}
}
- for (int i=0; i<8; ++i)
+ for (int i = 0; i < 8; ++i)
{
data << pGossip->Options[i].Probability;
@@ -406,16 +392,10 @@ void PlayerMenu::SendQuestGiverQuestList(QEmote eEmote, const std::string& Title
{
std::string title = pQuest->GetTitle();
- int8 loc_idx = pSession->GetSessionDbLocaleIndex();
+ int loc_idx = pSession->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
- {
- uint8 uloc_idx = uint8(loc_idx);
if (QuestLocale const *ql = sObjectMgr.GetQuestLocale(questID))
- {
- if (ql->Title.size() > uloc_idx && !ql->Title[uloc_idx].empty())
- title = ql->Title[uloc_idx];
- }
- }
+ sObjectMgr.GetLocaleString(ql->Title, loc_idx, title);
data << uint32(questID);
data << uint32(qmi.m_qIcon);
@@ -448,21 +428,15 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const *pQuest, uint64 npcGUID,
std::string Objectives = pQuest->GetObjectives();
std::string EndText = pQuest->GetEndText();
- int8 loc_idx = pSession->GetSessionDbLocaleIndex();
+ int loc_idx = pSession->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
- uint8 uloc_idx = uint8(loc_idx);
- QuestLocale const *ql = sObjectMgr.GetQuestLocale(pQuest->GetQuestId());
- if (ql)
+ if (QuestLocale const *ql = sObjectMgr.GetQuestLocale(pQuest->GetQuestId()))
{
- if (ql->Title.size() > uloc_idx && !ql->Title[uloc_idx].empty())
- Title=ql->Title[uloc_idx];
- if (ql->Details.size() > uloc_idx && !ql->Details[uloc_idx].empty())
- Details=ql->Details[uloc_idx];
- if (ql->Objectives.size() > uloc_idx && !ql->Objectives[uloc_idx].empty())
- Objectives=ql->Objectives[uloc_idx];
- if (ql->EndText.size() > uloc_idx && !ql->EndText[uloc_idx].empty())
- EndText=ql->EndText[uloc_idx];
+ sObjectMgr.GetLocaleString(ql->Title, loc_idx, Title);
+ sObjectMgr.GetLocaleString(ql->Details, loc_idx, Details);
+ sObjectMgr.GetLocaleString(ql->Objectives, loc_idx, Objectives);
+ sObjectMgr.GetLocaleString(ql->EndText, loc_idx, EndText);
}
}
@@ -573,24 +547,16 @@ void PlayerMenu::SendQuestQueryResponse(Quest const *pQuest)
int loc_idx = pSession->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
- uint8 uloc_idx = uint8(loc_idx);
- QuestLocale const *ql = sObjectMgr.GetQuestLocale(pQuest->GetQuestId());
- if (ql)
+ if (QuestLocale const *ql = sObjectMgr.GetQuestLocale(pQuest->GetQuestId()))
{
- if (ql->Title.size() > uloc_idx && !ql->Title[uloc_idx].empty())
- Title=ql->Title[uloc_idx];
- if (ql->Details.size() > uloc_idx && !ql->Details[uloc_idx].empty())
- Details=ql->Details[uloc_idx];
- if (ql->Objectives.size() > uloc_idx && !ql->Objectives[uloc_idx].empty())
- Objectives=ql->Objectives[uloc_idx];
- if (ql->EndText.size() > uloc_idx && !ql->EndText[uloc_idx].empty())
- EndText=ql->EndText[uloc_idx];
- if (ql->CompletedText.size() > uloc_idx && !ql->CompletedText[uloc_idx].empty())
- CompletedText=ql->CompletedText[uloc_idx];
-
- for (int i=0; i<QUEST_OBJECTIVES_COUNT; ++i)
- if (ql->ObjectiveText[i].size() > uloc_idx && !ql->ObjectiveText[i][uloc_idx].empty())
- ObjectiveText[i]=ql->ObjectiveText[i][uloc_idx];
+ sObjectMgr.GetLocaleString(ql->Title, loc_idx, Title);
+ sObjectMgr.GetLocaleString(ql->Details, loc_idx, Details);
+ sObjectMgr.GetLocaleString(ql->Objectives, loc_idx, Objectives);
+ sObjectMgr.GetLocaleString(ql->EndText, loc_idx, EndText);
+ sObjectMgr.GetLocaleString(ql->CompletedText, loc_idx, CompletedText);
+
+ for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
+ sObjectMgr.GetLocaleString(ql->ObjectiveText[i], loc_idx, ObjectiveText[i]);
}
}
@@ -714,14 +680,10 @@ void PlayerMenu::SendQuestGiverOfferReward(Quest const* pQuest, uint64 npcGUID,
int loc_idx = pSession->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
- uint8 uloc_idx = uint8(loc_idx);
- QuestLocale const *ql = sObjectMgr.GetQuestLocale(pQuest->GetQuestId());
- if (ql)
+ if (QuestLocale const *ql = sObjectMgr.GetQuestLocale(pQuest->GetQuestId()))
{
- if (ql->Title.size() > uloc_idx && !ql->Title[uloc_idx].empty())
- Title=ql->Title[uloc_idx];
- if (ql->OfferRewardText.size() > uloc_idx && !ql->OfferRewardText[uloc_idx].empty())
- OfferRewardText=ql->OfferRewardText[uloc_idx];
+ sObjectMgr.GetLocaleString(ql->Title, loc_idx, Title);
+ sObjectMgr.GetLocaleString(ql->OfferRewardText, loc_idx, OfferRewardText);
}
}
@@ -818,14 +780,10 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const *pQuest, uint64 npcGUID,
int loc_idx = pSession->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
- uint8 uloc_idx = uint8(loc_idx);
- QuestLocale const *ql = sObjectMgr.GetQuestLocale(pQuest->GetQuestId());
- if (ql)
+ if (QuestLocale const *ql = sObjectMgr.GetQuestLocale(pQuest->GetQuestId()))
{
- if (ql->Title.size() > uloc_idx && !ql->Title[uloc_idx].empty())
- Title=ql->Title[uloc_idx];
- if (ql->RequestItemsText.size() > uloc_idx && !ql->RequestItemsText[uloc_idx].empty())
- RequestItemsText=ql->RequestItemsText[uloc_idx];
+ sObjectMgr.GetLocaleString(ql->Title, loc_idx, Title);
+ sObjectMgr.GetLocaleString(ql->RequestItemsText, loc_idx, RequestItemsText);
}
}
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 7893cf99891..8321e6b6781 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1716,7 +1716,7 @@ void WorldObject::MonsterWhisper(int32 textId, uint64 receiver, bool IsBossWhisp
return;
uint32 loc_idx = player->GetSession()->GetSessionDbLocaleIndex();
- char const* text = sObjectMgr.GetTrinityString(textId,loc_idx);
+ char const* text = sObjectMgr.GetTrinityString(textId, loc_idx);
WorldPacket data(SMSG_MESSAGECHAT, 200);
BuildMonsterChat(&data,IsBossWhisper ? CHAT_MSG_RAID_BOSS_WHISPER : CHAT_MSG_MONSTER_WHISPER,text,LANG_UNIVERSAL,GetNameForLocaleIdx(loc_idx),receiver);
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 052fb1571a0..92af6785da2 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -13543,18 +13543,13 @@ void Player::PrepareGossipMenu(WorldObject *pSource, uint32 menuId, bool showQue
std::string strBoxText = itr->second.box_text;
int loc_idx = GetSession()->GetSessionDbLocaleIndex();
-
if (loc_idx >= 0)
{
uint32 idxEntry = MAKE_PAIR32(menuId, itr->second.id);
-
if (GossipMenuItemsLocale const *no = sObjectMgr.GetGossipMenuItemsLocale(idxEntry))
{
- if (no->OptionText.size() > (size_t)loc_idx && !no->OptionText[loc_idx].empty())
- strOptionText = no->OptionText[loc_idx];
-
- if (no->BoxText.size() > (size_t)loc_idx && !no->BoxText[loc_idx].empty())
- strBoxText = no->BoxText[loc_idx];
+ sObjectMgr.GetLocaleString(no->OptionText, loc_idx, strOptionText);
+ sObjectMgr.GetLocaleString(no->BoxText, loc_idx, strBoxText);
}
}
@@ -13921,15 +13916,8 @@ void Player::SendPreparedQuest(uint64 guid)
int loc_idx = GetSession()->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
- {
- uint8 uloc_idx = uint8(loc_idx);
- NpcTextLocale const *nl = sObjectMgr.GetNpcTextLocale(textid);
- if (nl)
- {
- if (nl->Text_0[0].size() > uloc_idx && !nl->Text_0[0][uloc_idx].empty())
- title = nl->Text_0[0][uloc_idx];
- }
- }
+ if (NpcTextLocale const *nl = sObjectMgr.GetNpcTextLocale(textid))
+ sObjectMgr.GetLocaleString(nl->Text_0[0], loc_idx, title);
}
else
{
@@ -13937,15 +13925,8 @@ void Player::SendPreparedQuest(uint64 guid)
int loc_idx = GetSession()->GetSessionDbLocaleIndex();
if (loc_idx >= 0)
- {
- uint8 uloc_idx = uint8(loc_idx);
- NpcTextLocale const *nl = sObjectMgr.GetNpcTextLocale(textid);
- if (nl)
- {
- if (nl->Text_1[0].size() > uloc_idx && !nl->Text_1[0][uloc_idx].empty())
- title = nl->Text_1[0][uloc_idx];
- }
- }
+ if (NpcTextLocale const *nl = sObjectMgr.GetNpcTextLocale(textid))
+ sObjectMgr.GetLocaleString(nl->Text_1[0], loc_idx, title);
}
}
}
@@ -15612,11 +15593,9 @@ void Player::SendQuestConfirmAccept(const Quest* pQuest, Player* pReceiver)
std::string strTitle = pQuest->GetTitle();
int loc_idx = pReceiver->GetSession()->GetSessionDbLocaleIndex();
-
if (loc_idx >= 0)
if (const QuestLocale* pLocale = sObjectMgr.GetQuestLocale(pQuest->GetQuestId()))
- if (int(pLocale->Title.size()) > loc_idx && !pLocale->Title[loc_idx].empty())
- strTitle = pLocale->Title[loc_idx];
+ sObjectMgr.GetLocaleString(pLocale->Title, loc_idx, strTitle);
WorldPacket data(SMSG_QUEST_CONFIRM_ACCEPT, (4 + strTitle.size() + 8));
data << uint32(pQuest->GetQuestId());
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index d01e65f12dc..3929c980a53 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -416,7 +416,7 @@ void ObjectMgr::AddLocaleString(std::string& s, LocaleConstant locale, StringVec
int idx = GetOrNewIndexForLocale(locale);
if (idx >= 0)
{
- if (int(data.size()) <= idx)
+ if (data.size() <= size_t(idx))
data.resize(idx + 1);
data[idx] = s;
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 9d199edff59..fab85d8678f 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -995,6 +995,14 @@ class ObjectMgr
// for wintergrasp only
GraveYardMap mGraveYardMap;
+
+ void AddLocaleString(std::string& s, LocaleConstant locale, StringVector& data);
+ inline void GetLocaleString(const StringVector& data, int loc_idx, std::string& value) const
+ {
+ if (data.size() > size_t(loc_idx) && !data[loc_idx].empty())
+ value = data[loc_idx];
+ }
+
protected:
// first free id for selected id type
@@ -1071,8 +1079,6 @@ class ObjectMgr
int DBCLocaleIndex;
- void AddLocaleString(std::string& s, LocaleConstant locale, StringVector& data);
-
private:
void LoadScripts(ScriptsType type);
void CheckScripts(ScriptsType type, std::set<int32>& ids);
diff --git a/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp b/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp
index 29ecc98b482..67df969338c 100644
--- a/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp
@@ -296,13 +296,10 @@ void WorldSession::HandleItemQuerySingleOpcode(WorldPacket & recv_data)
int loc_idx = GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
- ItemLocale const *il = sObjectMgr.GetItemLocale(pProto->ItemId);
- if (il)
+ if (ItemLocale const *il = sObjectMgr.GetItemLocale(pProto->ItemId))
{
- if (il->Name.size() > size_t(loc_idx) && !il->Name[loc_idx].empty())
- Name = il->Name[loc_idx];
- if (il->Description.size() > size_t(loc_idx) && !il->Description[loc_idx].empty())
- Description = il->Description[loc_idx];
+ sObjectMgr.GetLocaleString(il->Name, loc_idx, Name);
+ sObjectMgr.GetLocaleString(il->Description, loc_idx, Description);
}
}
// guess size
@@ -1026,12 +1023,8 @@ void WorldSession::HandleItemNameQueryOpcode(WorldPacket & recv_data)
std::string Name = pName->name;
int loc_idx = GetSessionDbLocaleIndex();
if (loc_idx >= 0)
- {
- ItemSetNameLocale const *isnl = sObjectMgr.GetItemSetNameLocale(itemid);
- if (isnl)
- if (isnl->Name.size() > size_t(loc_idx) && !isnl->Name[loc_idx].empty())
- Name = isnl->Name[loc_idx];
- }
+ if (ItemSetNameLocale const *isnl = sObjectMgr.GetItemSetNameLocale(itemid))
+ sObjectMgr.GetLocaleString(isnl->Name, loc_idx, Name);
WorldPacket data(SMSG_ITEM_NAME_QUERY_RESPONSE, (4+Name.size()+1+4));
data << uint32(itemid);
diff --git a/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp b/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp
index a0e50487de4..0cea61ebf50 100644
--- a/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp
@@ -168,13 +168,10 @@ void WorldSession::HandleCreatureQueryOpcode(WorldPacket & recv_data)
int loc_idx = GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
- CreatureLocale const *cl = sObjectMgr.GetCreatureLocale(entry);
- if (cl)
+ if (CreatureLocale const *cl = sObjectMgr.GetCreatureLocale(entry))
{
- if (cl->Name.size() > size_t(loc_idx) && !cl->Name[loc_idx].empty())
- Name = cl->Name[loc_idx];
- if (cl->SubName.size() > size_t(loc_idx) && !cl->SubName[loc_idx].empty())
- SubName = cl->SubName[loc_idx];
+ sObjectMgr.GetLocaleString(cl->Name, loc_idx, Name);
+ sObjectMgr.GetLocaleString(cl->SubName, loc_idx, SubName);
}
}
sLog.outDetail("WORLD: CMSG_CREATURE_QUERY '%s' - Entry: %u.", ci->Name, entry);
@@ -237,13 +234,10 @@ void WorldSession::HandleGameObjectQueryOpcode(WorldPacket & recv_data)
int loc_idx = GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
- GameObjectLocale const *gl = sObjectMgr.GetGameObjectLocale(entryID);
- if (gl)
+ if (GameObjectLocale const *gl = sObjectMgr.GetGameObjectLocale(entryID))
{
- if (gl->Name.size() > size_t(loc_idx) && !gl->Name[loc_idx].empty())
- Name = gl->Name[loc_idx];
- if (gl->CastBarCaption.size() > size_t(loc_idx) && !gl->CastBarCaption[loc_idx].empty())
- CastBarCaption = gl->CastBarCaption[loc_idx];
+ sObjectMgr.GetLocaleString(gl->Name, loc_idx, Name);
+ sObjectMgr.GetLocaleString(gl->CastBarCaption, loc_idx, CastBarCaption);
}
}
sLog.outDetail("WORLD: CMSG_GAMEOBJECT_QUERY '%s' - Entry: %u. ", info->name, entryID);
@@ -369,15 +363,12 @@ void WorldSession::HandleNpcTextQueryOpcode(WorldPacket & recv_data)
int loc_idx = GetSessionDbLocaleIndex();
if (loc_idx >= 0)
{
- NpcTextLocale const *nl = sObjectMgr.GetNpcTextLocale(textID);
- if (nl)
+ if (NpcTextLocale const *nl = sObjectMgr.GetNpcTextLocale(textID))
{
for (int i = 0; i < 8; ++i)
{
- if (nl->Text_0[i].size() > size_t(loc_idx) && !nl->Text_0[i][loc_idx].empty())
- Text_0[i]=nl->Text_0[i][loc_idx];
- if (nl->Text_1[i].size() > size_t(loc_idx) && !nl->Text_1[i][loc_idx].empty())
- Text_1[i]=nl->Text_1[i][loc_idx];
+ sObjectMgr.GetLocaleString(nl->Text_0[i], loc_idx, Text_0[i]);
+ sObjectMgr.GetLocaleString(nl->Text_1[i], loc_idx, Text_1[i]);
}
}
}
@@ -439,14 +430,8 @@ void WorldSession::HandlePageTextQueryOpcode(WorldPacket & recv_data)
int loc_idx = GetSessionDbLocaleIndex();
if (loc_idx >= 0)
- {
- PageTextLocale const *pl = sObjectMgr.GetPageTextLocale(pageID);
- if (pl)
- {
- if (pl->Text.size() > size_t(loc_idx) && !pl->Text[loc_idx].empty())
- Text = pl->Text[loc_idx];
- }
- }
+ if (PageTextLocale const *pl = sObjectMgr.GetPageTextLocale(pageID))
+ sObjectMgr.GetLocaleString(pl->Text, loc_idx, Text);
data << Text;
data << uint32(pPage->Next_Page);
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index f68cf739947..936137c2e88 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -531,7 +531,7 @@ void WorldSession::SendNotification(int32 string_id,...)
const char * WorldSession::GetTrinityString(int32 entry) const
{
- return sObjectMgr.GetTrinityString(entry,GetSessionDbLocaleIndex());
+ return sObjectMgr.GetTrinityString(entry, GetSessionDbLocaleIndex());
}
void WorldSession::Handle_NULL(WorldPacket& recvPacket)