BizHawk/BizHawk.Client.Common/lua/LuaFunctionList.cs

50 lines
1.1 KiB
C#
Raw Normal View History

2013-10-28 20:57:25 +00:00
using System.Collections.Generic;
using System.Linq;
using BizHawk.Emulation.Common.IEmulatorExtensions;
namespace BizHawk.Client.Common
{
public class LuaFunctionList : List<NamedLuaFunction>
{
public NamedLuaFunction this[string guid]
{
get
{
2017-05-18 16:36:38 +00:00
return this.FirstOrDefault(nlf => nlf.Guid.ToString() == guid);
}
}
public new bool Remove(NamedLuaFunction function)
{
if (Global.Emulator.InputCallbacksAvailable())
{
2014-12-05 00:59:00 +00:00
Global.Emulator.AsInputPollable().InputCallbacks.Remove(function.Callback);
}
if (Global.Emulator.MemoryCallbacksAvailable())
{
Global.Emulator.AsDebuggable().MemoryCallbacks.Remove(function.Callback);
}
return base.Remove(function);
}
public void ClearAll()
{
if (Global.Emulator.InputCallbacksAvailable())
{
2017-05-18 16:36:38 +00:00
Global.Emulator.AsInputPollable().InputCallbacks.RemoveAll(this.Select(w => w.Callback));
}
if (Global.Emulator.MemoryCallbacksAvailable())
{
var memoryCallbacks = Global.Emulator.AsDebuggable().MemoryCallbacks;
2017-05-18 16:36:38 +00:00
memoryCallbacks.RemoveAll(this.Select(w => w.Callback));
}
Clear();
}
}
}