Converting merges one at a time...here's SMS.
-Because of Reset and Pause being separate from everything else, I had to code a special condition for these. -Line count: 1081.
This commit is contained in:
parent
8686cc87ff
commit
1d21a89f3a
|
@ -19,7 +19,6 @@ namespace BizHawk.MultiClient
|
||||||
int prevWidth;
|
int prevWidth;
|
||||||
int prevHeight;
|
int prevHeight;
|
||||||
const string ControllerStr = "Configure Controllers - ";
|
const string ControllerStr = "Configure Controllers - ";
|
||||||
public static string[] SMSControlList = new string[] { "Up", "Down", "Left", "Right", "B1", "B2", "Pause", "Reset" };
|
|
||||||
public static string[] PCEControlList = new string[] { "Up", "Down", "Left", "Right", "I", "II", "Run", "Select" };
|
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[] 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[] NESControlList = new string[] { "Up", "Down", "Left", "Right", "A", "B", "Select", "Start" };
|
||||||
|
@ -32,7 +31,7 @@ namespace BizHawk.MultiClient
|
||||||
{"Genesis 3-Button", new string[8] { "Up", "Down", "Left", "Right", "A", "B", "C", "Start", } },
|
{"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" } },
|
{"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", new string[8] { "Up", "Down", "Left", "Right", "I", "II", "Run", "Select" } },
|
||||||
{"SMS", new string[8] { "Up", "Down", "Left", "Right", "B1", "B2", "Pause", "Reset" } },
|
{"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
|
// TODO: display shift / alpha names too, Also order these like on the calculator
|
||||||
"TI83", new string[50] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "ON",
|
"TI83", new string[50] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "ON",
|
||||||
|
@ -41,6 +40,10 @@ namespace BizHawk.MultiClient
|
||||||
"TRACE", "ZOOM", "WINDOW", "Y", "2nd", "MODE", "Del", ",", "SIN" }
|
"TRACE", "ZOOM", "WINDOW", "Y", "2nd", "MODE", "Del", ",", "SIN" }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
public static readonly Dictionary<string, int> PADS = new Dictionary<string, int>()
|
||||||
|
{
|
||||||
|
{"NES", 4}, {"SMS / GG / SG-1000", 2}
|
||||||
|
};
|
||||||
public static string[] AtariControlList = new string[] { "Up", "Down", "Left", "Right", "Button" };
|
public static string[] AtariControlList = new string[] { "Up", "Down", "Left", "Right", "Button" };
|
||||||
private ArrayList Labels;
|
private ArrayList Labels;
|
||||||
private ArrayList TextBoxes;
|
private ArrayList TextBoxes;
|
||||||
|
@ -181,128 +184,6 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DoSMS()
|
|
||||||
{
|
|
||||||
Label TempLabel;
|
|
||||||
InputWidget TempTextBox;
|
|
||||||
this.Text = ControllerStr + "SMS / GG / SG-1000";
|
|
||||||
ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.SMSController;
|
|
||||||
|
|
||||||
int jpad = this.ControllComboBox.SelectedIndex;
|
|
||||||
string[] ButtonMappings = new string[SMSControlList.Length];
|
|
||||||
|
|
||||||
if (jpad < 2)
|
|
||||||
{
|
|
||||||
ButtonMappings[0] = Global.Config.SMSController[jpad].Up;
|
|
||||||
ButtonMappings[1] = Global.Config.SMSController[jpad].Down;
|
|
||||||
ButtonMappings[2] = Global.Config.SMSController[jpad].Left;
|
|
||||||
ButtonMappings[3] = Global.Config.SMSController[jpad].Right;
|
|
||||||
ButtonMappings[4] = Global.Config.SMSController[jpad].B1;
|
|
||||||
ButtonMappings[5] = Global.Config.SMSController[jpad].B2;
|
|
||||||
ButtonMappings[6] = Global.Config.SmsPause;
|
|
||||||
ButtonMappings[7] = Global.Config.SmsReset;
|
|
||||||
IDX_CONTROLLERENABLED.Checked = Global.Config.SMSController[jpad].Enabled;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ButtonMappings[0] = Global.Config.SMSAutoController[jpad - 2].Up;
|
|
||||||
ButtonMappings[1] = Global.Config.SMSAutoController[jpad - 2].Down;
|
|
||||||
ButtonMappings[2] = Global.Config.SMSAutoController[jpad - 2].Left;
|
|
||||||
ButtonMappings[3] = Global.Config.SMSAutoController[jpad - 2].Right;
|
|
||||||
ButtonMappings[4] = Global.Config.SMSAutoController[jpad - 2].B1;
|
|
||||||
ButtonMappings[5] = Global.Config.SMSAutoController[jpad - 2].B2;
|
|
||||||
ButtonMappings[6] = Global.Config.SmsPause;
|
|
||||||
ButtonMappings[7] = Global.Config.SmsReset;
|
|
||||||
IDX_CONTROLLERENABLED.Checked = Global.Config.SMSController[jpad - 2].Enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
Changed = true;
|
|
||||||
Labels.Clear();
|
|
||||||
TextBoxes.Clear();
|
|
||||||
for (int i = 0; i < SMSControlList.Length; i++)
|
|
||||||
{
|
|
||||||
TempLabel = new Label();
|
|
||||||
TempLabel.Text = SMSControlList[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 UpdateSMS(int prev)
|
|
||||||
{
|
|
||||||
ButtonsGroupBox.Controls.Clear();
|
|
||||||
InputWidget TempBox;
|
|
||||||
Label TempLabel;
|
|
||||||
|
|
||||||
if (prev < 2)
|
|
||||||
{
|
|
||||||
TempBox = TextBoxes[0] as InputWidget;
|
|
||||||
Global.Config.SMSController[prev].Up = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Up);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[1] as InputWidget;
|
|
||||||
Global.Config.SMSController[prev].Down = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Down);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[2] as InputWidget;
|
|
||||||
Global.Config.SMSController[prev].Left = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Left);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[3] as InputWidget;
|
|
||||||
Global.Config.SMSController[prev].Right = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Right);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[4] as InputWidget;
|
|
||||||
Global.Config.SMSController[prev].B1 = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].B1);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[5] as InputWidget;
|
|
||||||
Global.Config.SMSController[prev].B2 = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].B2);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[6] as InputWidget;
|
|
||||||
Global.Config.SmsPause = AppendButtonMapping(TempBox.Text, Global.Config.SmsPause);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[7] as InputWidget;
|
|
||||||
Global.Config.SmsReset = AppendButtonMapping(TempBox.Text, Global.Config.SmsReset);
|
|
||||||
Global.Config.SMSController[prev].Enabled = IDX_CONTROLLERENABLED.Checked;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TempBox = TextBoxes[0] as InputWidget;
|
|
||||||
Global.Config.SMSAutoController[prev - 2].Up = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].Up);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[1] as InputWidget;
|
|
||||||
Global.Config.SMSAutoController[prev - 2].Down = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].Down);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[2] as InputWidget;
|
|
||||||
Global.Config.SMSAutoController[prev - 2].Left = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].Left);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[3] as InputWidget;
|
|
||||||
Global.Config.SMSAutoController[prev - 2].Right = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].Right);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[4] as InputWidget;
|
|
||||||
Global.Config.SMSAutoController[prev - 2].B1 = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].B1);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[5] as InputWidget;
|
|
||||||
Global.Config.SMSAutoController[prev - 2].B2 = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].B2);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[6] as InputWidget;
|
|
||||||
Global.Config.SmsPause = AppendButtonMapping(TempBox.Text, Global.Config.SmsPause);
|
|
||||||
TempBox.Dispose();
|
|
||||||
TempBox = TextBoxes[7] as InputWidget;
|
|
||||||
Global.Config.SmsReset = AppendButtonMapping(TempBox.Text, Global.Config.SmsReset);
|
|
||||||
Global.Config.SMSController[prev - 2].Enabled = IDX_CONTROLLERENABLED.Checked;
|
|
||||||
}
|
|
||||||
TempBox.Dispose();
|
|
||||||
for (int i = 0; i < SMSControlList.Length; i++)
|
|
||||||
{
|
|
||||||
TempLabel = Labels[i] as Label;
|
|
||||||
TempLabel.Dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DoPCE()
|
private void DoPCE()
|
||||||
{
|
{
|
||||||
Label TempLabel;
|
Label TempLabel;
|
||||||
|
@ -864,13 +745,19 @@ namespace BizHawk.MultiClient
|
||||||
mainController = controller;
|
mainController = controller;
|
||||||
autoController = Global.Config.NESAutoController;
|
autoController = Global.Config.NESAutoController;
|
||||||
break;
|
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:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int jpad = this.ControllComboBox.SelectedIndex;
|
int jpad = this.ControllComboBox.SelectedIndex;
|
||||||
if (jpad >= Global.PLAYERS[platform + " Controller"])
|
if (jpad >= PADS[platform])
|
||||||
{
|
{
|
||||||
jpad -= Global.PLAYERS[platform + " Controller"];
|
jpad -= PADS[platform];
|
||||||
controller = autoController;
|
controller = autoController;
|
||||||
}
|
}
|
||||||
switch (platform)
|
switch (platform)
|
||||||
|
@ -878,6 +765,9 @@ namespace BizHawk.MultiClient
|
||||||
case "NES":
|
case "NES":
|
||||||
IDX_CONTROLLERENABLED.Checked = ((NESControllerTemplate)mainController[jpad]).Enabled;
|
IDX_CONTROLLERENABLED.Checked = ((NESControllerTemplate)mainController[jpad]).Enabled;
|
||||||
break;
|
break;
|
||||||
|
case "SMS / GG / SG-1000":
|
||||||
|
IDX_CONTROLLERENABLED.Checked = ((SMSControllerTemplate)mainController[jpad]).Enabled;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
Labels.Clear();
|
Labels.Clear();
|
||||||
TextBoxes.Clear();
|
TextBoxes.Clear();
|
||||||
|
@ -895,9 +785,24 @@ namespace BizHawk.MultiClient
|
||||||
switch (platform)
|
switch (platform)
|
||||||
{
|
{
|
||||||
case "NES":
|
case "NES":
|
||||||
|
{
|
||||||
NESControllerTemplate obj = (NESControllerTemplate)controller[jpad];
|
NESControllerTemplate obj = (NESControllerTemplate)controller[jpad];
|
||||||
field = obj.GetType().GetField(fieldName).GetValue(obj);
|
field = obj.GetType().GetField(fieldName).GetValue(obj);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
case "SMS / GG / SG-1000":
|
||||||
|
{
|
||||||
|
if (button < 6)
|
||||||
|
{
|
||||||
|
SMSControllerTemplate obj = (SMSControllerTemplate)controller[jpad];
|
||||||
|
field = obj.GetType().GetField(fieldName).GetValue(obj);
|
||||||
|
}
|
||||||
|
else if (button == 6)
|
||||||
|
field = Global.Config.SmsPause;
|
||||||
|
else
|
||||||
|
field = Global.Config.SmsReset;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
TempTextBox.SetBindings((string)field);
|
TempTextBox.SetBindings((string)field);
|
||||||
ButtonsGroupBox.Controls.Add(TempTextBox);
|
ButtonsGroupBox.Controls.Add(TempTextBox);
|
||||||
|
@ -915,20 +820,32 @@ namespace BizHawk.MultiClient
|
||||||
switch (platform)
|
switch (platform)
|
||||||
{
|
{
|
||||||
case "NES":
|
case "NES":
|
||||||
ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.NESController;
|
|
||||||
controller = Global.Config.NESController;
|
controller = Global.Config.NESController;
|
||||||
mainController = controller;
|
mainController = controller;
|
||||||
autoController = Global.Config.NESAutoController;
|
autoController = Global.Config.NESAutoController;
|
||||||
break;
|
break;
|
||||||
|
case "SMS / GG / SG-1000":
|
||||||
|
controller = Global.Config.SMSController;
|
||||||
|
mainController = controller;
|
||||||
|
autoController = Global.Config.SMSAutoController;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (prev >= Global.PLAYERS[platform + " Controller"])
|
if (prev >= PADS[platform])
|
||||||
{
|
{
|
||||||
prev -= Global.PLAYERS[platform + " Controller"];
|
prev -= PADS[platform];
|
||||||
controller = autoController;
|
controller = autoController;
|
||||||
}
|
}
|
||||||
Global.Config.NESController[prev].Enabled = IDX_CONTROLLERENABLED.Checked;
|
switch (platform)
|
||||||
|
{
|
||||||
|
case "NES":
|
||||||
|
((NESControllerTemplate)mainController[prev]).Enabled = IDX_CONTROLLERENABLED.Checked;
|
||||||
|
break;
|
||||||
|
case "SMS / GG / SG-1000":
|
||||||
|
((SMSControllerTemplate)mainController[prev]).Enabled = IDX_CONTROLLERENABLED.Checked;
|
||||||
|
break;
|
||||||
|
}
|
||||||
for (int button = 0; button < CONTROLS[platform].Length; button++)
|
for (int button = 0; button < CONTROLS[platform].Length; button++)
|
||||||
{
|
{
|
||||||
InputWidget TempBox = TextBoxes[button] as InputWidget;
|
InputWidget TempBox = TextBoxes[button] as InputWidget;
|
||||||
|
@ -937,11 +854,28 @@ namespace BizHawk.MultiClient
|
||||||
switch (platform)
|
switch (platform)
|
||||||
{
|
{
|
||||||
case "NES":
|
case "NES":
|
||||||
|
{
|
||||||
NESControllerTemplate obj = (NESControllerTemplate)controller[prev];
|
NESControllerTemplate obj = (NESControllerTemplate)controller[prev];
|
||||||
FieldInfo buttonField = obj.GetType().GetField(fieldName);
|
FieldInfo buttonField = obj.GetType().GetField(fieldName);
|
||||||
field = buttonField.GetValue(obj);
|
field = buttonField.GetValue(obj);
|
||||||
buttonField.SetValue(obj, AppendButtonMapping(TempBox.Text, (string)field));
|
buttonField.SetValue(obj, AppendButtonMapping(TempBox.Text, (string)field));
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
case "SMS / GG / SG-1000":
|
||||||
|
{
|
||||||
|
if (button < 6)
|
||||||
|
{
|
||||||
|
SMSControllerTemplate obj = (SMSControllerTemplate)controller[prev];
|
||||||
|
FieldInfo buttonField = obj.GetType().GetField(fieldName);
|
||||||
|
field = buttonField.GetValue(obj);
|
||||||
|
buttonField.SetValue(obj, AppendButtonMapping(TempBox.Text, (string)field));
|
||||||
|
}
|
||||||
|
else if (button == 6)
|
||||||
|
Global.Config.SmsPause = AppendButtonMapping(TempBox.Text, Global.Config.SmsPause);
|
||||||
|
else
|
||||||
|
Global.Config.SmsReset = AppendButtonMapping(TempBox.Text, Global.Config.SmsReset);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
TempBox.Dispose();
|
TempBox.Dispose();
|
||||||
Label TempLabel = Labels[button] as Label;
|
Label TempLabel = Labels[button] as Label;
|
||||||
|
@ -1061,7 +995,7 @@ namespace BizHawk.MultiClient
|
||||||
switch (SystemComboBox.SelectedItem.ToString())
|
switch (SystemComboBox.SelectedItem.ToString())
|
||||||
{
|
{
|
||||||
case "SMS / GG / SG-1000":
|
case "SMS / GG / SG-1000":
|
||||||
DoSMS();
|
Do(SystemComboBox.SelectedItem.ToString());
|
||||||
break;
|
break;
|
||||||
case "PC Engine / SGX":
|
case "PC Engine / SGX":
|
||||||
DoPCE();
|
DoPCE();
|
||||||
|
@ -1076,7 +1010,7 @@ namespace BizHawk.MultiClient
|
||||||
DoTI83();
|
DoTI83();
|
||||||
break;
|
break;
|
||||||
case "NES":
|
case "NES":
|
||||||
Do("NES");
|
Do(SystemComboBox.SelectedItem.ToString());
|
||||||
break;
|
break;
|
||||||
case "Atari":
|
case "Atari":
|
||||||
DoAtari();
|
DoAtari();
|
||||||
|
@ -1090,7 +1024,7 @@ namespace BizHawk.MultiClient
|
||||||
switch (CurSelectConsole)
|
switch (CurSelectConsole)
|
||||||
{
|
{
|
||||||
case "SMS / GG / SG-1000":
|
case "SMS / GG / SG-1000":
|
||||||
UpdateSMS(CurSelectController);
|
Update(CurSelectController, CurSelectConsole);
|
||||||
break;
|
break;
|
||||||
case "PC Engine / SGX":
|
case "PC Engine / SGX":
|
||||||
UpdatePCE(CurSelectController);
|
UpdatePCE(CurSelectController);
|
||||||
|
@ -1105,7 +1039,7 @@ namespace BizHawk.MultiClient
|
||||||
UpdateTI83();
|
UpdateTI83();
|
||||||
break;
|
break;
|
||||||
case "NES":
|
case "NES":
|
||||||
Update(CurSelectController, "NES");
|
Update(CurSelectController, CurSelectConsole);
|
||||||
break;
|
break;
|
||||||
case "Atari":
|
case "Atari":
|
||||||
UpdateAtari(CurSelectController);
|
UpdateAtari(CurSelectController);
|
||||||
|
|
Loading…
Reference in New Issue