N64: Some improvements to the virtual pad. 4 pads are now shown and work, input display works

This commit is contained in:
pjgat09 2013-05-20 01:53:02 +00:00
parent ac9d053895
commit 1e1466a0f9
4 changed files with 44 additions and 11 deletions

View File

@ -92,5 +92,13 @@ namespace BizHawk.MultiClient
Refresh(); Refresh();
} }
public void SetPosition(int Xval, int Yval)
{
X = Xval;
Y = Yval;
Refresh();
}
} }
} }

View File

@ -174,12 +174,18 @@ namespace BizHawk.MultiClient
ControllerBox.Controls.Add(_ataripad2); ControllerBox.Controls.Add(_ataripad2);
break; break;
case "N64": case "N64":
VirtualPadN64 n64k = new VirtualPadN64 VirtualPadN64 n64pad1 = new VirtualPadN64 { Location = new Point(8, 19), Controller = "P1" };
{ VirtualPadN64 n64pad2 = new VirtualPadN64 { Location = new Point(208, 19), Controller = "P2" };
Location = new Point(8, 19) VirtualPadN64 n64pad3 = new VirtualPadN64 { Location = new Point(408, 19), Controller = "P3" };
}; VirtualPadN64 n64pad4 = new VirtualPadN64 { Location = new Point(608, 19), Controller = "P4" };
Pads.Add(n64k); Pads.Add(n64pad1);
ControllerBox.Controls.Add(n64k); 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; break;
} }
@ -276,6 +282,12 @@ namespace BizHawk.MultiClient
break; break;
case "C64": case "C64":
break; 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;
} }
} }
} }

View File

@ -244,7 +244,7 @@
this.Controls.Add(this.PU); this.Controls.Add(this.PU);
this.Controls.Add(this.AnalogControl1); this.Controls.Add(this.AnalogControl1);
this.Name = "VirtualPadN64"; 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.Load += new System.EventHandler(this.UserControl1_Load);
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();

View File

@ -106,6 +106,19 @@ namespace BizHawk.MultiClient
if (buttons[11] == '.') CD.Checked = false; else CD.Checked = true; if (buttons[11] == '.') CD.Checked = false; else CD.Checked = true;
if (buttons[12] == '.') CL.Checked = false; else CL.Checked = true; if (buttons[12] == '.') CL.Checked = false; else CL.Checked = true;
if (buttons[13] == '.') CR.Checked = false; else CR.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() public string GetMnemonic()
@ -199,14 +212,14 @@ namespace BizHawk.MultiClient
private void AnalogControl1_MouseClick(object sender, MouseEventArgs e) private void AnalogControl1_MouseClick(object sender, MouseEventArgs e)
{ {
Global.StickyXORAdapter.SetFloat("P1 X Axis", AnalogControl1.X); Global.StickyXORAdapter.SetFloat(Controller + " X Axis", AnalogControl1.X);
Global.StickyXORAdapter.SetFloat("P1 Y Axis", -AnalogControl1.Y - 1); Global.StickyXORAdapter.SetFloat(Controller + " Y Axis", -AnalogControl1.Y - 1);
} }
private void AnalogControl1_MouseMove(object sender, MouseEventArgs e) private void AnalogControl1_MouseMove(object sender, MouseEventArgs e)
{ {
Global.StickyXORAdapter.SetFloat("P1 X Axis", AnalogControl1.X); Global.StickyXORAdapter.SetFloat(Controller + " X Axis", AnalogControl1.X);
Global.StickyXORAdapter.SetFloat("P1 Y Axis", -AnalogControl1.Y - 1); Global.StickyXORAdapter.SetFloat(Controller + " Y Axis", -AnalogControl1.Y - 1);
} }
} }
} }