Core/Gossip: renaming/changing types

This commit is contained in:
hondacrx
2018-02-01 13:50:37 -05:00
parent 84fdaef291
commit 27f406d63d
10 changed files with 138 additions and 44 deletions
+8 -8
View File
@@ -68,10 +68,10 @@ namespace Game.Misc
/// Adds a localized gossip menu item from db by menu id and menu item id.
/// </summary>
/// <param name="menuId">menuId Gossip menu id.</param>
/// <param name="menuItemId">menuItemId Gossip menu item id.</param>
/// <param name="optionIndex">menuItemId Gossip menu item id.</param>
/// <param name="sender">sender Identifier of the current menu.</param>
/// <param name="action">action Custom action given to OnGossipHello.</param>
public void AddMenuItem(uint menuId, uint menuItemId, uint sender, uint action)
public void AddMenuItem(uint menuId, uint optionIndex, uint sender, uint action)
{
/// Find items for given menu id.
var bounds = Global.ObjectMgr.GetGossipMenuItemsMapBounds(menuId);
@@ -83,7 +83,7 @@ namespace Game.Misc
foreach (var item in bounds)
{
// Find the one with the given menu item id.
if (item.OptionId != menuItemId)
if (item.OptionIndex != optionIndex)
continue;
/// Store texts for localization.
@@ -109,7 +109,7 @@ namespace Game.Misc
if (optionBroadcastText == null)
{
// Find localizations from database.
GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItemId);
GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, optionIndex);
if (gossipMenuLocale != null)
ObjectManager.GetLocaleString(gossipMenuLocale.OptionText, GetLocale(), ref strOptionText);
}
@@ -117,7 +117,7 @@ namespace Game.Misc
if (boxBroadcastText == null)
{
// Find localizations from database.
GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItemId);
GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, optionIndex);
if (gossipMenuLocale != null)
ObjectManager.GetLocaleString(gossipMenuLocale.BoxText, GetLocale(), ref strBoxText);
}
@@ -125,8 +125,8 @@ namespace Game.Misc
}
// Add menu item with existing method. Menu item id -1 is also used in ADD_GOSSIP_ITEM macro.
uint optionIndex = AddMenuItem(-1, item.OptionIcon, strOptionText, sender, action, strBoxText, item.BoxMoney, item.BoxCoded);
AddGossipMenuItemData(optionIndex, item.ActionMenuId, item.ActionPoiId, item.TrainerId);
uint newOptionIndex = AddMenuItem(-1, item.OptionIcon, strOptionText, sender, action, strBoxText, item.BoxMoney, item.BoxCoded);
AddGossipMenuItemData(newOptionIndex, item.ActionMenuId, item.ActionPoiId, item.TrainerId);
}
}
@@ -844,7 +844,7 @@ namespace Game.Misc
public class GossipMenuItems
{
public uint MenuId;
public uint OptionId;
public uint OptionIndex;
public GossipOptionIcon OptionIcon;
public string OptionText;
public uint OptionBroadcastTextId;
+12 -12
View File
@@ -2405,7 +2405,7 @@ namespace Game.Entities
if (optionBroadcastText == null)
{
// Find localizations from database.
GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItems.OptionId);
GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItems.OptionIndex);
if (gossipMenuLocale != null)
ObjectManager.GetLocaleString(gossipMenuLocale.OptionText, locale, ref strOptionText);
}
@@ -2413,14 +2413,14 @@ namespace Game.Entities
if (boxBroadcastText == null)
{
// Find localizations from database.
GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItems.OptionId);
GossipMenuItemsLocale gossipMenuLocale = Global.ObjectMgr.GetGossipMenuItemsLocale(menuId, menuItems.OptionIndex);
if (gossipMenuLocale != null)
ObjectManager.GetLocaleString(gossipMenuLocale.BoxText, locale, ref strBoxText);
}
}
menu.GetGossipMenu().AddMenuItem((int)menuItems.OptionId, menuItems.OptionIcon, strOptionText, 0, (uint)menuItems.OptionType, strBoxText, menuItems.BoxMoney, menuItems.BoxCoded);
menu.GetGossipMenu().AddGossipMenuItemData(menuItems.OptionId, menuItems.ActionMenuId, menuItems.ActionPoiId, menuItems.TrainerId);
menu.GetGossipMenu().AddMenuItem((int)menuItems.OptionIndex, menuItems.OptionIcon, strOptionText, 0, (uint)menuItems.OptionType, strBoxText, menuItems.BoxMoney, menuItems.BoxCoded);
menu.GetGossipMenu().AddGossipMenuItemData(menuItems.OptionIndex, menuItems.ActionMenuId, menuItems.ActionPoiId, menuItems.TrainerId);
}
}
}
@@ -2448,7 +2448,7 @@ namespace Game.Entities
PlayerTalkClass.SendGossipMenu(textId, source.GetGUID());
}
public void OnGossipSelect(WorldObject source, uint gossipListId, uint menuId)
public void OnGossipSelect(WorldObject source, uint optionIndex, uint menuId)
{
GossipMenu gossipMenu = PlayerTalkClass.GetGossipMenu();
@@ -2456,27 +2456,27 @@ namespace Game.Entities
if (menuId != gossipMenu.GetMenuId())
return;
GossipMenuItem item = gossipMenu.GetItem(gossipListId);
GossipMenuItem item = gossipMenu.GetItem(optionIndex);
if (item == null)
return;
uint gossipOptionId = item.OptionType;
uint gossipOptionType = item.OptionType;
ObjectGuid guid = source.GetGUID();
if (source.IsTypeId(TypeId.GameObject))
{
if (gossipOptionId > (int)GossipOption.Questgiver)
if (gossipOptionType > (int)GossipOption.Questgiver)
{
Log.outError(LogFilter.Player, "Player guid {0} request invalid gossip option for GameObject entry {1}", GetGUID().ToString(), source.GetEntry());
return;
}
}
GossipMenuItemData menuItemData = gossipMenu.GetItemData(gossipListId);
GossipMenuItemData menuItemData = gossipMenu.GetItemData(optionIndex);
if (menuItemData == null)
return;
int cost = (int)item.BoxMoney;
long cost = item.BoxMoney;
if (!HasEnoughMoney(cost))
{
SendBuyError(BuyResult.NotEnoughtMoney, null, 0);
@@ -2484,7 +2484,7 @@ namespace Game.Entities
return;
}
switch ((GossipOption)gossipOptionId)
switch ((GossipOption)gossipOptionType)
{
case GossipOption.Gossip:
{
@@ -2500,7 +2500,7 @@ namespace Game.Entities
break;
}
case GossipOption.Outdoorpvp:
Global.OutdoorPvPMgr.HandleGossipOption(this, source.ToCreature(), gossipListId);
Global.OutdoorPvPMgr.HandleGossipOption(this, source.ToCreature(), optionIndex);
break;
case GossipOption.Spirithealer:
if (IsDead())