From 1e1466a0f91750446d7dc3def26f3760d71b9619 Mon Sep 17 00:00:00 2001 From: pjgat09 Date: Mon, 20 May 2013 01:53:02 +0000 Subject: [PATCH] N64: Some improvements to the virtual pad. 4 pads are now shown and work, input display works --- .../tools/AnalogControlPanel.cs | 8 +++++++ BizHawk.MultiClient/tools/VirtualPadForm.cs | 24 ++++++++++++++----- .../tools/VirtualPadN64.Designer.cs | 2 +- BizHawk.MultiClient/tools/VirtualPadN64.cs | 21 ++++++++++++---- 4 files changed, 44 insertions(+), 11 deletions(-) diff --git a/BizHawk.MultiClient/tools/AnalogControlPanel.cs b/BizHawk.MultiClient/tools/AnalogControlPanel.cs index 875eb894c1..1a32f8fbcd 100644 --- a/BizHawk.MultiClient/tools/AnalogControlPanel.cs +++ b/BizHawk.MultiClient/tools/AnalogControlPanel.cs @@ -92,5 +92,13 @@ namespace BizHawk.MultiClient Refresh(); } + + public void SetPosition(int Xval, int Yval) + { + X = Xval; + Y = Yval; + + Refresh(); + } } } diff --git a/BizHawk.MultiClient/tools/VirtualPadForm.cs b/BizHawk.MultiClient/tools/VirtualPadForm.cs index 8b09551ad5..936562f80b 100644 --- a/BizHawk.MultiClient/tools/VirtualPadForm.cs +++ b/BizHawk.MultiClient/tools/VirtualPadForm.cs @@ -174,12 +174,18 @@ namespace BizHawk.MultiClient ControllerBox.Controls.Add(_ataripad2); break; case "N64": - VirtualPadN64 n64k = new VirtualPadN64 - { - Location = new Point(8, 19) - }; - Pads.Add(n64k); - ControllerBox.Controls.Add(n64k); + VirtualPadN64 n64pad1 = new VirtualPadN64 { Location = new Point(8, 19), Controller = "P1" }; + VirtualPadN64 n64pad2 = new VirtualPadN64 { Location = new Point(208, 19), Controller = "P2" }; + VirtualPadN64 n64pad3 = new VirtualPadN64 { Location = new Point(408, 19), Controller = "P3" }; + VirtualPadN64 n64pad4 = new VirtualPadN64 { Location = new Point(608, 19), Controller = "P4" }; + Pads.Add(n64pad1); + Pads.Add(n64pad2); + Pads.Add(n64pad3); + Pads.Add(n64pad4); + ControllerBox.Controls.Add(n64pad1); + ControllerBox.Controls.Add(n64pad2); + ControllerBox.Controls.Add(n64pad3); + ControllerBox.Controls.Add(n64pad4); break; } @@ -276,6 +282,12 @@ namespace BizHawk.MultiClient break; case "C64": break; + case "N64": + Pads[0].SetButtons(str.Substring(3, 20)); + Pads[1].SetButtons(str.Substring(24, 20)); + Pads[2].SetButtons(str.Substring(45, 20)); + Pads[3].SetButtons(str.Substring(66, 20)); + break; } } } diff --git a/BizHawk.MultiClient/tools/VirtualPadN64.Designer.cs b/BizHawk.MultiClient/tools/VirtualPadN64.Designer.cs index 13ebe9a1e6..d8e217a5f4 100644 --- a/BizHawk.MultiClient/tools/VirtualPadN64.Designer.cs +++ b/BizHawk.MultiClient/tools/VirtualPadN64.Designer.cs @@ -244,7 +244,7 @@ this.Controls.Add(this.PU); this.Controls.Add(this.AnalogControl1); this.Name = "VirtualPadN64"; - this.Size = new System.Drawing.Size(201, 332); + this.Size = new System.Drawing.Size(200, 332); this.Load += new System.EventHandler(this.UserControl1_Load); this.ResumeLayout(false); this.PerformLayout(); diff --git a/BizHawk.MultiClient/tools/VirtualPadN64.cs b/BizHawk.MultiClient/tools/VirtualPadN64.cs index a5b83e6a78..fe5ad29bf6 100644 --- a/BizHawk.MultiClient/tools/VirtualPadN64.cs +++ b/BizHawk.MultiClient/tools/VirtualPadN64.cs @@ -106,6 +106,19 @@ namespace BizHawk.MultiClient if (buttons[11] == '.') CD.Checked = false; else CD.Checked = true; if (buttons[12] == '.') CL.Checked = false; else CL.Checked = true; if (buttons[13] == '.') CR.Checked = false; else CR.Checked = true; + + int x = 0; + int y = 0; + if (InputValidate.IsValidUnsignedNumber(buttons.Substring(14, 3))) + { + x = Int32.Parse(buttons.Substring(14, 3)) - 128; + + } + if (InputValidate.IsValidUnsignedNumber(buttons.Substring(17, 3))) + { + y = Int32.Parse(buttons.Substring(17, 3)) - 128; + } + AnalogControl1.SetPosition(x, y); } public string GetMnemonic() @@ -199,14 +212,14 @@ namespace BizHawk.MultiClient private void AnalogControl1_MouseClick(object sender, MouseEventArgs e) { - Global.StickyXORAdapter.SetFloat("P1 X Axis", AnalogControl1.X); - Global.StickyXORAdapter.SetFloat("P1 Y Axis", -AnalogControl1.Y - 1); + Global.StickyXORAdapter.SetFloat(Controller + " X Axis", AnalogControl1.X); + Global.StickyXORAdapter.SetFloat(Controller + " Y Axis", -AnalogControl1.Y - 1); } private void AnalogControl1_MouseMove(object sender, MouseEventArgs e) { - Global.StickyXORAdapter.SetFloat("P1 X Axis", AnalogControl1.X); - Global.StickyXORAdapter.SetFloat("P1 Y Axis", -AnalogControl1.Y - 1); + Global.StickyXORAdapter.SetFloat(Controller + " X Axis", AnalogControl1.X); + Global.StickyXORAdapter.SetFloat(Controller + " Y Axis", -AnalogControl1.Y - 1); } } }