mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 08:28:32 +01:00
Core/Gossips: Make MenuID/OptionID consistently use uint32 types (#165)
This commit is contained in:
7
sql/updates/world/4.3.4/2020_08_03_00_world.sql
Normal file
7
sql/updates/world/4.3.4/2020_08_03_00_world.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
ALTER TABLE `gossip_menu_option_locale`
|
||||
CHANGE `MenuID` `MenuID` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
CHANGE `OptionID` `OptionID` int(11) unsigned NOT NULL DEFAULT '0';
|
||||
|
||||
ALTER TABLE `gossip_menu`
|
||||
CHANGE `MenuID` `MenuID` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
CHANGE `TextID` `TextID` int(11) unsigned NOT NULL DEFAULT '0';
|
||||
@@ -111,14 +111,14 @@ 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, menuItemId))
|
||||
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, menuItemId))
|
||||
ObjectMgr::GetLocaleString(gossipMenuLocale->BoxText, GetLocale(), strBoxText);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14023,14 +14023,14 @@ 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.OptionID))
|
||||
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.OptionID))
|
||||
ObjectMgr::GetLocaleString(gossipMenuLocale->BoxText, locale, strBoxText);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -375,22 +375,20 @@ void ObjectMgr::LoadGossipMenuItemsLocales()
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
|
||||
uint16 menuId = fields[0].GetUInt16();
|
||||
uint16 optionId = fields[1].GetUInt16();
|
||||
uint32 menuId = fields[0].GetUInt32();
|
||||
uint32 optionId = fields[1].GetUInt32();
|
||||
std::string localeName = fields[2].GetString();
|
||||
std::string optionText = fields[3].GetString();
|
||||
std::string boxText = fields[4].GetString();
|
||||
|
||||
GossipMenuItemsLocale& data = _gossipMenuItemsLocaleStore[MAKE_PAIR32(menuId, optionId)];
|
||||
LocaleConstant locale = GetLocaleByName(localeName);
|
||||
LocaleConstant locale = GetLocaleByName(localeName);
|
||||
if (locale == LOCALE_enUS)
|
||||
continue;
|
||||
|
||||
AddLocaleString(optionText, locale, data.OptionText);
|
||||
AddLocaleString(boxText, locale, data.BoxText);
|
||||
GossipMenuItemsLocale& data = _gossipMenuItemsLocaleStore[std::make_pair(menuId, optionId)];
|
||||
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()
|
||||
@@ -8950,7 +8948,7 @@ void ObjectMgr::LoadGossipMenu()
|
||||
|
||||
GossipMenus gMenu;
|
||||
|
||||
gMenu.MenuID = fields[0].GetUInt16();
|
||||
gMenu.MenuID = fields[0].GetUInt32();
|
||||
gMenu.TextID = fields[1].GetUInt32();
|
||||
|
||||
if (!GetGossipText(gMenu.TextID))
|
||||
|
||||
@@ -569,7 +569,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
|
||||
{
|
||||
@@ -1421,9 +1421,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);
|
||||
GossipMenuItemsLocaleContainer::const_iterator itr = _gossipMenuItemsLocaleStore.find(std::make_pair(menuId, optionIndex));
|
||||
if (itr == _gossipMenuItemsLocaleStore.end()) return nullptr;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user