diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
index 94528d9ba7..bf384a4f7c 100644
--- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
+++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
@@ -879,7 +879,7 @@
TraceLogger.cs
-
+
Component
diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs
index e3e6351e7e..f0ee21f6ae 100644
--- a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs
+++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs
@@ -45,7 +45,7 @@ namespace BizHawk.Client.EmuHawk
});
break;
case PadSchema.PadInputType.AnalogStick:
- Controls.Add(new VirtualPadAnalogStick
+ Controls.Add(new AnalogStickPanel
{
Name = button.Name,
Location = button.Location
diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/AnalogControlPanel.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/AnalogSticklPanel.cs
similarity index 83%
rename from BizHawk.Client.EmuHawk/tools/VirtualPads/controls/AnalogControlPanel.cs
rename to BizHawk.Client.EmuHawk/tools/VirtualPads/controls/AnalogSticklPanel.cs
index 08e318483d..6c79554214 100644
--- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/AnalogControlPanel.cs
+++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/AnalogSticklPanel.cs
@@ -5,12 +5,11 @@ using BizHawk.Client.Common;
namespace BizHawk.Client.EmuHawk
{
- public sealed class VirtualPadAnalogStick : Panel, IVirtualPadControl
+ public sealed class AnalogStickPanel : Panel, IVirtualPadControl
{
public int X = 0;
public int Y = 0;
public bool HasValue = false;
- public string Controller = "P1";
private readonly Brush _white_brush = Brushes.White;
private readonly Brush _black_brush = Brushes.Black;
@@ -23,7 +22,7 @@ namespace BizHawk.Client.EmuHawk
private readonly Bitmap dot = new Bitmap(7, 7);
private readonly Bitmap graydot = new Bitmap(7, 7);
- public VirtualPadAnalogStick()
+ public AnalogStickPanel()
{
Size = new Size(129, 129);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
@@ -75,6 +74,21 @@ namespace BizHawk.Client.EmuHawk
return ret;
}
+ protected override void OnMouseClick(MouseEventArgs e)
+ {
+ SetAnalog();
+ }
+
+ private void SetAnalog()
+ {
+ int? xn = HasValue ? X : (int?)null;
+ int? yn = HasValue ? Y : (int?)null;
+ Global.StickyXORAdapter.SetFloat(Name, xn);
+ Global.StickyXORAdapter.SetFloat(Name.Replace("X", "Y"), yn); // Hack!
+
+ Refresh();
+ }
+
private void AnalogControlPanel_Paint(object sender, PaintEventArgs e)
{
unchecked
@@ -90,8 +104,8 @@ namespace BizHawk.Client.EmuHawk
{
var input = Global.MovieSession.Movie.GetInputState(Global.Emulator.Frame - 1);
- var x = input.GetFloat(Controller + " X Axis");
- var y = input.GetFloat(Controller + " Y Axis");
+ var x = input.GetFloat(Name);
+ var y = input.GetFloat(Name.Replace("X", "Y")); // Hack!
var xx = RealToGFX((int)x);
var yy = RealToGFX((int)y);
@@ -116,14 +130,14 @@ namespace BizHawk.Client.EmuHawk
X = GFXToReal(e.X - 64);
Y = GFXToReal(-(e.Y - 63));
HasValue = true;
+ SetAnalog();
}
- if (e.Button == MouseButtons.Right)
+ else if (e.Button == MouseButtons.Right)
{
Clear();
}
Refresh();
-
base.OnMouseMove(e);
}
@@ -142,6 +156,7 @@ namespace BizHawk.Client.EmuHawk
//dont let parent controls get this.. we handle the right mouse button ourselves
return;
}
+
base.WndProc(ref m);
}