aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index cc67c63d591..6190d238f96 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -5768,28 +5768,36 @@ void ObjectMgr::LoadGossipText()
for (uint8 i = 0; i < MAX_GOSSIP_TEXT_OPTIONS; ++i)
{
- gText.Options[i].Text_0 = fields[cic++].GetString();
- gText.Options[i].Text_1 = fields[cic++].GetString();
- gText.Options[i].BroadcastTextID = fields[cic++].GetUInt32();
- gText.Options[i].Language = fields[cic++].GetUInt8();
- gText.Options[i].Probability = fields[cic++].GetFloat();
+ GossipTextOption& gOption = gText.Options[i];
+ gOption.Text_0 = fields[cic++].GetString();
+ gOption.Text_1 = fields[cic++].GetString();
+ gOption.BroadcastTextID = fields[cic++].GetUInt32();
+ gOption.Language = fields[cic++].GetUInt8();
+ gOption.Probability = fields[cic++].GetFloat();
for (uint8 j = 0; j < MAX_GOSSIP_TEXT_EMOTES; ++j)
{
- gText.Options[i].Emotes[j]._Delay = fields[cic++].GetUInt16();
- gText.Options[i].Emotes[j]._Emote = fields[cic++].GetUInt16();
+ gOption.Emotes[j]._Delay = fields[cic++].GetUInt16();
+ gOption.Emotes[j]._Emote = fields[cic++].GetUInt16();
}
- }
- for (uint8 i = 0; i < MAX_GOSSIP_TEXT_OPTIONS; i++)
- {
- if (gText.Options[i].BroadcastTextID)
+ // check broadcast_text correctness
+ if (gOption.BroadcastTextID)
{
- if (!sObjectMgr->GetBroadcastText(gText.Options[i].BroadcastTextID))
+ if (BroadcastText const* bcText = sObjectMgr->GetBroadcastText(gOption.BroadcastTextID))
{
- TC_LOG_ERROR("sql.sql", "GossipText (Id: %u) in table `npc_text` has non-existing or incompatible BroadcastTextID%u %u.", id, i, gText.Options[i].BroadcastTextID);
- gText.Options[i].BroadcastTextID = 0;
+ if (bcText->MaleText[DEFAULT_LOCALE] != gOption.Text_0)
+ TC_LOG_ERROR("sql.sql", "Row %u in table `npc_text` has mismatch between text%u_0 and the corresponding MaleText in `broadcast_text` row %u", id, i, gOption.BroadcastTextID);
+ if (bcText->FemaleText[DEFAULT_LOCALE] != gOption.Text_1)
+ TC_LOG_ERROR("sql.sql", "Row %u in table `npc_text` has mismatch between text%u_1 and the corresponding FemaleText in `broadcast_text` row %u", id, i, gOption.BroadcastTextID);
}
+ else
+ {
+ TC_LOG_ERROR("sql.sql", "GossipText (Id: %u) in table `npc_text` has non-existing or incompatible BroadcastTextID%u %u.", id, i, gOption.BroadcastTextID);
+ gOption.BroadcastTextID = 0;
+ }
+
+
}
}