Autofire UI for PCE, GG, GB

This commit is contained in:
andres.delikat 2011-08-09 02:40:22 +00:00
parent 71d3774ace
commit 8fa630c0fa
4 changed files with 131 additions and 36 deletions

View File

@ -23,9 +23,16 @@
NESAutoController[2] = new NESControllerTemplate(false);
NESAutoController[3] = new NESControllerTemplate(false);
SMSAutoController[0] = new SMSControllerTemplate(true);
SMSAutoController[0] = new SMSControllerTemplate(false);
SMSAutoController[1] = new SMSControllerTemplate(false);
PCEAutoController[0] = new PCEControllerTemplate(false);
PCEAutoController[1] = new PCEControllerTemplate(false);
PCEAutoController[2] = new PCEControllerTemplate(false);
PCEAutoController[3] = new PCEControllerTemplate(false);
PCEAutoController[4] = new PCEControllerTemplate(false);
GameBoyAutoController = new NESControllerTemplate(true);
}
// Directories
@ -404,6 +411,7 @@
// PCEngine Settings
public PCEControllerTemplate[] PCEController = new PCEControllerTemplate[5];
public PCEControllerTemplate[] PCEAutoController = new PCEControllerTemplate[5];
// Genesis Settings
public string GenP1Up = "UpArrow, J1 Up";
@ -417,6 +425,7 @@
//GameBoy Settings
public NESControllerTemplate GameBoyController = new NESControllerTemplate(true);
public NESControllerTemplate GameBoyAutoController = new NESControllerTemplate();
//NES settings
public string NESReset = "Backspace";
@ -428,6 +437,7 @@
//GB settings
public GBControllerTemplate GBController = new GBControllerTemplate();
public GBControllerTemplate GBAutoController = new GBControllerTemplate();
}
public class SMSControllerTemplate

View File

@ -26,6 +26,9 @@ namespace BizHawk.MultiClient
public static Controller AutofireNESControls;
public static Controller AutofireSMSControls;
public static Controller AutofirePCEControls;
public static Controller AutofireGBControls;
public static Controller AutofireGenControls;
//the movie will be spliced inbetween these if it is present
public static CopyControllerAdapter MovieInputSourceAdapter = new CopyControllerAdapter();

View File

@ -533,6 +533,22 @@ namespace BizHawk.MultiClient
}
Global.PCEControls = pceControls;
var apceControls = new Controller(PCEngine.PCEngineController);
apceControls.Autofire = true;
for (int i = 0; i < 5; i++)
{
apceControls.BindMulti("P" + (i + 1) + " Up", Global.Config.PCEAutoController[i].Up);
apceControls.BindMulti("P" + (i + 1) + " Down", Global.Config.PCEAutoController[i].Down);
apceControls.BindMulti("P" + (i + 1) + " Left", Global.Config.PCEAutoController[i].Left);
apceControls.BindMulti("P" + (i + 1) + " Right", Global.Config.PCEAutoController[i].Right);
apceControls.BindMulti("P" + (i + 1) + " B2", Global.Config.PCEAutoController[i].II);
apceControls.BindMulti("P" + (i + 1) + " B1", Global.Config.PCEAutoController[i].I);
apceControls.BindMulti("P" + (i + 1) + " Select", Global.Config.PCEAutoController[i].Select);
apceControls.BindMulti("P" + (i + 1) + " Run", Global.Config.PCEAutoController[i].Run);
}
Global.AutofirePCEControls = apceControls;
var nesControls = new Controller(NES.NESController);
for (int i = 0; i < 2 /*TODO*/; i++)
@ -575,6 +591,18 @@ namespace BizHawk.MultiClient
gbControls.BindMulti("Start", Global.Config.GBController.Start);
Global.GBControls = gbControls;
var agbControls = new Controller(Gameboy.GbController);
agbControls.Autofire = true;
agbControls.BindMulti("Up", Global.Config.GBAutoController.Up);
agbControls.BindMulti("Down", Global.Config.GBAutoController.Down);
agbControls.BindMulti("Left", Global.Config.GBAutoController.Left);
agbControls.BindMulti("Right", Global.Config.GBAutoController.Right);
agbControls.BindMulti("A", Global.Config.GBAutoController.A);
agbControls.BindMulti("B", Global.Config.GBAutoController.B);
agbControls.BindMulti("Select", Global.Config.GBAutoController.Select);
agbControls.BindMulti("Start", Global.Config.GBAutoController.Start);
Global.AutofireGBControls = agbControls;
var genControls = new Controller(Genesis.GenesisController);
genControls.BindMulti("P1 Up", Global.Config.GenP1Up);
@ -796,15 +824,19 @@ namespace BizHawk.MultiClient
break;
case "GG":
Global.ActiveController = Global.SMSControls;
Global.AutoFireController = Global.AutofireSMSControls;
break;
case "PCE":
Global.ActiveController = Global.PCEControls;
Global.AutoFireController = Global.AutofirePCEControls;
break;
case "SGX":
Global.ActiveController = Global.PCEControls;
Global.AutoFireController = Global.AutofirePCEControls;
break;
case "GEN":
Global.ActiveController = Global.GenControls;
Global.AutoFireController = Global.AutofireGenControls;
break;
case "TI83":
Global.ActiveController = Global.TI83Controls;

View File

@ -191,15 +191,32 @@ namespace BizHawk.MultiClient
ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.PCEngineController;
int jpad = this.ControllComboBox.SelectedIndex;
string[] ButtonMappings = new string[PCEControlList.Length];
ButtonMappings[0] = Global.Config.PCEController[jpad].Up;
ButtonMappings[1] = Global.Config.PCEController[jpad].Down;
ButtonMappings[2] = Global.Config.PCEController[jpad].Left;
ButtonMappings[3] = Global.Config.PCEController[jpad].Right;
ButtonMappings[4] = Global.Config.PCEController[jpad].I;
ButtonMappings[5] = Global.Config.PCEController[jpad].II;
ButtonMappings[6] = Global.Config.PCEController[jpad].Run;
ButtonMappings[7] = Global.Config.PCEController[jpad].Select;
IDX_CONTROLLERENABLED.Checked = Global.Config.PCEController[jpad].Enabled;
if (jpad < 5)
{
ButtonMappings[0] = Global.Config.PCEController[jpad].Up;
ButtonMappings[1] = Global.Config.PCEController[jpad].Down;
ButtonMappings[2] = Global.Config.PCEController[jpad].Left;
ButtonMappings[3] = Global.Config.PCEController[jpad].Right;
ButtonMappings[4] = Global.Config.PCEController[jpad].I;
ButtonMappings[5] = Global.Config.PCEController[jpad].II;
ButtonMappings[6] = Global.Config.PCEController[jpad].Run;
ButtonMappings[7] = Global.Config.PCEController[jpad].Select;
IDX_CONTROLLERENABLED.Checked = Global.Config.PCEController[jpad].Enabled;
}
else
{
ButtonMappings[0] = Global.Config.PCEAutoController[jpad - 5].Up;
ButtonMappings[1] = Global.Config.PCEAutoController[jpad - 5].Down;
ButtonMappings[2] = Global.Config.PCEAutoController[jpad - 5].Left;
ButtonMappings[3] = Global.Config.PCEAutoController[jpad - 5].Right;
ButtonMappings[4] = Global.Config.PCEAutoController[jpad - 5].I;
ButtonMappings[5] = Global.Config.PCEAutoController[jpad - 5].II;
ButtonMappings[6] = Global.Config.PCEAutoController[jpad - 5].Run;
ButtonMappings[7] = Global.Config.PCEAutoController[jpad - 5].Select;
IDX_CONTROLLERENABLED.Checked = Global.Config.PCEAutoController[jpad - 5].Enabled;
}
Labels.Clear();
TextBoxes.Clear();
for (int i = 0; i < PCEControlList.Length; i++)
@ -222,31 +239,64 @@ namespace BizHawk.MultiClient
ButtonsGroupBox.Controls.Clear();
InputWidget TempBox;
Label TempLabel;
TempBox = TextBoxes[0] as InputWidget;
Global.Config.PCEController[prev].Up = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Up);
TempBox.Dispose();
TempBox = TextBoxes[1] as InputWidget;
Global.Config.PCEController[prev].Down = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Down);
TempBox.Dispose();
TempBox = TextBoxes[2] as InputWidget;
Global.Config.PCEController[prev].Left = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Left);
TempBox.Dispose();
TempBox = TextBoxes[3] as InputWidget;
Global.Config.PCEController[prev].Right = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Right);
TempBox.Dispose();
TempBox = TextBoxes[4] as InputWidget;
Global.Config.PCEController[prev].I = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].I);
TempBox.Dispose();
TempBox = TextBoxes[5] as InputWidget;
Global.Config.PCEController[prev].II = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].II);
TempBox.Dispose();
TempBox = TextBoxes[6] as InputWidget;
Global.Config.PCEController[prev].Run = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Run);
TempBox.Dispose();
TempBox = TextBoxes[7] as InputWidget;
Global.Config.PCEController[prev].Select = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Select);
TempBox.Dispose();
Global.Config.PCEController[prev].Enabled = IDX_CONTROLLERENABLED.Checked;
if (prev < 5)
{
TempBox = TextBoxes[0] as InputWidget;
Global.Config.PCEController[prev].Up = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Up);
TempBox.Dispose();
TempBox = TextBoxes[1] as InputWidget;
Global.Config.PCEController[prev].Down = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Down);
TempBox.Dispose();
TempBox = TextBoxes[2] as InputWidget;
Global.Config.PCEController[prev].Left = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Left);
TempBox.Dispose();
TempBox = TextBoxes[3] as InputWidget;
Global.Config.PCEController[prev].Right = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Right);
TempBox.Dispose();
TempBox = TextBoxes[4] as InputWidget;
Global.Config.PCEController[prev].I = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].I);
TempBox.Dispose();
TempBox = TextBoxes[5] as InputWidget;
Global.Config.PCEController[prev].II = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].II);
TempBox.Dispose();
TempBox = TextBoxes[6] as InputWidget;
Global.Config.PCEController[prev].Run = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Run);
TempBox.Dispose();
TempBox = TextBoxes[7] as InputWidget;
Global.Config.PCEController[prev].Select = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Select);
TempBox.Dispose();
Global.Config.PCEController[prev].Enabled = IDX_CONTROLLERENABLED.Checked;
}
else
{
TempBox = TextBoxes[0] as InputWidget;
Global.Config.PCEAutoController[prev - 5].Up = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Up);
TempBox.Dispose();
TempBox = TextBoxes[1] as InputWidget;
Global.Config.PCEAutoController[prev - 5].Down = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Down);
TempBox.Dispose();
TempBox = TextBoxes[2] as InputWidget;
Global.Config.PCEAutoController[prev - 5].Left = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Left);
TempBox.Dispose();
TempBox = TextBoxes[3] as InputWidget;
Global.Config.PCEAutoController[prev - 5].Right = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Right);
TempBox.Dispose();
TempBox = TextBoxes[4] as InputWidget;
Global.Config.PCEAutoController[prev - 5].I = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].I);
TempBox.Dispose();
TempBox = TextBoxes[5] as InputWidget;
Global.Config.PCEAutoController[prev - 5].II = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].II);
TempBox.Dispose();
TempBox = TextBoxes[6] as InputWidget;
Global.Config.PCEAutoController[prev - 5].Run = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Run);
TempBox.Dispose();
TempBox = TextBoxes[7] as InputWidget;
Global.Config.PCEAutoController[prev - 5].Select = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Select);
TempBox.Dispose();
Global.Config.PCEAutoController[prev - 5].Enabled = IDX_CONTROLLERENABLED.Checked;
}
for (int i = 0; i < PCEControlList.Length; i++)
{
TempLabel = Labels[i] as Label;