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

View File

@ -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();

View File

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