aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2018-08-16 11:33:41 +0200
committerTreeston <treeston.mmoc@gmail.com>2018-08-16 11:34:00 +0200
commit6eb7f06b1f707190e66f2f15edf7700cedc59fbd (patch)
tree1fb3f13ecad70ef06cf129f6315aacc1bb271603
parent2c96b874c3b4bfcc2b990e813dbf290671ec41ba (diff)
Startup/DB: Print errors on npc_text vs broadcast_text mismatches.
-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;
+ }
+
+
}
}