aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-02-01 12:09:58 +0100
committerShauren <shauren.trinity@gmail.com>2018-02-01 12:09:58 +0100
commitb3f9d5e5af79c3c76043f29aa467c2c619386e0d (patch)
treefbb548e4cd3de1c5975bdf3d90bd8bf83b8d54e3
parent0f5b8447d0c82120e5ff58eb1931e80911017cdc (diff)
Core/Gossip: Revert renaming/changing types part of 853df91048330f3066e7adb14019bfe5b0ffa019
Closes #21186
-rw-r--r--sql/updates/world/master/2018_02_01_00_world.sql24
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h2
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp4
-rw-r--r--src/server/game/Entities/Creature/GossipDef.cpp18
-rw-r--r--src/server/game/Entities/Creature/GossipDef.h4
-rw-r--r--src/server/game/Entities/Player/Player.cpp34
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp82
-rw-r--r--src/server/game/Globals/ObjectMgr.h23
9 files changed, 107 insertions, 86 deletions
diff --git a/sql/updates/world/master/2018_02_01_00_world.sql b/sql/updates/world/master/2018_02_01_00_world.sql
new file mode 100644
index 00000000000..55c863a5964
--- /dev/null
+++ b/sql/updates/world/master/2018_02_01_00_world.sql
@@ -0,0 +1,24 @@
+ALTER TABLE `gossip_menu`
+ CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ CHANGE `TextID` `TextId` INT(10) UNSIGNED NOT NULL DEFAULT '0';
+
+ALTER TABLE `gossip_menu_option`
+ CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ CHANGE `OptionNpcflag` `OptionNpcFlag` bigint(20) UNSIGNED NOT NULL DEFAULT '0';
+
+ALTER TABLE `gossip_menu_option_action`
+ CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0';
+
+ALTER TABLE `gossip_menu_option_box`
+ CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0';
+
+ALTER TABLE `gossip_menu_option_trainer`
+ CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0';
+
+ALTER TABLE `gossip_menu_option_locale`
+ CHANGE `MenuID` `MenuId` INT(10) UNSIGNED NOT NULL DEFAULT '0';
+ CHANGE `OptionID` `OptionIndex` INT(10) UNSIGNED NOT NULL DEFAULT '0';
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
index 47d2db71f5f..2c2768830fd 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
@@ -548,7 +548,7 @@ enum SMART_ACTION
SMART_ACTION_ADD_DYNAMIC_FLAG = 95, // Flags
SMART_ACTION_REMOVE_DYNAMIC_FLAG = 96, // Flags
SMART_ACTION_JUMP_TO_POS = 97, // speedXY, speedZ, targetX, targetY, targetZ
- SMART_ACTION_SEND_GOSSIP_MENU = 98, // menuId, optionId
+ SMART_ACTION_SEND_GOSSIP_MENU = 98, // menuId, optionIndex
SMART_ACTION_GO_SET_LOOT_STATE = 99, // state
SMART_ACTION_SEND_TARGET_TO_TARGET = 100, // id
SMART_ACTION_SET_HOME_POS = 101, // none
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 3628e9ec312..6f375bc3d99 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -1325,7 +1325,7 @@ bool ConditionMgr::addToGossipMenus(Condition* cond) const
{
for (GossipMenusContainer::iterator itr = pMenuBounds.first; itr != pMenuBounds.second; ++itr)
{
- if ((*itr).second.MenuID == cond->SourceGroup && (*itr).second.TextID == uint32(cond->SourceEntry))
+ if ((*itr).second.MenuId == cond->SourceGroup && (*itr).second.TextId == uint32(cond->SourceEntry))
{
(*itr).second.Conditions.push_back(cond);
return true;
@@ -1344,7 +1344,7 @@ bool ConditionMgr::addToGossipMenuItems(Condition* cond) const
{
for (GossipMenuItemsContainer::iterator itr = pMenuItemBounds.first; itr != pMenuItemBounds.second; ++itr)
{
- if ((*itr).second.MenuID == cond->SourceGroup && (*itr).second.OptionID == uint32(cond->SourceEntry))
+ if ((*itr).second.MenuId == cond->SourceGroup && (*itr).second.OptionIndex == uint32(cond->SourceEntry))
{
(*itr).second.Conditions.push_back(cond);
return true;
diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp
index e5bbbfa5f1d..a8fb5710dcd 100644
--- a/src/server/game/Entities/Creature/GossipDef.cpp
+++ b/src/server/game/Entities/Creature/GossipDef.cpp
@@ -76,11 +76,11 @@ uint32 GossipMenu::AddMenuItem(int32 optionIndex, uint8 icon, std::string const&
* @name AddMenuItem
* @brief Adds a localized gossip menu item from db by menu id and menu item id.
* @param menuId Gossip menu id.
- * @param menuItemId Gossip menu item id.
+ * @param optionIndex Gossip menu item index.
* @param sender Identifier of the current menu.
* @param action Custom action given to OnGossipHello.
*/
-void GossipMenu::AddMenuItem(uint32 menuId, uint32 menuItemId, uint32 sender, uint32 action)
+void GossipMenu::AddMenuItem(uint32 menuId, uint32 optionIndex, uint32 sender, uint32 action)
{
/// Find items for given menu id.
GossipMenuItemsMapBounds bounds = sObjectMgr->GetGossipMenuItemsMapBounds(menuId);
@@ -92,13 +92,13 @@ void GossipMenu::AddMenuItem(uint32 menuId, uint32 menuItemId, uint32 sender, ui
for (GossipMenuItemsContainer::const_iterator itr = bounds.first; itr != bounds.second; ++itr)
{
/// Find the one with the given menu item id.
- if (itr->second.OptionID != menuItemId)
+ if (itr->second.OptionIndex != optionIndex)
continue;
/// Store texts for localization.
std::string strOptionText, strBoxText;
- BroadcastTextEntry const* optionBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.OptionBroadcastTextID);
- BroadcastTextEntry const* boxBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.BoxBroadcastTextID);
+ BroadcastTextEntry const* optionBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.OptionBroadcastTextId);
+ BroadcastTextEntry const* boxBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.BoxBroadcastTextId);
/// OptionText
if (optionBroadcastText)
@@ -118,21 +118,21 @@ void GossipMenu::AddMenuItem(uint32 menuId, uint32 menuItemId, uint32 sender, ui
if (!optionBroadcastText)
{
/// Find localizations from database.
- if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuItemId)))
+ if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(menuId, optionIndex))
ObjectMgr::GetLocaleString(gossipMenuLocale->OptionText, GetLocale(), strOptionText);
}
if (!boxBroadcastText)
{
/// Find localizations from database.
- if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuItemId)))
+ if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(menuId, optionIndex))
ObjectMgr::GetLocaleString(gossipMenuLocale->BoxText, GetLocale(), strBoxText);
}
}
/// Add menu item with existing method. Menu item id -1 is also used in ADD_GOSSIP_ITEM macro.
- uint32 optionIndex = AddMenuItem(-1, itr->second.OptionIcon, strOptionText, sender, action, strBoxText, itr->second.BoxMoney, itr->second.BoxCoded);
- AddGossipMenuItemData(optionIndex, itr->second.ActionMenuID, itr->second.ActionPoiID, itr->second.TrainerId);
+ uint32 newOptionIndex = AddMenuItem(-1, itr->second.OptionIcon, strOptionText, sender, action, strBoxText, itr->second.BoxMoney, itr->second.BoxCoded);
+ AddGossipMenuItemData(newOptionIndex, itr->second.ActionMenuId, itr->second.ActionPoiId, itr->second.TrainerId);
}
}
diff --git a/src/server/game/Entities/Creature/GossipDef.h b/src/server/game/Entities/Creature/GossipDef.h
index 0deab1c1604..aa0eb3f0d4e 100644
--- a/src/server/game/Entities/Creature/GossipDef.h
+++ b/src/server/game/Entities/Creature/GossipDef.h
@@ -167,8 +167,8 @@ class TC_GAME_API GossipMenu
GossipMenu();
~GossipMenu();
- uint32 AddMenuItem(int32 menuItemId, uint8 icon, std::string const& message, uint32 sender, uint32 action, std::string const& boxMessage, uint32 boxMoney, bool coded = false);
- void AddMenuItem(uint32 menuId, uint32 menuItemId, uint32 sender, uint32 action);
+ uint32 AddMenuItem(int32 optionIndex, uint8 icon, std::string const& message, uint32 sender, uint32 action, std::string const& boxMessage, uint32 boxMoney, bool coded = false);
+ void AddMenuItem(uint32 menuId, uint32 optionIndex, uint32 sender, uint32 action);
void SetMenuId(uint32 menu_id) { _menuId = menu_id; }
uint32 GetMenuId() const { return _menuId; }
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 2925d78661a..ff0eaaf891f 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -14190,7 +14190,7 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
canTalk = false;
break;
default:
- TC_LOG_ERROR("sql.sql", "Creature entry %u has unknown gossip option %u for menu %u.", creature->GetEntry(), itr->second.OptionType, itr->second.MenuID);
+ TC_LOG_ERROR("sql.sql", "Creature entry %u has unknown gossip option %u for menu %u.", creature->GetEntry(), itr->second.OptionType, itr->second.MenuId);
canTalk = false;
break;
}
@@ -14212,8 +14212,8 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
if (canTalk)
{
std::string strOptionText, strBoxText;
- BroadcastTextEntry const* optionBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.OptionBroadcastTextID);
- BroadcastTextEntry const* boxBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.BoxBroadcastTextID);
+ BroadcastTextEntry const* optionBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.OptionBroadcastTextId);
+ BroadcastTextEntry const* boxBroadcastText = sBroadcastTextStore.LookupEntry(itr->second.BoxBroadcastTextId);
LocaleConstant locale = GetSession()->GetSessionDbLocaleIndex();
if (optionBroadcastText)
@@ -14231,20 +14231,20 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
if (!optionBroadcastText)
{
/// Find localizations from database.
- if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, itr->second.OptionID)))
+ if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(menuId, itr->second.OptionIndex))
ObjectMgr::GetLocaleString(gossipMenuLocale->OptionText, locale, strOptionText);
}
if (!boxBroadcastText)
{
/// Find localizations from database.
- if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, itr->second.OptionID)))
+ if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(menuId, itr->second.OptionIndex))
ObjectMgr::GetLocaleString(gossipMenuLocale->BoxText, locale, strBoxText);
}
}
- menu->GetGossipMenu().AddMenuItem(itr->second.OptionID, itr->second.OptionIcon, strOptionText, 0, itr->second.OptionType, strBoxText, itr->second.BoxMoney, itr->second.BoxCoded);
- menu->GetGossipMenu().AddGossipMenuItemData(itr->second.OptionID, itr->second.ActionMenuID, itr->second.ActionPoiID, itr->second.TrainerId);
+ menu->GetGossipMenu().AddMenuItem(itr->second.OptionIndex, itr->second.OptionIcon, strOptionText, 0, itr->second.OptionType, strBoxText, itr->second.BoxMoney, itr->second.BoxCoded);
+ menu->GetGossipMenu().AddGossipMenuItemData(itr->second.OptionIndex, itr->second.ActionMenuId, itr->second.ActionPoiId, itr->second.TrainerId);
}
}
}
@@ -14274,7 +14274,7 @@ void Player::SendPreparedGossip(WorldObject* source)
PlayerTalkClass->SendGossipMenu(textId, source->GetGUID());
}
-void Player::OnGossipSelect(WorldObject* source, uint32 gossipListId, uint32 menuId)
+void Player::OnGossipSelect(WorldObject* source, uint32 optionIndex, uint32 menuId)
{
GossipMenu& gossipMenu = PlayerTalkClass->GetGossipMenu();
@@ -14282,16 +14282,16 @@ void Player::OnGossipSelect(WorldObject* source, uint32 gossipListId, uint32 men
if (menuId != gossipMenu.GetMenuId())
return;
- GossipMenuItem const* item = gossipMenu.GetItem(gossipListId);
+ GossipMenuItem const* item = gossipMenu.GetItem(optionIndex);
if (!item)
return;
- uint32 gossipOptionId = item->OptionType;
+ uint32 gossipOptionType = item->OptionType;
ObjectGuid guid = source->GetGUID();
if (source->GetTypeId() == TYPEID_GAMEOBJECT)
{
- if (gossipOptionId > GOSSIP_OPTION_QUESTGIVER)
+ if (gossipOptionType > GOSSIP_OPTION_QUESTGIVER)
{
TC_LOG_ERROR("entities.player", "Player '%s' (%s) requests invalid gossip option for GameObject (Entry: %u)",
GetName().c_str(), GetGUID().ToString().c_str(), source->GetEntry());
@@ -14299,19 +14299,19 @@ void Player::OnGossipSelect(WorldObject* source, uint32 gossipListId, uint32 men
}
}
- GossipMenuItemData const* menuItemData = gossipMenu.GetItemData(gossipListId);
+ GossipMenuItemData const* menuItemData = gossipMenu.GetItemData(optionIndex);
if (!menuItemData)
return;
- int32 cost = int32(item->BoxMoney);
- if (!HasEnoughMoney(int64(cost)))
+ int64 cost = int64(item->BoxMoney);
+ if (!HasEnoughMoney(cost))
{
SendBuyError(BUY_ERR_NOT_ENOUGHT_MONEY, nullptr, 0, 0);
PlayerTalkClass->SendCloseGossip();
return;
}
- switch (gossipOptionId)
+ switch (gossipOptionType)
{
case GOSSIP_OPTION_GOSSIP:
{
@@ -14327,7 +14327,7 @@ void Player::OnGossipSelect(WorldObject* source, uint32 gossipListId, uint32 men
break;
}
case GOSSIP_OPTION_OUTDOORPVP:
- sOutdoorPvPMgr->HandleGossipOption(this, source->ToCreature(), gossipListId);
+ sOutdoorPvPMgr->HandleGossipOption(this, source->ToCreature(), optionIndex);
break;
case GOSSIP_OPTION_SPIRITHEALER:
if (isDead())
@@ -14417,7 +14417,7 @@ uint32 Player::GetGossipTextId(uint32 menuId, WorldObject* source)
for (GossipMenusContainer::const_iterator itr = menuBounds.first; itr != menuBounds.second; ++itr)
{
if (sConditionMgr->IsObjectMeetToConditions(this, source, itr->second.Conditions))
- textId = itr->second.TextID;
+ textId = itr->second.TextId;
}
return textId;
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index a7b90389fb4..bf60ebb1122 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1327,7 +1327,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void PrepareGossipMenu(WorldObject* source, uint32 menuId = 0, bool showQuests = false);
void SendPreparedGossip(WorldObject* source);
- void OnGossipSelect(WorldObject* source, uint32 gossipListId, uint32 menuId);
+ void OnGossipSelect(WorldObject* source, uint32 optionIndex, uint32 menuId);
uint32 GetGossipTextId(uint32 menuId, WorldObject* source);
uint32 GetGossipTextId(WorldObject* source);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index d030149640d..8e61eb33baa 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -349,7 +349,7 @@ void ObjectMgr::LoadGossipMenuItemsLocales()
_gossipMenuItemsLocaleStore.clear(); // need for reload case
// 0 1 2 3 4
- QueryResult result = WorldDatabase.Query("SELECT MenuID, OptionID, Locale, OptionText, BoxText FROM gossip_menu_option_locale");
+ QueryResult result = WorldDatabase.Query("SELECT MenuId, OptionIndex, Locale, OptionText, BoxText FROM gossip_menu_option_locale");
if (!result)
return;
@@ -358,21 +358,20 @@ void ObjectMgr::LoadGossipMenuItemsLocales()
{
Field* fields = result->Fetch();
-
- uint16 menuId = fields[0].GetUInt16();
- uint16 optionId = fields[1].GetUInt16();
+ uint32 menuId = fields[0].GetUInt32();
+ uint32 optionIndex = fields[1].GetUInt32();
std::string localeName = fields[2].GetString();
- LocaleConstant locale = GetLocaleByName(localeName);
+ LocaleConstant locale = GetLocaleByName(localeName);
if (locale == LOCALE_enUS)
continue;
- GossipMenuItemsLocale& data = _gossipMenuItemsLocaleStore[MAKE_PAIR32(menuId, optionId)];
+ GossipMenuItemsLocale& data = _gossipMenuItemsLocaleStore[std::make_pair(menuId, optionIndex)];
AddLocaleString(fields[3].GetString(), locale, data.OptionText);
AddLocaleString(fields[4].GetString(), locale, data.BoxText);
} while (result->NextRow());
- TC_LOG_INFO("server.loading", ">> Loaded %u gossip_menu_option locale strings in %u ms", uint32(_gossipMenuItemsLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));
+ TC_LOG_INFO("server.loading", ">> Loaded " SZFMTD " gossip_menu_option locale strings in %u ms", _gossipMenuItemsLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
}
void ObjectMgr::LoadPointOfInterestLocales()
@@ -8760,9 +8759,8 @@ void ObjectMgr::LoadGossipMenu()
_gossipMenusStore.clear();
-
// 0 1
- QueryResult result = WorldDatabase.Query("SELECT MenuID, TextID FROM gossip_menu");
+ QueryResult result = WorldDatabase.Query("SELECT MenuId, TextId FROM gossip_menu");
if (!result)
{
@@ -8776,16 +8774,16 @@ void ObjectMgr::LoadGossipMenu()
GossipMenus gMenu;
- gMenu.MenuID = fields[0].GetUInt16();
- gMenu.TextID = fields[1].GetUInt32();
+ gMenu.MenuId = fields[0].GetUInt32();
+ gMenu.TextId = fields[1].GetUInt32();
- if (!GetNpcText(gMenu.TextID))
+ if (!GetNpcText(gMenu.TextId))
{
- TC_LOG_ERROR("sql.sql", "Table gossip_menu: ID %u is using non-existing TextID %u", gMenu.MenuID, gMenu.TextID);
+ TC_LOG_ERROR("sql.sql", "Table gossip_menu: ID %u is using non-existing TextId %u", gMenu.MenuId, gMenu.TextId);
continue;
}
- _gossipMenusStore.insert(GossipMenusContainer::value_type(gMenu.MenuID, gMenu));
+ _gossipMenusStore.insert(GossipMenusContainer::value_type(gMenu.MenuId, gMenu));
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u gossip_menu IDs in %u ms", uint32(_gossipMenusStore.size()), GetMSTimeDiffToNow(oldMSTime));
@@ -8799,18 +8797,18 @@ void ObjectMgr::LoadGossipMenuItems()
QueryResult result = WorldDatabase.Query(
// 0 1 2 3 4 5 6
- "SELECT o.MenuID, o.OptionID, o.OptionIcon, o.OptionText, o.OptionBroadcastTextId, o.OptionType, o.OptionNpcflag, "
+ "SELECT o.MenuId, o.OptionIndex, o.OptionIcon, o.OptionText, o.OptionBroadcastTextId, o.OptionType, o.OptionNpcFlag, "
// 7 8
- "oa.ActionMenuID, oa.ActionPoiID, "
+ "oa.ActionMenuId, oa.ActionPoiId, "
// 9 10 11 12
"ob.BoxCoded, ob.BoxMoney, ob.BoxText, ob.BoxBroadcastTextId, "
// 13
"ot.TrainerId "
"FROM gossip_menu_option o "
- "LEFT JOIN gossip_menu_option_action oa ON o.MenuID = oa.MenuID AND o.OptionID = oa.OptionID "
- "LEFT JOIN gossip_menu_option_box ob ON o.MenuID = ob.MenuID AND o.OptionID = ob.OptionID "
- "LEFT JOIN gossip_menu_option_trainer ot ON o.MenuID = ot.MenuID AND o.OptionID = ot.OptionID "
- "ORDER BY o.MenuId, o.OptionID");
+ "LEFT JOIN gossip_menu_option_action oa ON o.MenuId = oa.MenuId AND o.OptionIndex = oa.OptionIndex "
+ "LEFT JOIN gossip_menu_option_box ob ON o.MenuId = ob.MenuId AND o.OptionIndex = ob.OptionIndex "
+ "LEFT JOIN gossip_menu_option_trainer ot ON o.MenuId = ot.MenuId AND o.OptionIndex = ot.OptionIndex "
+ "ORDER BY o.MenuId, o.OptionIndex");
if (!result)
{
@@ -8824,64 +8822,64 @@ void ObjectMgr::LoadGossipMenuItems()
GossipMenuItems gMenuItem;
- gMenuItem.MenuID = fields[0].GetUInt32();
- gMenuItem.OptionID = fields[1].GetUInt32();
+ gMenuItem.MenuId = fields[0].GetUInt32();
+ gMenuItem.OptionIndex = fields[1].GetUInt32();
gMenuItem.OptionIcon = fields[2].GetUInt8();
gMenuItem.OptionText = fields[3].GetString();
- gMenuItem.OptionBroadcastTextID = fields[4].GetUInt32();
+ gMenuItem.OptionBroadcastTextId = fields[4].GetUInt32();
gMenuItem.OptionType = fields[5].GetUInt32();
gMenuItem.OptionNpcFlag = fields[6].GetUInt64();
- gMenuItem.ActionMenuID = fields[7].GetUInt32();
- gMenuItem.ActionPoiID = fields[8].GetUInt32();
+ gMenuItem.ActionMenuId = fields[7].GetUInt32();
+ gMenuItem.ActionPoiId = fields[8].GetUInt32();
gMenuItem.BoxCoded = fields[9].GetBool();
gMenuItem.BoxMoney = fields[10].GetUInt32();
gMenuItem.BoxText = fields[11].GetString();
- gMenuItem.BoxBroadcastTextID = fields[12].GetUInt32();
+ gMenuItem.BoxBroadcastTextId = fields[12].GetUInt32();
gMenuItem.TrainerId = fields[13].GetUInt32();
if (gMenuItem.OptionIcon >= GOSSIP_ICON_MAX)
{
- TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuId %u, OptionID %u has unknown icon id %u. Replacing with GOSSIP_ICON_CHAT", gMenuItem.MenuID, gMenuItem.OptionID, gMenuItem.OptionIcon);
+ TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuId %u, OptionIndex %u has unknown icon id %u. Replacing with GOSSIP_ICON_CHAT", gMenuItem.MenuId, gMenuItem.OptionIndex, gMenuItem.OptionIcon);
gMenuItem.OptionIcon = GOSSIP_ICON_CHAT;
}
- if (gMenuItem.OptionBroadcastTextID)
+ if (gMenuItem.OptionBroadcastTextId)
{
- if (!sBroadcastTextStore.LookupEntry(gMenuItem.OptionBroadcastTextID))
+ if (!sBroadcastTextStore.LookupEntry(gMenuItem.OptionBroadcastTextId))
{
- TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuId %u, OptionID %u has non-existing or incompatible OptionBroadcastTextID %u, ignoring.", gMenuItem.MenuID, gMenuItem.OptionID, gMenuItem.OptionBroadcastTextID);
- gMenuItem.OptionBroadcastTextID = 0;
+ TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuId %u, OptionIndex %u has non-existing or incompatible OptionBroadcastTextID %u, ignoring.", gMenuItem.MenuId, gMenuItem.OptionIndex, gMenuItem.OptionBroadcastTextId);
+ gMenuItem.OptionBroadcastTextId = 0;
}
}
if (gMenuItem.OptionType >= GOSSIP_OPTION_MAX)
- TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuID %u, OptionID %u has unknown option id %u. Option will not be used", gMenuItem.MenuID, gMenuItem.OptionID, gMenuItem.OptionType);
+ TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuId %u, OptionIndex %u has unknown option id %u. Option will not be used", gMenuItem.MenuId, gMenuItem.OptionIndex, gMenuItem.OptionType);
- if (gMenuItem.ActionPoiID && !GetPointOfInterest(gMenuItem.ActionPoiID))
+ if (gMenuItem.ActionPoiId && !GetPointOfInterest(gMenuItem.ActionPoiId))
{
- TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuID %u, OptionID %u use non-existing action_poi_id %u, ignoring", gMenuItem.MenuID, gMenuItem.OptionID, gMenuItem.ActionPoiID);
- gMenuItem.ActionPoiID = 0;
+ TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuId %u, OptionIndex %u use non-existing action_poi_id %u, ignoring", gMenuItem.MenuId, gMenuItem.OptionIndex, gMenuItem.ActionPoiId);
+ gMenuItem.ActionPoiId = 0;
}
- if (gMenuItem.BoxBroadcastTextID)
+ if (gMenuItem.BoxBroadcastTextId)
{
- if (!sBroadcastTextStore.LookupEntry(gMenuItem.BoxBroadcastTextID))
+ if (!sBroadcastTextStore.LookupEntry(gMenuItem.BoxBroadcastTextId))
{
- TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuId %u, OptionID %u has non-existing or incompatible BoxBroadcastTextId %u, ignoring.", gMenuItem.MenuID, gMenuItem.OptionID, gMenuItem.BoxBroadcastTextID);
- gMenuItem.BoxBroadcastTextID = 0;
+ TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option` for MenuId %u, OptionIndex %u has non-existing or incompatible BoxBroadcastTextId %u, ignoring.", gMenuItem.MenuId, gMenuItem.OptionIndex, gMenuItem.BoxBroadcastTextId);
+ gMenuItem.BoxBroadcastTextId = 0;
}
}
if (gMenuItem.TrainerId && !GetTrainer(gMenuItem.TrainerId))
{
- TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option_trainer` for MenuId %u, OptionIndex %u use non-existing TrainerId %u, ignoring", gMenuItem.MenuID, gMenuItem.OptionID, gMenuItem.TrainerId);
+ TC_LOG_ERROR("sql.sql", "Table `gossip_menu_option_trainer` for MenuId %u, OptionIndex %u use non-existing TrainerId %u, ignoring", gMenuItem.MenuId, gMenuItem.OptionIndex, gMenuItem.TrainerId);
gMenuItem.TrainerId = 0;
}
- _gossipMenuItemsStore.insert(GossipMenuItemsContainer::value_type(gMenuItem.MenuID, gMenuItem));
+ _gossipMenuItemsStore.insert(GossipMenuItemsContainer::value_type(gMenuItem.MenuId, gMenuItem));
} while (result->NextRow());
- TC_LOG_INFO("server.loading", ">> Loaded %u gossip_menu_option entries in %u ms", uint32(_gossipMenuItemsStore.size()), GetMSTimeDiffToNow(oldMSTime));
+ TC_LOG_INFO("server.loading", ">> Loaded " SZFMTD " gossip_menu_option entries in %u ms", _gossipMenuItemsStore.size(), GetMSTimeDiffToNow(oldMSTime));
}
Trainer::Trainer const* ObjectMgr::GetTrainer(uint32 trainerId) const
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index c637884c203..7f3dd1b5115 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -507,7 +507,7 @@ struct GossipMenuItemsLocale
std::vector<std::string> BoxText;
};
-typedef std::unordered_map<uint32, GossipMenuItemsLocale> GossipMenuItemsLocaleContainer;
+typedef std::unordered_map<std::pair<uint32, uint32>, GossipMenuItemsLocale> GossipMenuItemsLocaleContainer;
struct PointOfInterestLocale
{
@@ -537,7 +537,6 @@ typedef std::multimap<uint32, uint32> QuestRelationsReverse; // quest -> unit/go
typedef std::pair<QuestRelations::const_iterator, QuestRelations::const_iterator> QuestRelationBounds;
typedef std::pair<QuestRelationsReverse::const_iterator, QuestRelationsReverse::const_iterator> QuestRelationReverseBounds;
-
struct PlayerCreateInfoItem
{
PlayerCreateInfoItem(uint32 id, uint32 amount) : item_id(id), item_amount(amount) { }
@@ -664,27 +663,27 @@ struct PointOfInterest
struct GossipMenuItems
{
- uint32 MenuID;
- uint32 OptionID;
+ uint32 MenuId;
+ uint32 OptionIndex;
uint8 OptionIcon;
std::string OptionText;
- uint32 OptionBroadcastTextID;
+ uint32 OptionBroadcastTextId;
uint32 OptionType;
uint64 OptionNpcFlag;
- uint32 ActionMenuID;
- uint32 ActionPoiID;
+ uint32 ActionMenuId;
+ uint32 ActionPoiId;
bool BoxCoded;
uint32 BoxMoney;
std::string BoxText;
- uint32 BoxBroadcastTextID;
+ uint32 BoxBroadcastTextId;
uint32 TrainerId;
ConditionContainer Conditions;
};
struct GossipMenus
{
- uint32 MenuID;
- uint32 TextID;
+ uint32 MenuId;
+ uint32 TextId;
ConditionContainer Conditions;
};
@@ -1390,9 +1389,9 @@ class TC_GAME_API ObjectMgr
if (itr == _pageTextLocaleStore.end()) return nullptr;
return &itr->second;
}
- GossipMenuItemsLocale const* GetGossipMenuItemsLocale(uint32 entry) const
+ GossipMenuItemsLocale const* GetGossipMenuItemsLocale(uint32 menuId, uint32 optionIndex) const
{
- GossipMenuItemsLocaleContainer::const_iterator itr = _gossipMenuItemsLocaleStore.find(entry);
+ auto itr = _gossipMenuItemsLocaleStore.find(std::make_pair(menuId, optionIndex));
if (itr == _gossipMenuItemsLocaleStore.end()) return nullptr;
return &itr->second;
}