diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 36 | 
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; +                } + +              }          }  | 
