diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
index bb278cc699..259a5d6f7e 100644
--- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
+++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
@@ -899,6 +899,7 @@
VirtualPadTargetScreen.cs
+
diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadTool.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadTool.cs
index 9ccd3097d8..fb01bebc5c 100644
--- a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadTool.cs
+++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadTool.cs
@@ -83,21 +83,7 @@ namespace BizHawk.Client.EmuHawk
switch(Global.Emulator.SystemId)
{
case "NES":
- ControllerBox.Controls.Add(new VirtualPad(
- NesSchema.StandardController(1))
- {
- Location = new Point(15, 15)
- });
- //ControllerBox.Controls.Add(new VirtualPad(
- // NesSchema.StandardController(2))
- // {
- // Location = new Point(200, 15)
- // });
- ControllerBox.Controls.Add(new VirtualPad(
- NesSchema.Zapper(2))
- {
- Location = new Point(200, 15)
- });
+ ControllerBox.Controls.AddRange(new NesSchema().GetPads().ToArray());
break;
case "N64":
ControllerBox.Controls.Add(new VirtualPad(
diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs
index befd8a11d5..90f9bdd6c8 100644
--- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs
+++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs
@@ -96,8 +96,7 @@ namespace BizHawk.Client.EmuHawk
public void Clear()
{
- X = 0;
- Y = 0;
+ // Nothing to do
}
private void UpdatePanelFromNumeric()
diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/IVirtualPadSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/IVirtualPadSchema.cs
new file mode 100644
index 0000000000..2777927bf2
--- /dev/null
+++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/IVirtualPadSchema.cs
@@ -0,0 +1,9 @@
+using System.Collections.Generic;
+
+namespace BizHawk.Client.EmuHawk
+{
+ public interface IVirtualPadSchema
+ {
+ IEnumerable GetPads();
+ }
+}
diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/NesSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/NesSchema.cs
index 3ae39d47d9..c143c0ca66 100644
--- a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/NesSchema.cs
+++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/NesSchema.cs
@@ -1,10 +1,24 @@
-using System.Drawing;
+using System.Collections.Generic;
+using System.Drawing;
namespace BizHawk.Client.EmuHawk
{
- public static class NesSchema
+ public class NesSchema : IVirtualPadSchema
{
- public static PadSchema StandardController(int controller)
+ public IEnumerable GetPads()
+ {
+ yield return new VirtualPad(StandardController(1))
+ {
+ Location = new Point(15, 15)
+ };
+
+ yield return new VirtualPad(Zapper(2))
+ {
+ Location = new Point(200, 15)
+ };
+ }
+
+ private static PadSchema StandardController(int controller)
{
return new PadSchema
{
@@ -76,8 +90,7 @@ namespace BizHawk.Client.EmuHawk
};
}
- // TODO
- public static PadSchema Zapper(int controller)
+ private static PadSchema Zapper(int controller)
{
return new PadSchema
{
@@ -109,13 +122,13 @@ namespace BizHawk.Client.EmuHawk
}
// TODO
- public static PadSchema ArkanoidPaddle()
+ private static PadSchema ArkanoidPaddle()
{
return new PadSchema();
}
// TODO
- public static PadSchema PowerPad()
+ private static PadSchema PowerPad()
{
return new PadSchema();
}