Clean up virtualpads to use StickyXORAdapter, have a Clear() function, and to be aware of what controller they are using

This commit is contained in:
andres.delikat 2011-07-24 20:17:21 +00:00
parent 06d8792830
commit ea472ee043
4 changed files with 92 additions and 14 deletions

View File

@ -107,8 +107,10 @@ namespace BizHawk.MultiClient
case "NES":
VirtualPadNES nespad1 = new VirtualPadNES();
nespad1.Location = new Point(8, 19);
nespad1.Controller = "P1";
VirtualPadNES nespad2 = new VirtualPadNES();
nespad2.Location = new Point(188, 19);
nespad2.Controller = "P2";
Pads.Add(nespad1);
Pads.Add(nespad2);
ControllerBox.Controls.Add(Pads[0]);
@ -142,6 +144,9 @@ namespace BizHawk.MultiClient
Global.Config.TASWndy = this.Location.Y;
Global.Config.TASWidth = this.Right - this.Left;
Global.Config.TASHeight = this.Bottom - this.Top;
for (int x = 0; x < Pads.Count; x++)
Pads[x].Clear();
}
public void Restart()

View File

@ -26,6 +26,7 @@ namespace BizHawk.MultiClient
public CheckBox B6;
public CheckBox B7;
public CheckBox B8;
public string Controller;
public VirtualPad()
{
@ -34,11 +35,30 @@ namespace BizHawk.MultiClient
SetStyle(ControlStyles.DoubleBuffer, true);
this.BorderStyle = BorderStyle.Fixed3D;
this.Size = new Size(174, 74);
Controller = "P1";
}
public virtual string GetMnemonic()
{
return "......|";
}
public virtual void Clear()
{
PU.Checked = false;
PD.Checked = false;
PL.Checked = false;
PR.Checked = false;
B1.Checked = false;
B2.Checked = false;
B3.Checked = false;
B4.Checked = false;
B5.Checked = false;
B6.Checked = false;
B7.Checked = false;
B8.Checked = false;
}
}
}

View File

@ -172,22 +172,48 @@ namespace BizHawk.MultiClient
{
if (Global.Emulator.SystemId != "NES") return;
if (sender == PU)
Global.ActiveController.SetSticky("Up", PU.Checked);
Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked);
else if (sender == PD)
Global.ActiveController.SetSticky("Down", PD.Checked);
Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked);
else if (sender == PL)
Global.ActiveController.SetSticky("Left", PL.Checked);
Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked);
else if (sender == PR)
Global.ActiveController.SetSticky("Right", PR.Checked);
Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked);
else if (sender == B1)
Global.ActiveController.SetSticky("Select", B1.Checked);
Global.StickyXORAdapter.SetSticky(Controller + " Select", B1.Checked);
else if (sender == B2)
Global.ActiveController.SetSticky("Start", B2.Checked);
Global.StickyXORAdapter.SetSticky(Controller + " Start", B2.Checked);
else if (sender == B3)
Global.ActiveController.SetSticky("B", B3.Checked);
Global.StickyXORAdapter.SetSticky(Controller + " B", B3.Checked);
else if (sender == B4)
Global.ActiveController.SetSticky("A", B4.Checked);
Global.StickyXORAdapter.SetSticky(Controller + " A", B4.Checked);
}
public override void Clear()
{
if (Global.Emulator.SystemId != "NES") return;
PU.Checked = false;
PD.Checked = false;
PL.Checked = false;
PR.Checked = false;
B1.Checked = false;
B2.Checked = false;
B3.Checked = false;
B4.Checked = false;
B5.Checked = false;
B6.Checked = false;
B7.Checked = false;
B8.Checked = false;
Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
Global.StickyXORAdapter.SetSticky(Controller + " Select", false);
Global.StickyXORAdapter.SetSticky(Controller + " Start", false);
Global.StickyXORAdapter.SetSticky(Controller + " B", false);
Global.StickyXORAdapter.SetSticky(Controller + " A", false);
}
}
}

View File

@ -148,17 +148,44 @@ namespace BizHawk.MultiClient
{
if (Global.Emulator.SystemId != "SMS") return;
if (sender == PU)
Global.ActiveController.SetSticky("Up", PU.Checked);
Global.StickyXORAdapter.SetSticky(Controller + "Up", PU.Checked);
else if (sender == PD)
Global.ActiveController.SetSticky("Down", PD.Checked);
Global.StickyXORAdapter.SetSticky(Controller + "Down", PD.Checked);
else if (sender == PL)
Global.ActiveController.SetSticky("Left", PL.Checked);
Global.StickyXORAdapter.SetSticky(Controller + "Left", PL.Checked);
else if (sender == PR)
Global.ActiveController.SetSticky("Right", PR.Checked);
Global.StickyXORAdapter.SetSticky(Controller + "Right", PR.Checked);
else if (sender == B1)
Global.ActiveController.SetSticky("1", B3.Checked);
Global.StickyXORAdapter.SetSticky(Controller + "B1", B3.Checked);
else if (sender == B2)
Global.ActiveController.SetSticky("2", B4.Checked);
Global.StickyXORAdapter.SetSticky(Controller + "B2", B4.Checked);
}
public override void Clear()
{
if (Global.Emulator.SystemId != "SMS") return; //TODO: GG & SG can share pad?
PU.Checked = false;
PD.Checked = false;
PL.Checked = false;
PR.Checked = false;
B1.Checked = false;
B2.Checked = false;
B3.Checked = false;
B4.Checked = false;
B5.Checked = false;
B6.Checked = false;
B7.Checked = false;
B8.Checked = false;
Global.StickyXORAdapter.SetSticky(Controller + " Up", false);
Global.StickyXORAdapter.SetSticky(Controller + " Down", false);
Global.StickyXORAdapter.SetSticky(Controller + " Left", false);
Global.StickyXORAdapter.SetSticky(Controller + " Right", false);
Global.StickyXORAdapter.SetSticky(Controller + " Select", false);
Global.StickyXORAdapter.SetSticky(Controller + " Start", false);
Global.StickyXORAdapter.SetSticky(Controller + " B1", false);
Global.StickyXORAdapter.SetSticky(Controller + " B2", false);
}
}
}