aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp2
-rw-r--r--src/server/game/Chat/ChatLink.cpp23
-rw-r--r--src/server/game/Entities/Creature/GossipDef.cpp196
-rw-r--r--src/server/game/Entities/Player/Player.cpp10
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp2
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp6
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp9
7 files changed, 109 insertions, 139 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 79b7728d406..b4d7ad07eb6 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -517,7 +517,7 @@ void PlayerAchievementMgr::CompletedAchievement(AchievementEntry const* achievem
std::string text = reward->Body;
LocaleConstant localeConstant = _owner->GetSession()->GetSessionDbLocaleIndex();
- if (localeConstant >= LOCALE_enUS)
+ if (localeConstant != LOCALE_enUS)
{
if (AchievementRewardLocale const* loc = sAchievementMgr->GetAchievementRewardLocale(achievement))
{
diff --git a/src/server/game/Chat/ChatLink.cpp b/src/server/game/Chat/ChatLink.cpp
index b2f6986cc69..a783327a64b 100644
--- a/src/server/game/Chat/ChatLink.cpp
+++ b/src/server/game/Chat/ChatLink.cpp
@@ -382,24 +382,17 @@ bool ItemChatLink::ValidateName(char* buffer, char const* context)
LocalizedString* suffixStrings = _suffix ? _suffix->Name : (_property ? _property->Name : nullptr);
- bool res = (FormatName(LOCALE_enUS, suffixStrings) == buffer);
- if (!res)
+ for (uint8 locale = LOCALE_enUS; locale < TOTAL_LOCALES; ++locale)
{
- for (uint8 index = LOCALE_koKR; index < TOTAL_LOCALES; ++index)
- {
- if (index == LOCALE_none)
- continue;
+ if (locale == LOCALE_none)
+ continue;
- if (FormatName(index, suffixStrings) == buffer)
- {
- res = true;
- break;
- }
- }
+ if (FormatName(locale, suffixStrings) == buffer)
+ return true;
}
- if (!res)
- TC_LOG_TRACE("chat.system", "ChatHandler::isValidChatMessage('%s'): linked item (id: %u) name wasn't found in any localization", context, _item->GetId());
- return res;
+
+ TC_LOG_TRACE("chat.system", "ChatHandler::isValidChatMessage('%s'): linked item (id: %u) name wasn't found in any localization", context, _item->GetId());
+ return false;
}
// |color|Hquest:quest_id:quest_level|h[name]|h|r
diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp
index 8a3b83f2aa1..170aa2ecbb3 100644
--- a/src/server/game/Entities/Creature/GossipDef.cpp
+++ b/src/server/game/Entities/Creature/GossipDef.cpp
@@ -236,16 +236,15 @@ void PlayerMenu::SendGossipMenu(uint32 titleTextId, ObjectGuid objectGUID)
text.QuestFlags[1] = quest->GetFlagsEx();
text.Repeatable = quest->IsRepeatable();
- std::string title = quest->GetLogTitle();
+ text.QuestTitle = quest->GetLogTitle();
LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex();
- if (localeConstant >= LOCALE_enUS)
+ if (localeConstant != LOCALE_enUS)
if (QuestTemplateLocale const* localeData = sObjectMgr->GetQuestLocale(questID))
- ObjectMgr::GetLocaleString(localeData->LogTitle, localeConstant, title);
+ ObjectMgr::GetLocaleString(localeData->LogTitle, localeConstant, text.QuestTitle);
if (questLevelInTitle)
- AddQuestLevelToTitle(title, quest->GetQuestLevel());
+ AddQuestLevelToTitle(text.QuestTitle, quest->GetQuestLevel());
- text.QuestTitle = title;
++count;
}
}
@@ -273,20 +272,18 @@ void PlayerMenu::SendPointOfInterest(uint32 id) const
return;
}
- std::string name = pointOfInterest->Name;
+ WorldPackets::NPC::GossipPOI packet;
+ packet.Name = pointOfInterest->Name;
LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex();
- if (localeConstant >= LOCALE_enUS)
+ if (localeConstant != LOCALE_enUS)
if (PointOfInterestLocale const* localeData = sObjectMgr->GetPointOfInterestLocale(id))
- ObjectMgr::GetLocaleString(localeData->Name, localeConstant, name);
-
- WorldPackets::NPC::GossipPOI packet;
+ ObjectMgr::GetLocaleString(localeData->Name, localeConstant, packet.Name);
packet.Flags = pointOfInterest->Flags;
packet.Pos = pointOfInterest->Pos;
packet.Icon = pointOfInterest->Icon;
packet.Importance = pointOfInterest->Importance;
- packet.Name = name;
_session->SendPacket(packet.Write());
}
@@ -362,7 +359,7 @@ void PlayerMenu::SendQuestGiverQuestList(ObjectGuid guid)
std::string title = quest->GetLogTitle();
LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex();
- if (localeConstant >= LOCALE_enUS)
+ if (localeConstant != LOCALE_enUS)
if (QuestTemplateLocale const* questTemplateLocale = sObjectMgr->GetQuestLocale(questID))
ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, localeConstant, title);
@@ -391,43 +388,37 @@ void PlayerMenu::SendQuestGiverStatus(uint32 questStatus, ObjectGuid npcGUID) co
void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, ObjectGuid npcGUID, bool activateAccept) const
{
- std::string questLogTitle = quest->GetLogTitle();
- std::string questLogDescription = quest->GetLogDescription();
- std::string questDescription = quest->GetQuestDescription();
- std::string portraitGiverText = quest->GetPortraitGiverText();
- std::string portraitGiverName = quest->GetPortraitGiverName();
- std::string portraitTurnInText = quest->GetPortraitTurnInText();
- std::string portraitTurnInName = quest->GetPortraitTurnInName();
+ WorldPackets::Quest::QuestGiverQuestDetails packet;
+
+ packet.QuestTitle = quest->GetLogTitle();
+ packet.LogDescription = quest->GetLogDescription();
+ packet.DescriptionText = quest->GetQuestDescription();
+ packet.PortraitGiverText = quest->GetPortraitGiverText();
+ packet.PortraitGiverName = quest->GetPortraitGiverName();
+ packet.PortraitTurnInText = quest->GetPortraitTurnInText();
+ packet.PortraitTurnInName = quest->GetPortraitTurnInName();
LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex();
- if (localeConstant >= LOCALE_enUS)
+ if (localeConstant != LOCALE_enUS)
{
if (QuestTemplateLocale const* questTemplateLocale = sObjectMgr->GetQuestLocale(quest->GetQuestId()))
{
- ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, localeConstant, questLogTitle);
- ObjectMgr::GetLocaleString(questTemplateLocale->LogDescription, localeConstant, questLogDescription);
- ObjectMgr::GetLocaleString(questTemplateLocale->QuestDescription, localeConstant, questDescription);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverText, localeConstant, portraitGiverText);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverName, localeConstant, portraitGiverName);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInText, localeConstant, portraitTurnInText);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInName, localeConstant, portraitTurnInName);
+ ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, localeConstant, packet.QuestTitle);
+ ObjectMgr::GetLocaleString(questTemplateLocale->LogDescription, localeConstant, packet.LogDescription);
+ ObjectMgr::GetLocaleString(questTemplateLocale->QuestDescription, localeConstant, packet.DescriptionText);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverText, localeConstant, packet.PortraitGiverText);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverName, localeConstant, packet.PortraitGiverName);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInText, localeConstant, packet.PortraitTurnInText);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInName, localeConstant, packet.PortraitTurnInName);
}
}
if (sWorld->getBoolConfig(CONFIG_UI_QUESTLEVELS_IN_DIALOGS))
- AddQuestLevelToTitle(questLogTitle, quest->GetQuestLevel());
+ AddQuestLevelToTitle(packet.QuestTitle, quest->GetQuestLevel());
- WorldPackets::Quest::QuestGiverQuestDetails packet;
packet.QuestGiverGUID = npcGUID;
packet.InformUnit = _session->GetPlayer()->GetDivider();
packet.QuestID = quest->GetQuestId();
- packet.QuestTitle = questLogTitle;
- packet.LogDescription = questLogDescription;
- packet.DescriptionText = questDescription;
- packet.PortraitGiverText = portraitGiverText;
- packet.PortraitGiverName = portraitGiverName;
- packet.PortraitTurnInText = portraitTurnInText;
- packet.PortraitTurnInName = portraitTurnInName;
packet.PortraitGiver = quest->GetQuestGiverPortrait();
packet.PortraitTurnIn = quest->GetQuestTurnInPortrait();
packet.DisplayPopup = activateAccept;
@@ -464,38 +455,40 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, ObjectGuid npcGU
void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const
{
- LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex();
+ WorldPackets::Quest::QueryQuestInfoResponse packet;
- std::string questLogTitle = quest->GetLogTitle();
- std::string questLogDescription = quest->GetLogDescription();
- std::string questDescription = quest->GetQuestDescription();
- std::string areaDescription = quest->GetAreaDescription();
- std::string questCompletionLog = quest->GetQuestCompletionLog();
- std::string portraitGiverText = quest->GetPortraitGiverText();
- std::string portraitGiverName = quest->GetPortraitGiverName();
- std::string portraitTurnInText = quest->GetPortraitTurnInText();
- std::string portraitTurnInName = quest->GetPortraitTurnInName();
-
- if (localeConstant >= LOCALE_enUS)
+ packet.Allow = true;
+ packet.QuestID = quest->GetQuestId();
+
+ packet.Info.LogTitle = quest->GetLogTitle();
+ packet.Info.LogDescription = quest->GetLogDescription();
+ packet.Info.QuestDescription = quest->GetQuestDescription();
+ packet.Info.AreaDescription = quest->GetAreaDescription();
+ packet.Info.QuestCompletionLog = quest->GetQuestCompletionLog();
+ packet.Info.PortraitGiverText = quest->GetPortraitGiverText();
+ packet.Info.PortraitGiverName = quest->GetPortraitGiverName();
+ packet.Info.PortraitTurnInText = quest->GetPortraitTurnInText();
+ packet.Info.PortraitTurnInName = quest->GetPortraitTurnInName();
+
+ LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex();
+ if (localeConstant != LOCALE_enUS)
{
if (QuestTemplateLocale const* questTemplateLocale = sObjectMgr->GetQuestLocale(quest->GetQuestId()))
{
- ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, localeConstant, questLogTitle);
- ObjectMgr::GetLocaleString(questTemplateLocale->LogDescription, localeConstant, questLogDescription);
- ObjectMgr::GetLocaleString(questTemplateLocale->QuestDescription, localeConstant, questDescription);
- ObjectMgr::GetLocaleString(questTemplateLocale->AreaDescription, localeConstant, areaDescription);
- ObjectMgr::GetLocaleString(questTemplateLocale->QuestCompletionLog, localeConstant, questCompletionLog);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverText, localeConstant, portraitGiverText);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverName, localeConstant, portraitGiverName);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInText, localeConstant, portraitTurnInText);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInName, localeConstant, portraitTurnInName);
+ ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, localeConstant, packet.Info.LogTitle);
+ ObjectMgr::GetLocaleString(questTemplateLocale->LogDescription, localeConstant, packet.Info.LogDescription);
+ ObjectMgr::GetLocaleString(questTemplateLocale->QuestDescription, localeConstant, packet.Info.QuestDescription);
+ ObjectMgr::GetLocaleString(questTemplateLocale->AreaDescription, localeConstant, packet.Info.AreaDescription);
+ ObjectMgr::GetLocaleString(questTemplateLocale->QuestCompletionLog, localeConstant, packet.Info.QuestCompletionLog);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverText, localeConstant, packet.Info.PortraitGiverText);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverName, localeConstant, packet.Info.PortraitGiverName);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInText, localeConstant, packet.Info.PortraitTurnInText);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInName, localeConstant, packet.Info.PortraitTurnInName);
}
}
- WorldPackets::Quest::QueryQuestInfoResponse packet;
-
- packet.Allow = true;
- packet.QuestID = quest->GetQuestId();
+ if (sWorld->getBoolConfig(CONFIG_UI_QUESTLEVELS_IN_DIALOGS))
+ AddQuestLevelToTitle(packet.Info.LogTitle, quest->GetQuestLevel());
packet.Info.QuestID = quest->GetQuestId();
packet.Info.QuestType = quest->GetQuestType();
@@ -571,14 +564,6 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const
packet.Info.POIy = quest->GetPOIy();
packet.Info.POIPriority = quest->GetPOIPriority();
- if (sWorld->getBoolConfig(CONFIG_UI_QUESTLEVELS_IN_DIALOGS))
- AddQuestLevelToTitle(questLogTitle, quest->GetQuestLevel());
-
- packet.Info.LogTitle = questLogTitle;
- packet.Info.LogDescription = questLogDescription;
- packet.Info.QuestDescription = questDescription;
- packet.Info.AreaDescription = areaDescription;
- packet.Info.QuestCompletionLog = questCompletionLog;
packet.Info.AllowableRaces = quest->GetAllowableRaces();
packet.Info.QuestRewardID = quest->GetRewardId();
packet.Info.Expansion = quest->GetExpansion();
@@ -587,7 +572,7 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const
{
packet.Info.Objectives.push_back(questObjective);
- if (localeConstant >= LOCALE_enUS)
+ if (localeConstant != LOCALE_enUS)
{
if (QuestObjectivesLocale const* questObjectivesLocale = sObjectMgr->GetQuestObjectivesLocale(questObjective.ID))
ObjectMgr::GetLocaleString(questObjectivesLocale->Description, localeConstant, packet.Info.Objectives.back().Description);
@@ -600,11 +585,6 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const
packet.Info.RewardCurrencyQty[i] = quest->RewardCurrencyCount[i];
}
- packet.Info.PortraitGiverText = portraitGiverText;
- packet.Info.PortraitGiverName = portraitGiverName;
- packet.Info.PortraitTurnInText = portraitTurnInText;
- packet.Info.PortraitTurnInName = portraitTurnInName;
-
packet.Info.AcceptedSoundKitID = quest->GetSoundAccept();
packet.Info.CompleteSoundKitID = quest->GetSoundTurnIn();
packet.Info.AreaGroupID = quest->GetAreaGroupID();
@@ -617,33 +597,34 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const
void PlayerMenu::SendQuestGiverOfferReward(Quest const* quest, ObjectGuid npcGUID, bool enableNext) const
{
- std::string questTitle = quest->GetLogTitle();
- std::string rewardText = quest->GetOfferRewardText();
- std::string portraitGiverText = quest->GetPortraitGiverText();
- std::string portraitGiverName = quest->GetPortraitGiverName();
- std::string portraitTurnInText = quest->GetPortraitTurnInText();
- std::string portraitTurnInName = quest->GetPortraitTurnInName();
+ WorldPackets::Quest::QuestGiverOfferRewardMessage packet;
+
+ packet.QuestTitle = quest->GetLogTitle();
+ packet.RewardText = quest->GetOfferRewardText();
+ packet.PortraitGiverText = quest->GetPortraitGiverText();
+ packet.PortraitGiverName = quest->GetPortraitGiverName();
+ packet.PortraitTurnInText = quest->GetPortraitTurnInText();
+ packet.PortraitTurnInName = quest->GetPortraitTurnInName();
LocaleConstant locale = _session->GetSessionDbLocaleIndex();
- if (locale >= LOCALE_enUS)
+ if (locale != LOCALE_enUS)
{
if (QuestTemplateLocale const* questTemplateLocale = sObjectMgr->GetQuestLocale(quest->GetQuestId()))
{
- ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, locale, questTitle);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverText, locale, portraitGiverText);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverName, locale, portraitGiverName);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInText, locale, portraitTurnInText);
- ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInName, locale, portraitTurnInName);
+ ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, locale, packet.QuestTitle);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverText, locale, packet.PortraitGiverText);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitGiverName, locale, packet.PortraitGiverName);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInText, locale, packet.PortraitTurnInText);
+ ObjectMgr::GetLocaleString(questTemplateLocale->PortraitTurnInName, locale, packet.PortraitTurnInName);
}
if (QuestOfferRewardLocale const* questOfferRewardLocale = sObjectMgr->GetQuestOfferRewardLocale(quest->GetQuestId()))
- ObjectMgr::GetLocaleString(questOfferRewardLocale->RewardText, locale, rewardText);
+ ObjectMgr::GetLocaleString(questOfferRewardLocale->RewardText, locale, packet.RewardText);
}
if (sWorld->getBoolConfig(CONFIG_UI_QUESTLEVELS_IN_DIALOGS))
- AddQuestLevelToTitle(questTitle, quest->GetQuestLevel());
+ AddQuestLevelToTitle(packet.QuestTitle, quest->GetQuestLevel());
- WorldPackets::Quest::QuestGiverOfferRewardMessage packet;
WorldPackets::Quest::QuestGiverOfferReward& offer = packet.QuestData;
quest->BuildQuestRewards(offer.Rewards, _session->GetPlayer());
@@ -663,14 +644,8 @@ void PlayerMenu::SendQuestGiverOfferReward(Quest const* quest, ObjectGuid npcGUI
offer.QuestFlags[0] = quest->GetFlags();
offer.QuestFlags[1] = quest->GetFlagsEx();
- packet.QuestTitle = questTitle;
- packet.RewardText = rewardText;
packet.PortraitTurnIn = quest->GetQuestTurnInPortrait();
packet.PortraitGiver = quest->GetQuestGiverPortrait();
- packet.PortraitGiverText = portraitGiverText;
- packet.PortraitGiverName = portraitGiverName;
- packet.PortraitTurnInText = portraitTurnInText;
- packet.PortraitTurnInName = portraitTurnInName;
packet.QuestPackageID = quest->GetQuestPackageID();
_session->SendPacket(packet.Write());
@@ -682,29 +657,30 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, ObjectGuid npcGU
// We can always call to RequestItems, but this packet only goes out if there are actually
// items. Otherwise, we'll skip straight to the OfferReward
- std::string questTitle = quest->GetLogTitle();
- std::string completionText = quest->GetRequestItemsText();
+ if (!quest->HasSpecialFlag(QUEST_SPECIAL_FLAGS_DELIVER) && canComplete)
+ {
+ SendQuestGiverOfferReward(quest, npcGUID, true);
+ return;
+ }
+
+ WorldPackets::Quest::QuestGiverRequestItems packet;
+
+ packet.QuestTitle = quest->GetLogTitle();
+ packet.CompletionText = quest->GetRequestItemsText();
LocaleConstant locale = _session->GetSessionDbLocaleIndex();
- if (locale >= LOCALE_enUS)
+ if (locale != LOCALE_enUS)
{
if (QuestTemplateLocale const* questTemplateLocale = sObjectMgr->GetQuestLocale(quest->GetQuestId()))
- ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, locale, questTitle);
+ ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, locale, packet.QuestTitle);
if (QuestRequestItemsLocale const* questRequestItemsLocale = sObjectMgr->GetQuestRequestItemsLocale(quest->GetQuestId()))
- ObjectMgr::GetLocaleString(questRequestItemsLocale->CompletionText, locale, completionText);
- }
-
- if (!quest->HasSpecialFlag(QUEST_SPECIAL_FLAGS_DELIVER) && canComplete)
- {
- SendQuestGiverOfferReward(quest, npcGUID, true);
- return;
+ ObjectMgr::GetLocaleString(questRequestItemsLocale->CompletionText, locale, packet.CompletionText);
}
if (sWorld->getBoolConfig(CONFIG_UI_QUESTLEVELS_IN_DIALOGS))
- AddQuestLevelToTitle(questTitle, quest->GetQuestLevel());
+ AddQuestLevelToTitle(packet.QuestTitle, quest->GetQuestLevel());
- WorldPackets::Quest::QuestGiverRequestItems packet;
packet.QuestGiverGUID = npcGUID;
// Is there a better way? what about game objects?
@@ -749,8 +725,6 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, ObjectGuid npcGU
}
packet.AutoLaunched = closeOnCancel;
- packet.QuestTitle = questTitle;
- packet.CompletionText = completionText;
_session->SendPacket(packet.Write());
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_QUESTGIVER_REQUEST_ITEMS NPC=%s, questid=%u", npcGUID.ToString().c_str(), quest->GetQuestId());
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 85a2153f546..cbbb0d1cdbc 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -16962,18 +16962,18 @@ void Player::SendQuestConfirmAccept(Quest const* quest, Player* receiver) const
if (!receiver)
return;
- std::string questTitle = quest->GetLogTitle();
+ WorldPackets::Quest::QuestConfirmAcceptResponse packet;
+
+ packet.QuestTitle = quest->GetLogTitle();
uint32 questID = quest->GetQuestId();
LocaleConstant localeConstant = receiver->GetSession()->GetSessionDbLocaleIndex();
- if (localeConstant >= LOCALE_enUS)
+ if (localeConstant != LOCALE_enUS)
if (QuestTemplateLocale const* questTemplateLocale = sObjectMgr->GetQuestLocale(questID))
- ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, localeConstant, questTitle);
+ ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, localeConstant, packet.QuestTitle);
- WorldPackets::Quest::QuestConfirmAcceptResponse packet;
packet.QuestID = questID;
packet.InitiatedBy = GetGUID();
- packet.QuestTitle = questTitle;
receiver->GetSession()->SendPacket(packet.Write());
}
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 81624ba04f4..8d8673d3290 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -5494,7 +5494,7 @@ void ObjectMgr::LoadPageTextLocales()
if (locale == LOCALE_enUS)
continue;
- data.Text[locale] = text;
+ AddLocaleString(text, locale, data.Text);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u PageText locale strings in %u ms", uint32(_pageTextLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index 2ab360d76e7..d263127c1d4 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -117,7 +117,7 @@ void WorldSession::HandleCreatureQuery(WorldPackets::Query::QueryCreature& packe
stats.QuestItems.push_back(item);
LocaleConstant localeConstant = GetSessionDbLocaleIndex();
- if (localeConstant >= LOCALE_enUS)
+ if (localeConstant != LOCALE_enUS)
if (CreatureLocale const* creatureLocale = sObjectMgr->GetCreatureLocale(packet.CreatureID))
{
ObjectMgr::GetLocaleString(creatureLocale->Name, localeConstant, stats.Name[0]);
@@ -150,7 +150,7 @@ void WorldSession::HandleGameObjectQueryOpcode(WorldPackets::Query::QueryGameObj
stats.UnkString = gameObjectInfo->unk1;
LocaleConstant localeConstant = GetSessionDbLocaleIndex();
- if (localeConstant >= LOCALE_enUS)
+ if (localeConstant != LOCALE_enUS)
if (GameObjectLocale const* gameObjectLocale = sObjectMgr->GetGameObjectLocale(packet.GameObjectID))
{
ObjectMgr::GetLocaleString(gameObjectLocale->Name, localeConstant, stats.Name[0]);
@@ -267,7 +267,7 @@ void WorldSession::HandleQueryPageText(WorldPackets::Query::QueryPageText& packe
page.Flags = pageText->Flags;
LocaleConstant locale = GetSessionDbLocaleIndex();
- if (locale >= LOCALE_enUS)
+ if (locale != LOCALE_enUS)
if (PageTextLocale const* pageTextLocale = sObjectMgr->GetPageTextLocale(pageID))
ObjectMgr::GetLocaleString(pageTextLocale->Text, locale, page.Text);
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 01edd416f7f..6e63c64782d 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -241,13 +241,16 @@ void WorldSession::HandleQuestgiverQueryQuestOpcode(WorldPackets::Quest::QuestGi
void WorldSession::HandleQuestQueryOpcode(WorldPackets::Quest::QueryQuestInfo& packet)
{
- if (!_player)
- return;
-
TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUEST_QUERY quest = %u", packet.QuestID);
if (Quest const* quest = sObjectMgr->GetQuestTemplate(packet.QuestID))
_player->PlayerTalkClass->SendQuestQueryResponse(quest);
+ else
+ {
+ WorldPackets::Quest::QueryQuestInfoResponse response;
+ response.QuestID = packet.QuestID;
+ SendPacket(response.Write());
+ }
}
void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPackets::Quest::QuestGiverChooseReward& packet)