aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Quests/QuestDef.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index a96bfc423f7..06d0bda9443 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -140,7 +140,15 @@ Quest::Quest(Field* questRecord)
void Quest::LoadQuestDetails(Field* fields)
{
for (uint32 i = 0; i < QUEST_EMOTE_COUNT; ++i)
+ {
+ if (!sEmotesStore.LookupEntry(fields[1 + i].GetUInt16()))
+ {
+ TC_LOG_ERROR("sql.sql", "Table `quest_details` has non-existing Emote%i (%u) set for quest %u. Skipped.", 1+i, fields[1+i].GetUInt16(), fields[0].GetUInt32());
+ continue;
+ }
+
DetailsEmote[i] = fields[1 + i].GetUInt16();
+ }
for (uint32 i = 0; i < QUEST_EMOTE_COUNT; ++i)
DetailsEmoteDelay[i] = fields[5 + i].GetUInt32();
@@ -150,6 +158,13 @@ void Quest::LoadQuestRequestItems(Field* fields)
{
EmoteOnComplete = fields[1].GetUInt16();
EmoteOnIncomplete = fields[2].GetUInt16();
+
+ if (!sEmotesStore.LookupEntry(EmoteOnComplete))
+ TC_LOG_ERROR("sql.sql", "Table `quest_request_items` has non-existing EmoteOnComplete (%u) set for quest %u.", EmoteOnComplete, fields[0].GetUInt32());
+
+ if (!sEmotesStore.LookupEntry(EmoteOnIncomplete))
+ TC_LOG_ERROR("sql.sql", "Table `quest_request_items` has non-existing EmoteOnIncomplete (%u) set for quest %u.", EmoteOnIncomplete, fields[0].GetUInt32());
+
EmoteOnCompleteDelay = fields[3].GetUInt32();
EmoteOnIncompleteDelay = fields[4].GetUInt32();
RequestItemsText = fields[5].GetString();
@@ -158,7 +173,15 @@ void Quest::LoadQuestRequestItems(Field* fields)
void Quest::LoadQuestOfferReward(Field* fields)
{
for (uint32 i = 0; i < QUEST_EMOTE_COUNT; ++i)
+ {
+ if (!sEmotesStore.LookupEntry(fields[1 + i].GetUInt16()))
+ {
+ TC_LOG_ERROR("sql.sql", "Table `quest_offer_reward` has non-existing Emote%i (%u) set for quest %u. Skipped.", 1+i, fields[1+i].GetUInt16(), fields[0].GetUInt32());
+ continue;
+ }
+
OfferRewardEmote[i] = fields[1 + i].GetUInt16();
+ }
for (uint32 i = 0; i < QUEST_EMOTE_COUNT; ++i)
OfferRewardEmoteDelay[i] = fields[5 + i].GetUInt32();