rendered paste bodyvoid ObjectMgr::LoadQuestLocales()
{
QueryResult *result = WorldDatabase.Query("SELECT entry,"
"Title_loc1,Details_loc1,Objectives_loc1,OfferRewardText_loc1,RequestItemsText_loc1,EndText_loc1,ObjectiveText1_loc1,ObjectiveText2_loc1,ObjectiveText3_loc1,ObjectiveText4_loc1,"
"Title_loc2,Details_loc2,Objectives_loc2,OfferRewardText_loc2,RequestItemsText_loc2,EndText_loc2,ObjectiveText1_loc2,ObjectiveText2_loc2,ObjectiveText3_loc2,ObjectiveText4_loc2,"
"Title_loc3,Details_loc3,Objectives_loc3,OfferRewardText_loc3,RequestItemsText_loc3,EndText_loc3,ObjectiveText1_loc3,ObjectiveText2_loc3,ObjectiveText3_loc3,ObjectiveText4_loc3,"
"Title_loc4,Details_loc4,Objectives_loc4,OfferRewardText_loc4,RequestItemsText_loc4,EndText_loc4,ObjectiveText1_loc4,ObjectiveText2_loc4,ObjectiveText3_loc4,ObjectiveText4_loc4,"
"Title_loc5,Details_loc5,Objectives_loc5,OfferRewardText_loc5,RequestItemsText_loc5,EndText_loc5,ObjectiveText1_loc5,ObjectiveText2_loc5,ObjectiveText3_loc5,ObjectiveText4_loc5,"
"Title_loc6,Details_loc6,Objectives_loc6,OfferRewardText_loc6,RequestItemsText_loc6,EndText_loc6,ObjectiveText1_loc6,ObjectiveText2_loc6,ObjectiveText3_loc6,ObjectiveText4_loc6,"
"Title_loc7,Details_loc7,Objectives_loc7,OfferRewardText_loc7,RequestItemsText_loc7,EndText_loc7,ObjectiveText1_loc7,ObjectiveText2_loc7,ObjectiveText3_loc7,ObjectiveText4_loc7"
" FROM locales_quest"
);
if(!result)
{
barGoLink bar(1);
bar.step();
sLog.outString("");
sLog.outString(">> Loaded 0 Quest locale strings. DB table `locales_quest` is empty.");
return;
}
barGoLink bar(result->GetRowCount());
do
{
Field *fields = result->Fetch();
bar.step();
uint32 entry = fields[0].GetUInt32();
QuestLocale& data = mQuestLocaleMap[entry];
for(int i = 1; i < 8; ++i)
{
std::string str0 = fields[1+10*(i-1)].GetCppString();
if(!str0.empty())
{
int idx = GetOrNewIndexForLocale(LocaleConstant(i));
if(idx >= 0)
{
if(data.Title.size() <= idx)
data.Title.resize(idx+1);
data.Title[idx] = str0;
if (entry==90)
printf("Put string: '%s' at idx %d for %d\nsize is now %d\n",data.Title[idx].c_str(),idx,i,data.Title.size());
}
}
...
Produces this:
>> Loaded 22857 Item locale strings
[Put string: 'Kébab de loup assaisonné' at idx 0 for 2
size is now 1
[**************************************************] 100%
void PlayerMenu::SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID, bool ActivateAccept )
{
WorldPacket data(SMSG_QUESTGIVER_QUEST_DETAILS, 100); // guess size
std::string Title = pQuest->GetTitle();
std::string Details = pQuest->GetDetails();
std::string Objectives = pQuest->GetObjectives();
std::string EndText = pQuest->GetEndText();
int loc_idx = pSession->GetSessionLocaleIndex();
if (loc_idx >= 0)
{
printf("Got loc_idx %d\n", loc_idx);
QuestLocale const *ql = objmgr.GetQuestLocale(pQuest->GetQuestId());
if (ql)
{
printf("Got a localized data for quest %u\n",pQuest->GetQuestId());
printf("Vector size is %d\n",ql->Title.size());
if (ql->Title.size() > loc_idx && !ql->Title[loc_idx].empty())
Title=ql->Title[loc_idx];
if (ql->Details.size() > loc_idx && !ql->Details[loc_idx].empty())
Details=ql->Details[loc_idx];
if (ql->Objectives.size() > loc_idx && !ql->Objectives[loc_idx].empty())
Objectives=ql->Objectives[loc_idx];
}
}
...
}
This produces this:
Mangos>Got loc_idx 0
Got localized data for quest 90
Vector size is 0