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); }