-Fixed InputConfig_Load...forgot that the switch syntax from before acts like an OR statement; I thought it meant "don't do anything".

-PCE.
This commit is contained in:
brandman211 2012-03-25 01:58:33 +00:00
parent 6b9024dd5c
commit 4f2ebdfbd4
1 changed files with 39 additions and 142 deletions

View File

@ -19,7 +19,6 @@ namespace BizHawk.MultiClient
int prevWidth;
int prevHeight;
const string ControllerStr = "Configure Controllers - ";
public static string[] PCEControlList = new string[] { "Up", "Down", "Left", "Right", "I", "II", "Run", "Select" };
public static string[] GenesisControlList = new string[] { "Up", "Down", "Left", "Right", "A", "B", "C", "Start", };
public static string[] NESControlList = new string[] { "Up", "Down", "Left", "Right", "A", "B", "Select", "Start" };
public static string[] TI83ControlList = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "ON",
@ -30,7 +29,7 @@ namespace BizHawk.MultiClient
{
{"Genesis 3-Button", new string[8] { "Up", "Down", "Left", "Right", "A", "B", "C", "Start", } },
{"NES", new string[8] { "Up", "Down", "Left", "Right", "A", "B", "Select", "Start" } },
{"PC Engine", new string[8] { "Up", "Down", "Left", "Right", "I", "II", "Run", "Select" } },
{"PC Engine / SGX", new string[8] { "Up", "Down", "Left", "Right", "I", "II", "Run", "Select" } },
{"SMS / GG / SG-1000", new string[8] { "Up", "Down", "Left", "Right", "B1", "B2", "Pause", "Reset" } },
{
// TODO: display shift / alpha names too, Also order these like on the calculator
@ -42,7 +41,7 @@ namespace BizHawk.MultiClient
};
public static readonly Dictionary<string, int> PADS = new Dictionary<string, int>()
{
{"NES", 4}, {"SMS / GG / SG-1000", 2}
{"NES", 4}, {"PC Engine / SGX", 5}, {"SMS / GG / SG-1000", 2}
};
public static string[] AtariControlList = new string[] { "Up", "Down", "Left", "Right", "Button" };
private ArrayList Labels;
@ -184,128 +183,6 @@ namespace BizHawk.MultiClient
}
}
private void DoPCE()
{
Label TempLabel;
InputWidget TempTextBox;
this.Text = ControllerStr + "PCE Engine / SuperGrafx";
ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.PCEngineController;
int jpad = this.ControllComboBox.SelectedIndex;
string[] ButtonMappings = new string[PCEControlList.Length];
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++)
{
TempLabel = new Label();
TempLabel.Text = PCEControlList[i];
TempLabel.Location = new Point(8, 20 + (i * 24));
Labels.Add(TempLabel);
TempTextBox = new InputWidget();
TempTextBox.Location = new Point(48, 20 + (i * 24));
TextBoxes.Add(TempTextBox);
TempTextBox.SetBindings(ButtonMappings[i]);
ButtonsGroupBox.Controls.Add(TempTextBox);
ButtonsGroupBox.Controls.Add(TempLabel);
}
Changed = true;
}
private void UpdatePCE(int prev)
{
ButtonsGroupBox.Controls.Clear();
InputWidget TempBox;
Label TempLabel;
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;
TempLabel.Dispose();
}
}
private void DoGen()
{
Label TempLabel;
@ -742,18 +619,22 @@ namespace BizHawk.MultiClient
case "NES":
ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.NESController;
controller = Global.Config.NESController;
mainController = controller;
autoController = Global.Config.NESAutoController;
break;
case "PC Engine / SGX":
ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.PCEngineController;
controller = Global.Config.PCEController;
autoController = Global.Config.PCEAutoController;
break;
case "SMS / GG / SG-1000":
ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.SMSController;
controller = Global.Config.SMSController;
mainController = controller;
autoController = Global.Config.SMSAutoController;
break;
default:
return;
}
mainController = controller;
int jpad = this.ControllComboBox.SelectedIndex;
if (jpad >= PADS[platform])
{
@ -765,6 +646,9 @@ namespace BizHawk.MultiClient
case "NES":
IDX_CONTROLLERENABLED.Checked = ((NESControllerTemplate)mainController[jpad]).Enabled;
break;
case "PC Engine / SGX":
IDX_CONTROLLERENABLED.Checked = ((PCEControllerTemplate)mainController[jpad]).Enabled;
break;
case "SMS / GG / SG-1000":
IDX_CONTROLLERENABLED.Checked = ((SMSControllerTemplate)mainController[jpad]).Enabled;
break;
@ -790,6 +674,12 @@ namespace BizHawk.MultiClient
field = obj.GetType().GetField(fieldName).GetValue(obj);
break;
}
case "PC Engine / SGX":
{
PCEControllerTemplate obj = (PCEControllerTemplate)controller[jpad];
field = obj.GetType().GetField(fieldName).GetValue(obj);
break;
}
case "SMS / GG / SG-1000":
{
if (button < 6)
@ -821,17 +711,20 @@ namespace BizHawk.MultiClient
{
case "NES":
controller = Global.Config.NESController;
mainController = controller;
autoController = Global.Config.NESAutoController;
break;
case "PC Engine / SGX":
controller = Global.Config.PCEController;
autoController = Global.Config.PCEAutoController;
break;
case "SMS / GG / SG-1000":
controller = Global.Config.SMSController;
mainController = controller;
autoController = Global.Config.SMSAutoController;
break;
default:
return;
}
mainController = controller;
if (prev >= PADS[platform])
{
prev -= PADS[platform];
@ -842,6 +735,9 @@ namespace BizHawk.MultiClient
case "NES":
((NESControllerTemplate)mainController[prev]).Enabled = IDX_CONTROLLERENABLED.Checked;
break;
case "PC Engine / SGX":
((PCEControllerTemplate)mainController[prev]).Enabled = IDX_CONTROLLERENABLED.Checked;
break;
case "SMS / GG / SG-1000":
((SMSControllerTemplate)mainController[prev]).Enabled = IDX_CONTROLLERENABLED.Checked;
break;
@ -861,6 +757,14 @@ namespace BizHawk.MultiClient
buttonField.SetValue(obj, AppendButtonMapping(TempBox.Text, (string)field));
break;
}
case "PC Engine / SGX":
{
PCEControllerTemplate obj = (PCEControllerTemplate)controller[prev];
FieldInfo buttonField = obj.GetType().GetField(fieldName);
field = buttonField.GetValue(obj);
buttonField.SetValue(obj, AppendButtonMapping(TempBox.Text, (string)field));
break;
}
case "SMS / GG / SG-1000":
{
if (button < 6)
@ -899,7 +803,8 @@ namespace BizHawk.MultiClient
Dictionary<string, string> systems = new Dictionary<string, string>()
{
{"A26", "Atari"}, {"GB", "Gameboy"}, {"GEN", "Sega Genesis"}, {"GG", "SMS / GG / SG-1000"}, {"NES", "NES"},
{"SGX", "PC Engine / SGX"}, {"TI83", "TI-83"}
{"PCE", "PC Engine / SGX"}, {"SG", "SMS / GG / SG-1000"}, {"SGX", "PC Engine / SGX"},
{"SMS", "SMS / GG / SG-1000"}, {"TI83", "TI-83"}
};
if (systems.ContainsKey(Global.Game.System))
this.SystemComboBox.SelectedIndex = SystemComboBox.Items.IndexOf(systems[Global.Game.System]);
@ -994,12 +899,11 @@ namespace BizHawk.MultiClient
}
switch (SystemComboBox.SelectedItem.ToString())
{
case "NES":
case "PC Engine / SGX":
case "SMS / GG / SG-1000":
Do(SystemComboBox.SelectedItem.ToString());
break;
case "PC Engine / SGX":
DoPCE();
break;
case "Gameboy":
DoGameBoy();
break;
@ -1009,9 +913,6 @@ namespace BizHawk.MultiClient
case "TI-83":
DoTI83();
break;
case "NES":
Do(SystemComboBox.SelectedItem.ToString());
break;
case "Atari":
DoAtari();
break;
@ -1023,12 +924,11 @@ namespace BizHawk.MultiClient
{
switch (CurSelectConsole)
{
case "NES":
case "PC Engine / SGX":
case "SMS / GG / SG-1000":
Update(CurSelectController, CurSelectConsole);
break;
case "PC Engine / SGX":
UpdatePCE(CurSelectController);
break;
case "Gameboy":
UpdateGameBoy();
break;
@ -1038,9 +938,6 @@ namespace BizHawk.MultiClient
case "TI-83":
UpdateTI83();
break;
case "NES":
Update(CurSelectController, CurSelectConsole);
break;
case "Atari":
UpdateAtari(CurSelectController);
break;