## Summary - Removes allocation of a `List<ContextMenuEntry>` every time a context menu is created. - Moves packet/context menu creation logic out of the core - Fixes tame entry ## BREAKING CHANGE > [!Important] > **Developer Note** > ```cs > public virtual void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> list) > ``` > and similar functions changed to > ```cs > public virtual void GetContextMenuEntries(Mobile from, ref PooledRefList<ContextMenuEntry> list) > ```
21 lines
565 B
C#
21 lines
565 B
C#
using Server.ContextMenus;
|
|
|
|
namespace Server.Engines.Quests
|
|
{
|
|
public class QuestCallbackEntry : ContextMenuEntry
|
|
{
|
|
private readonly QuestCallback m_Callback;
|
|
|
|
public QuestCallbackEntry(int number, QuestCallback callback) : this(number, -1, callback)
|
|
{
|
|
}
|
|
|
|
public QuestCallbackEntry(int number, int range, QuestCallback callback) : base(number, range) =>
|
|
m_Callback = callback;
|
|
|
|
public override void OnClick(Mobile from, IEntity target)
|
|
{
|
|
m_Callback?.Invoke();
|
|
}
|
|
}
|
|
}
|