multiclient: rework everything controller config related. there is still some transitional cruft and whatnot, so be patient.
This commit is contained in:
parent
9ef3100753
commit
0825c4181c
|
@ -178,6 +178,9 @@
|
||||||
<Compile Include="config\ControllerConfig\ControllerConfigPanel.Designer.cs">
|
<Compile Include="config\ControllerConfig\ControllerConfigPanel.Designer.cs">
|
||||||
<DependentUpon>ControllerConfigPanel.cs</DependentUpon>
|
<DependentUpon>ControllerConfigPanel.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="config\ControllerConfig\NewControllerConfigPanel.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="config\GifAnimator.cs">
|
<Compile Include="config\GifAnimator.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -193,6 +196,12 @@
|
||||||
<Compile Include="config\MessageConfig.Designer.cs">
|
<Compile Include="config\MessageConfig.Designer.cs">
|
||||||
<DependentUpon>MessageConfig.cs</DependentUpon>
|
<DependentUpon>MessageConfig.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="config\NewControllerConfig.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="config\NewControllerConfig.Designer.cs">
|
||||||
|
<DependentUpon>NewControllerConfig.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="config\PathConfig.cs">
|
<Compile Include="config\PathConfig.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -572,6 +581,9 @@
|
||||||
<EmbeddedResource Include="config\GifAnimator.resx">
|
<EmbeddedResource Include="config\GifAnimator.resx">
|
||||||
<DependentUpon>GifAnimator.cs</DependentUpon>
|
<DependentUpon>GifAnimator.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="config\NewControllerConfig.resx">
|
||||||
|
<DependentUpon>NewControllerConfig.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="config\PathInfo.resx">
|
<EmbeddedResource Include="config\PathInfo.resx">
|
||||||
<DependentUpon>PathInfo.cs</DependentUpon>
|
<DependentUpon>PathInfo.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System.IO;
|
using System;
|
||||||
|
using System.IO;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
@ -8,6 +9,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
public Config()
|
public Config()
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
SMSController[0] = new SMSControllerTemplate(true);
|
SMSController[0] = new SMSControllerTemplate(true);
|
||||||
SMSController[1] = new SMSControllerTemplate(false);
|
SMSController[1] = new SMSControllerTemplate(false);
|
||||||
PCEController[0] = new PCEControllerTemplate(true);
|
PCEController[0] = new PCEControllerTemplate(true);
|
||||||
|
@ -102,6 +104,7 @@ namespace BizHawk.MultiClient
|
||||||
SNESConsoleButtons = new NESConsoleButtonTemplate();
|
SNESConsoleButtons = new NESConsoleButtonTemplate();
|
||||||
SMSConsoleButtons = new SMSConsoleButtonTemplate();
|
SMSConsoleButtons = new SMSConsoleButtonTemplate();
|
||||||
GenesisConsoleButtons = new GenConsoleButtonTemplate();
|
GenesisConsoleButtons = new GenConsoleButtonTemplate();
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
// Directories
|
// Directories
|
||||||
|
@ -843,6 +846,10 @@ namespace BizHawk.MultiClient
|
||||||
public const int NESNoiseMax = 247;
|
public const int NESNoiseMax = 247;
|
||||||
public const int NESDMCMax = 167;
|
public const int NESDMCMax = 167;
|
||||||
|
|
||||||
|
// [ControllerType][ControllerName] => Bind
|
||||||
|
public Dictionary<string, Dictionary<string, string>> AllTrollers = new Dictionary<string, Dictionary<string, string>>();
|
||||||
|
public Dictionary<string, Dictionary<string, string>> AllTrollersAutoFire = new Dictionary<string, Dictionary<string, string>>();
|
||||||
|
|
||||||
// SMS / GameGear Settings
|
// SMS / GameGear Settings
|
||||||
public bool SmsEnableFM = true;
|
public bool SmsEnableFM = true;
|
||||||
public bool SmsAllowOverlock = false;
|
public bool SmsAllowOverlock = false;
|
||||||
|
@ -851,66 +858,66 @@ namespace BizHawk.MultiClient
|
||||||
public bool GGShowClippedRegions = false;
|
public bool GGShowClippedRegions = false;
|
||||||
public bool GGHighlightActiveDisplayRegion = false;
|
public bool GGHighlightActiveDisplayRegion = false;
|
||||||
|
|
||||||
public SMSControllerTemplate[] SMSController = new SMSControllerTemplate[2];
|
//public SMSControllerTemplate[] SMSController = new SMSControllerTemplate[2];
|
||||||
public SMSControllerTemplate[] SMSAutoController = new SMSControllerTemplate[2];
|
//public SMSControllerTemplate[] SMSAutoController = new SMSControllerTemplate[2];
|
||||||
public SMSConsoleButtonTemplate SMSConsoleButtons = new SMSConsoleButtonTemplate();
|
//public SMSConsoleButtonTemplate SMSConsoleButtons = new SMSConsoleButtonTemplate();
|
||||||
|
|
||||||
// PCEngine Settings
|
// PCEngine Settings
|
||||||
public bool PceSpriteLimit = false;
|
public bool PceSpriteLimit = false;
|
||||||
public bool PceEqualizeVolume = false;
|
public bool PceEqualizeVolume = false;
|
||||||
public bool PceArcadeCardRewindHack = true;
|
public bool PceArcadeCardRewindHack = true;
|
||||||
public PCEControllerTemplate[] PCEController = new PCEControllerTemplate[5];
|
//public PCEControllerTemplate[] PCEController = new PCEControllerTemplate[5];
|
||||||
public PCEControllerTemplate[] PCEAutoController = new PCEControllerTemplate[5];
|
//public PCEControllerTemplate[] PCEAutoController = new PCEControllerTemplate[5];
|
||||||
|
|
||||||
// Genesis Settings
|
// Genesis Settings
|
||||||
public GenControllerTemplate[] GenesisController = new GenControllerTemplate[1];
|
//public GenControllerTemplate[] GenesisController = new GenControllerTemplate[1];
|
||||||
public GenControllerTemplate[] GenesisAutoController = new GenControllerTemplate[1];
|
//public GenControllerTemplate[] GenesisAutoController = new GenControllerTemplate[1];
|
||||||
public GenConsoleButtonTemplate GenesisConsoleButtons = new GenConsoleButtonTemplate();
|
//public GenConsoleButtonTemplate GenesisConsoleButtons = new GenConsoleButtonTemplate();
|
||||||
|
|
||||||
//Atari 2600 Settings
|
//Atari 2600 Settings
|
||||||
public SingleButtonJoyStickTemplate[] Atari2600Controller = new SingleButtonJoyStickTemplate[2];
|
//public SingleButtonJoyStickTemplate[] Atari2600Controller = new SingleButtonJoyStickTemplate[2];
|
||||||
public SingleButtonJoyStickTemplate[] Atari2600AutoController = new SingleButtonJoyStickTemplate[2];
|
//public SingleButtonJoyStickTemplate[] Atari2600AutoController = new SingleButtonJoyStickTemplate[2];
|
||||||
public Atari2600ConsoleButtonsTemplate[] Atari2600ConsoleButtons = new Atari2600ConsoleButtonsTemplate[1];
|
//public Atari2600ConsoleButtonsTemplate[] Atari2600ConsoleButtons = new Atari2600ConsoleButtonsTemplate[1];
|
||||||
public bool Atari2600_BW = false;
|
public bool Atari2600_BW = false;
|
||||||
public bool Atari2600_LeftDifficulty = true;
|
public bool Atari2600_LeftDifficulty = true;
|
||||||
public bool Atari2600_RightDifficulty = true;
|
public bool Atari2600_RightDifficulty = true;
|
||||||
|
|
||||||
//Atari 7800 Settings
|
//Atari 7800 Settings
|
||||||
public DoubleButtonJoyStickTemplate[] Atari7800Controller = new DoubleButtonJoyStickTemplate[2];
|
//public DoubleButtonJoyStickTemplate[] Atari7800Controller = new DoubleButtonJoyStickTemplate[2];
|
||||||
public DoubleButtonJoyStickTemplate[] Atari7800AutoController = new DoubleButtonJoyStickTemplate[2];
|
//public DoubleButtonJoyStickTemplate[] Atari7800AutoController = new DoubleButtonJoyStickTemplate[2];
|
||||||
public Atari7800ConsoleButtonsTemplate[] Atari7800ConsoleButtons = new Atari7800ConsoleButtonsTemplate[1];
|
//public Atari7800ConsoleButtonsTemplate[] Atari7800ConsoleButtons = new Atari7800ConsoleButtonsTemplate[1];
|
||||||
|
|
||||||
//ColecoVision
|
//ColecoVision
|
||||||
public ColecoVisionControllerTemplate[] ColecoController = new ColecoVisionControllerTemplate[2];
|
//public ColecoVisionControllerTemplate[] ColecoController = new ColecoVisionControllerTemplate[2];
|
||||||
public ColecoVisionControllerTemplate[] ColecoAutoController = new ColecoVisionControllerTemplate[2];
|
//public ColecoVisionControllerTemplate[] ColecoAutoController = new ColecoVisionControllerTemplate[2];
|
||||||
|
|
||||||
//Intellivision
|
//Intellivision
|
||||||
public IntellivisionControllerTemplate[] IntellivisionController = new IntellivisionControllerTemplate[2];
|
//public IntellivisionControllerTemplate[] IntellivisionController = new IntellivisionControllerTemplate[2];
|
||||||
public IntellivisionControllerTemplate[] IntellivisionAutoController = new IntellivisionControllerTemplate[2];
|
//public IntellivisionControllerTemplate[] IntellivisionAutoController = new IntellivisionControllerTemplate[2];
|
||||||
|
|
||||||
//NES settings
|
//NES settings
|
||||||
public NESControllerTemplate[] NESController = new NESControllerTemplate[4];
|
//public NESControllerTemplate[] NESController = new NESControllerTemplate[4];
|
||||||
public NESControllerTemplate[] NESAutoController = new NESControllerTemplate[4];
|
//public NESControllerTemplate[] NESAutoController = new NESControllerTemplate[4];
|
||||||
public NESConsoleButtonTemplate NESConsoleButtons = new NESConsoleButtonTemplate();
|
//public NESConsoleButtonTemplate NESConsoleButtons = new NESConsoleButtonTemplate();
|
||||||
|
|
||||||
//SNES settings
|
//SNES settings
|
||||||
public SNESControllerTemplate[] SNESController = new SNESControllerTemplate[4];
|
//public SNESControllerTemplate[] SNESController = new SNESControllerTemplate[4];
|
||||||
public SNESControllerTemplate[] SNESAutoController = new SNESControllerTemplate[4];
|
//public SNESControllerTemplate[] SNESAutoController = new SNESControllerTemplate[4];
|
||||||
public NESConsoleButtonTemplate SNESConsoleButtons = new NESConsoleButtonTemplate();
|
//public NESConsoleButtonTemplate SNESConsoleButtons = new NESConsoleButtonTemplate();
|
||||||
public string SNESProfile = "Compatibility";
|
public string SNESProfile = "Compatibility";
|
||||||
public bool SNESUseRingBuffer = true;
|
public bool SNESUseRingBuffer = true;
|
||||||
public bool SNESAlwaysDoubleSize = false;
|
public bool SNESAlwaysDoubleSize = false;
|
||||||
|
|
||||||
public N64ButtonsTemplate[] N64Controller = new N64ButtonsTemplate[4];
|
//public N64ButtonsTemplate[] N64Controller = new N64ButtonsTemplate[4];
|
||||||
public N64ButtonsTemplate[] N64AutoController = new N64ButtonsTemplate[4];
|
//public N64ButtonsTemplate[] N64AutoController = new N64ButtonsTemplate[4];
|
||||||
public Standard2ButtonConsoleTemplate N64ConsoleButtons = new Standard2ButtonConsoleTemplate();
|
//public Standard2ButtonConsoleTemplate N64ConsoleButtons = new Standard2ButtonConsoleTemplate();
|
||||||
|
|
||||||
//TI 83 settings
|
//TI 83 settings
|
||||||
public TI83ControllerTemplate[] TI83Controller = new TI83ControllerTemplate[1];
|
//public TI83ControllerTemplate[] TI83Controller = new TI83ControllerTemplate[1];
|
||||||
|
|
||||||
//GB settings
|
//GB settings
|
||||||
public GBControllerTemplate[] GBController = new GBControllerTemplate[1];
|
//public GBControllerTemplate[] GBController = new GBControllerTemplate[1];
|
||||||
public GBControllerTemplate[] GBAutoController = new GBControllerTemplate[1];
|
//public GBControllerTemplate[] GBAutoController = new GBControllerTemplate[1];
|
||||||
public bool GB_ForceDMG = false;
|
public bool GB_ForceDMG = false;
|
||||||
public bool GB_GBACGB = false;
|
public bool GB_GBACGB = false;
|
||||||
public bool GB_MulticartCompat = false;
|
public bool GB_MulticartCompat = false;
|
||||||
|
@ -919,23 +926,23 @@ namespace BizHawk.MultiClient
|
||||||
public Emulation.Consoles.GB.GBColors.ColorType CGBColors = Emulation.Consoles.GB.GBColors.ColorType.gambatte;
|
public Emulation.Consoles.GB.GBColors.ColorType CGBColors = Emulation.Consoles.GB.GBColors.ColorType.gambatte;
|
||||||
|
|
||||||
//Dual Gb
|
//Dual Gb
|
||||||
public DualGBControllerTemplate[] DualGBController = new DualGBControllerTemplate[1];
|
//public DualGBControllerTemplate[] DualGBController = new DualGBControllerTemplate[1];
|
||||||
public DualGBControllerTemplate[] AutoDualGBController = new DualGBControllerTemplate[1];
|
//public DualGBControllerTemplate[] AutoDualGBController = new DualGBControllerTemplate[1];
|
||||||
|
|
||||||
//GBA settings
|
//GBA settings
|
||||||
public GBAControllerTemplate[] GBAController = new GBAControllerTemplate[1];
|
//public GBAControllerTemplate[] GBAController = new GBAControllerTemplate[1];
|
||||||
public GBAControllerTemplate[] GBAAutoController = new GBAControllerTemplate[1];
|
//public GBAControllerTemplate[] GBAAutoController = new GBAControllerTemplate[1];
|
||||||
|
|
||||||
//Saturn
|
//Saturn
|
||||||
public SaturnControllerTemplate[] SaturnController = new SaturnControllerTemplate[2];
|
//public SaturnControllerTemplate[] SaturnController = new SaturnControllerTemplate[2];
|
||||||
public SaturnControllerTemplate[] SaturnAutoController = new SaturnControllerTemplate[2];
|
//public SaturnControllerTemplate[] SaturnAutoController = new SaturnControllerTemplate[2];
|
||||||
public SaturnConsoleButtonTemplate SaturnConsoleButtons = new SaturnConsoleButtonTemplate();
|
//public SaturnConsoleButtonTemplate SaturnConsoleButtons = new SaturnConsoleButtonTemplate();
|
||||||
|
|
||||||
//Commodore 64 Settings
|
//Commodore 64 Settings
|
||||||
public SingleButtonJoyStickTemplate[] C64Joysticks = new SingleButtonJoyStickTemplate[2];
|
//public SingleButtonJoyStickTemplate[] C64Joysticks = new SingleButtonJoyStickTemplate[2];
|
||||||
public SingleButtonJoyStickTemplate[] C64AutoJoysticks = new SingleButtonJoyStickTemplate[2];
|
//public SingleButtonJoyStickTemplate[] C64AutoJoysticks = new SingleButtonJoyStickTemplate[2];
|
||||||
public C64KeyboardTemplate C64Keyboard = new C64KeyboardTemplate();
|
//public C64KeyboardTemplate C64Keyboard = new C64KeyboardTemplate();
|
||||||
public C64KeyboardTemplate C64AutofireKeyboard = new C64KeyboardTemplate();
|
//public C64KeyboardTemplate C64AutofireKeyboard = new C64KeyboardTemplate();
|
||||||
|
|
||||||
//GIF Animator Settings
|
//GIF Animator Settings
|
||||||
public int GifAnimatorNumFrames;
|
public int GifAnimatorNumFrames;
|
||||||
|
@ -975,6 +982,7 @@ namespace BizHawk.MultiClient
|
||||||
public bool Atari2600_ShowPlayfield = true;
|
public bool Atari2600_ShowPlayfield = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
public class NESConsoleButtonTemplate : iControllerConfigObject
|
public class NESConsoleButtonTemplate : iControllerConfigObject
|
||||||
{
|
{
|
||||||
public string Reset = "";
|
public string Reset = "";
|
||||||
|
@ -1949,12 +1957,12 @@ namespace BizHawk.MultiClient
|
||||||
SIN = "Period"; //49
|
SIN = "Period"; //49
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
public interface iControllerConfigObject
|
public interface iControllerConfigObject
|
||||||
{
|
{
|
||||||
void SetDefaults();
|
void SetDefaults();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public enum PLUGINTYPE { RICE, GLIDE };
|
public enum PLUGINTYPE { RICE, GLIDE };
|
||||||
|
|
||||||
|
|
|
@ -463,7 +463,8 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private void OpenControllerConfig()
|
private void OpenControllerConfig()
|
||||||
{
|
{
|
||||||
ControllerConfig c = new ControllerConfig();
|
//ControllerConfig c = new ControllerConfig();
|
||||||
|
config.NewControllerConfig c = new config.NewControllerConfig(Global.Emulator.ControllerDefinition);
|
||||||
c.ShowDialog();
|
c.ShowDialog();
|
||||||
if (c.DialogResult == DialogResult.OK)
|
if (c.DialogResult == DialogResult.OK)
|
||||||
{
|
{
|
||||||
|
|
|
@ -804,7 +804,7 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
Global.NullControls = new Controller(NullEmulator.NullController);
|
Global.NullControls = new Controller(NullEmulator.NullController);
|
||||||
Global.AutofireNullControls = new AutofireController(NullEmulator.NullController);
|
Global.AutofireNullControls = new AutofireController(NullEmulator.NullController);
|
||||||
|
/*
|
||||||
var smsControls = new Controller(SMS.SmsController);
|
var smsControls = new Controller(SMS.SmsController);
|
||||||
smsControls.BindMulti("Reset", Global.Config.SMSConsoleButtons.Reset);
|
smsControls.BindMulti("Reset", Global.Config.SMSConsoleButtons.Reset);
|
||||||
smsControls.BindMulti("Pause", Global.Config.SMSConsoleButtons.Pause);
|
smsControls.BindMulti("Pause", Global.Config.SMSConsoleButtons.Pause);
|
||||||
|
@ -905,7 +905,7 @@ namespace BizHawk.MultiClient
|
||||||
Global.AutofireSNESControls = asnesControls;
|
Global.AutofireSNESControls = asnesControls;
|
||||||
|
|
||||||
var nesControls = new Controller(NES.NESController);
|
var nesControls = new Controller(NES.NESController);
|
||||||
for (int i = 0; i < 2 /*TODO*/; i++)
|
for (int i = 0; i < 2; i++) // TODO: more than 2
|
||||||
{
|
{
|
||||||
nesControls.BindMulti("P" + (i + 1) + " Up", Global.Config.NESController[i].Up);
|
nesControls.BindMulti("P" + (i + 1) + " Up", Global.Config.NESController[i].Up);
|
||||||
nesControls.BindMulti("P" + (i + 1) + " Down", Global.Config.NESController[i].Down);
|
nesControls.BindMulti("P" + (i + 1) + " Down", Global.Config.NESController[i].Down);
|
||||||
|
@ -927,7 +927,7 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
var anesControls = new AutofireController(NES.NESController) {Autofire = true};
|
var anesControls = new AutofireController(NES.NESController) {Autofire = true};
|
||||||
|
|
||||||
for (int i = 0; i < 2 /*TODO*/; i++)
|
for (int i = 0; i < 2; i++) // TODO: more than 2
|
||||||
{
|
{
|
||||||
anesControls.BindMulti("P" + (i + 1) + " Up", Global.Config.NESAutoController[i].Up);
|
anesControls.BindMulti("P" + (i + 1) + " Up", Global.Config.NESAutoController[i].Up);
|
||||||
anesControls.BindMulti("P" + (i + 1) + " Down", Global.Config.NESAutoController[i].Down);
|
anesControls.BindMulti("P" + (i + 1) + " Down", Global.Config.NESAutoController[i].Down);
|
||||||
|
@ -1634,6 +1634,8 @@ namespace BizHawk.MultiClient
|
||||||
N64AControls.BindMulti("P4 R", Global.Config.N64AutoController[3].R);
|
N64AControls.BindMulti("P4 R", Global.Config.N64AutoController[3].R);
|
||||||
|
|
||||||
Global.AutofireN64Controls = N64AControls;
|
Global.AutofireN64Controls = N64AControls;
|
||||||
|
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void FormDragEnter(object sender, DragEventArgs e)
|
private static void FormDragEnter(object sender, DragEventArgs e)
|
||||||
|
@ -1905,8 +1907,47 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Controller BindToDefinition(ControllerDefinition def, Dictionary<string, Dictionary<string, string>> allbinds)
|
||||||
|
{
|
||||||
|
var ret = new Controller(def);
|
||||||
|
Dictionary<string, string> binds;
|
||||||
|
if (allbinds.TryGetValue(def.Name, out binds))
|
||||||
|
{
|
||||||
|
foreach (string cbutton in def.BoolButtons)
|
||||||
|
{
|
||||||
|
string bind;
|
||||||
|
if (binds.TryGetValue(cbutton, out bind))
|
||||||
|
ret.BindMulti(cbutton, bind);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
// could merge these two methods...
|
||||||
|
static AutofireController BindToDefinitionAF(ControllerDefinition def, Dictionary<string, Dictionary<string, string>> allbinds)
|
||||||
|
{
|
||||||
|
var ret = new AutofireController(def);
|
||||||
|
Dictionary<string, string> binds;
|
||||||
|
if (allbinds.TryGetValue(def.Name, out binds))
|
||||||
|
{
|
||||||
|
foreach (string cbutton in def.BoolButtons)
|
||||||
|
{
|
||||||
|
string bind;
|
||||||
|
if (binds.TryGetValue(cbutton, out bind))
|
||||||
|
ret.BindMulti(cbutton, bind);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void SyncControls()
|
void SyncControls()
|
||||||
{
|
{
|
||||||
|
var def = Global.Emulator.ControllerDefinition;
|
||||||
|
|
||||||
|
Global.ActiveController = BindToDefinition(def, Global.Config.AllTrollers);
|
||||||
|
Global.AutoFireController = BindToDefinitionAF(def, Global.Config.AllTrollersAutoFire);
|
||||||
|
|
||||||
|
/*
|
||||||
if (Global.Game == null) return;
|
if (Global.Game == null) return;
|
||||||
switch (Global.Game.System)
|
switch (Global.Game.System)
|
||||||
{
|
{
|
||||||
|
@ -1989,6 +2030,7 @@ namespace BizHawk.MultiClient
|
||||||
Global.ActiveController = Global.NullControls;
|
Global.ActiveController = Global.NullControls;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
// allow propogating controls that are in the current controller definition but not in the prebaked one
|
// allow propogating controls that are in the current controller definition but not in the prebaked one
|
||||||
Global.ActiveController.ForceType(new ControllerDefinition(Global.Emulator.ControllerDefinition));
|
Global.ActiveController.ForceType(new ControllerDefinition(Global.Emulator.ControllerDefinition));
|
||||||
Global.ClickyVirtualPadController.Type = new ControllerDefinition(Global.Emulator.ControllerDefinition);
|
Global.ClickyVirtualPadController.Type = new ControllerDefinition(Global.Emulator.ControllerDefinition);
|
||||||
|
@ -2763,6 +2805,7 @@ namespace BizHawk.MultiClient
|
||||||
//modals that need to capture input for binding purposes get input, of course
|
//modals that need to capture input for binding purposes get input, of course
|
||||||
if (ActiveForm is HotkeyWindow) return true;
|
if (ActiveForm is HotkeyWindow) return true;
|
||||||
if (ActiveForm is ControllerConfig) return true;
|
if (ActiveForm is ControllerConfig) return true;
|
||||||
|
if (ActiveForm is config.NewControllerConfig) return true;
|
||||||
if (ActiveForm is TAStudio) return true;
|
if (ActiveForm is TAStudio) return true;
|
||||||
//if no form is active on this process, then the background input setting applies
|
//if no form is active on this process, then the background input setting applies
|
||||||
if (ActiveForm == null && Global.Config.AcceptBackgroundInput) return true;
|
if (ActiveForm == null && Global.Config.AcceptBackgroundInput) return true;
|
||||||
|
@ -2881,7 +2924,6 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
|
|
||||||
} //foreach event
|
} //foreach event
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ClearAutohold()
|
private void ClearAutohold()
|
||||||
|
|
|
@ -26,6 +26,9 @@ namespace BizHawk.MultiClient
|
||||||
private void SetToolTips()
|
private void SetToolTips()
|
||||||
{
|
{
|
||||||
//Set button hotkey mapping into tooltips
|
//Set button hotkey mapping into tooltips
|
||||||
|
// TODO: REFIX this to work with the new controller system
|
||||||
|
// it isn't horribly difficult, but has to be done.
|
||||||
|
/*
|
||||||
toolTip1.SetToolTip(ZERO, Global.Config.TI83Controller[0]._0);
|
toolTip1.SetToolTip(ZERO, Global.Config.TI83Controller[0]._0);
|
||||||
toolTip1.SetToolTip(ONE, Global.Config.TI83Controller[0]._1);
|
toolTip1.SetToolTip(ONE, Global.Config.TI83Controller[0]._1);
|
||||||
toolTip1.SetToolTip(TWO, Global.Config.TI83Controller[0]._2);
|
toolTip1.SetToolTip(TWO, Global.Config.TI83Controller[0]._2);
|
||||||
|
@ -76,6 +79,7 @@ namespace BizHawk.MultiClient
|
||||||
toolTip1.SetToolTip(DEL, Global.Config.TI83Controller[0].DEL);
|
toolTip1.SetToolTip(DEL, Global.Config.TI83Controller[0].DEL);
|
||||||
toolTip1.SetToolTip(COMMA, Global.Config.TI83Controller[0].COMMA);
|
toolTip1.SetToolTip(COMMA, Global.Config.TI83Controller[0].COMMA);
|
||||||
toolTip1.SetToolTip(SIN, Global.Config.TI83Controller[0].SIN);
|
toolTip1.SetToolTip(SIN, Global.Config.TI83Controller[0].SIN);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StopToolTips()
|
public void StopToolTips()
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private void ControllerConfig_Load(object sender, EventArgs e)
|
private void ControllerConfig_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
AllowLR.Checked = Global.Config.AllowUD_LR;
|
AllowLR.Checked = Global.Config.AllowUD_LR;
|
||||||
|
|
||||||
NESController1Panel.LoadSettings(Global.Config.NESController[0]);
|
NESController1Panel.LoadSettings(Global.Config.NESController[0]);
|
||||||
|
@ -208,7 +209,7 @@ namespace BizHawk.MultiClient
|
||||||
INTVAutofire2Panel.LabelWidth = 50;
|
INTVAutofire2Panel.LabelWidth = 50;
|
||||||
INTVAutofire2Panel.ColumnWidth = 170;
|
INTVAutofire2Panel.ColumnWidth = 170;
|
||||||
INTVAutofire2Panel.LoadSettings(Global.Config.IntellivisionAutoController[1]);
|
INTVAutofire2Panel.LoadSettings(Global.Config.IntellivisionAutoController[1]);
|
||||||
|
*/
|
||||||
SetTabByPlatform();
|
SetTabByPlatform();
|
||||||
|
|
||||||
if (!MainForm.INTERIM)
|
if (!MainForm.INTERIM)
|
||||||
|
|
|
@ -74,7 +74,7 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Save()
|
virtual public void Save()
|
||||||
{
|
{
|
||||||
for (int button = 0; button < buttons.Count; button++)
|
for (int button = 0; button < buttons.Count; button++)
|
||||||
{
|
{
|
||||||
|
@ -83,7 +83,7 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadSettings(iControllerConfigObject configobj)
|
virtual public void LoadSettings(iControllerConfigObject configobj)
|
||||||
{
|
{
|
||||||
ControllerConfigObject = configobj;
|
ControllerConfigObject = configobj;
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ namespace BizHawk.MultiClient
|
||||||
SetWidgetStrings();
|
SetWidgetStrings();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetButtonList()
|
virtual protected void SetButtonList()
|
||||||
{
|
{
|
||||||
buttons.Clear();
|
buttons.Clear();
|
||||||
MemberInfo[] members = ControllerConfigObject.GetType().GetMembers();
|
MemberInfo[] members = ControllerConfigObject.GetType().GetMembers();
|
||||||
|
@ -106,7 +106,7 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetWidgetStrings()
|
virtual protected void SetWidgetStrings()
|
||||||
{
|
{
|
||||||
for (int button = 0; button < buttons.Count; button++)
|
for (int button = 0; button < buttons.Count; button++)
|
||||||
{
|
{
|
||||||
|
@ -123,7 +123,7 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Startup()
|
protected void Startup()
|
||||||
{
|
{
|
||||||
int x = InputMarginLeft;
|
int x = InputMarginLeft;
|
||||||
int y = MarginTop - Spacing;
|
int y = MarginTop - Spacing;
|
||||||
|
@ -175,7 +175,7 @@ namespace BizHawk.MultiClient
|
||||||
ClearAll();
|
ClearAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void restoreDefaultsToolStripMenuItem_Click(object sender, EventArgs e)
|
virtual protected void restoreDefaultsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ControllerConfigObject.SetDefaults();
|
ControllerConfigObject.SetDefaults();
|
||||||
SetWidgetStrings();
|
SetWidgetStrings();
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace BizHawk.MultiClient.config.ControllerConfig
|
||||||
|
{
|
||||||
|
class NewControllerConfigPanel : ControllerConfigPanel
|
||||||
|
{
|
||||||
|
Dictionary<string, string> RealConfigObject;
|
||||||
|
|
||||||
|
public override void Save()
|
||||||
|
{
|
||||||
|
for (int button = 0; button < buttons.Count; button++)
|
||||||
|
RealConfigObject[buttons[button]] = Inputs[button].Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadSettings(Dictionary<string, string> configobj)
|
||||||
|
{
|
||||||
|
RealConfigObject = configobj;
|
||||||
|
SetButtonList();
|
||||||
|
Startup();
|
||||||
|
SetWidgetStrings();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadSettings(iControllerConfigObject configobj)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void SetButtonList()
|
||||||
|
{
|
||||||
|
buttons.Clear();
|
||||||
|
foreach (string s in RealConfigObject.Keys)
|
||||||
|
buttons.Add(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void SetWidgetStrings()
|
||||||
|
{
|
||||||
|
for (int button = 0; button < buttons.Count; button++)
|
||||||
|
{
|
||||||
|
string s;
|
||||||
|
if (!RealConfigObject.TryGetValue(buttons[button], out s))
|
||||||
|
s = "";
|
||||||
|
Inputs[button].SetBindings(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void restoreDefaultsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// this is a TODO: we have no concept of default values in our config system at the moment
|
||||||
|
// so for the moment, "defaults" = "no binds at all"
|
||||||
|
RealConfigObject.Clear();
|
||||||
|
SetWidgetStrings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,173 @@
|
||||||
|
namespace BizHawk.MultiClient.config
|
||||||
|
{
|
||||||
|
partial class NewControllerConfig
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.tabControl1 = new System.Windows.Forms.TabControl();
|
||||||
|
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||||
|
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.checkBoxAutoTab = new System.Windows.Forms.CheckBox();
|
||||||
|
this.checkBoxUDLR = new System.Windows.Forms.CheckBox();
|
||||||
|
this.buttonOK = new System.Windows.Forms.Button();
|
||||||
|
this.buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this.tabControl1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(107, 13);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Currently Configuring:";
|
||||||
|
//
|
||||||
|
// tabControl1
|
||||||
|
//
|
||||||
|
this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.tabControl1.Controls.Add(this.tabPage1);
|
||||||
|
this.tabControl1.Controls.Add(this.tabPage2);
|
||||||
|
this.tabControl1.Location = new System.Drawing.Point(12, 25);
|
||||||
|
this.tabControl1.Name = "tabControl1";
|
||||||
|
this.tabControl1.SelectedIndex = 0;
|
||||||
|
this.tabControl1.Size = new System.Drawing.Size(840, 318);
|
||||||
|
this.tabControl1.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// tabPage1
|
||||||
|
//
|
||||||
|
this.tabPage1.Location = new System.Drawing.Point(4, 22);
|
||||||
|
this.tabPage1.Name = "tabPage1";
|
||||||
|
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.tabPage1.Size = new System.Drawing.Size(832, 292);
|
||||||
|
this.tabPage1.TabIndex = 0;
|
||||||
|
this.tabPage1.Text = "Normal Controls";
|
||||||
|
this.tabPage1.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// tabPage2
|
||||||
|
//
|
||||||
|
this.tabPage2.Location = new System.Drawing.Point(4, 22);
|
||||||
|
this.tabPage2.Name = "tabPage2";
|
||||||
|
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.tabPage2.Size = new System.Drawing.Size(832, 292);
|
||||||
|
this.tabPage2.TabIndex = 1;
|
||||||
|
this.tabPage2.Text = "Autofire Controls";
|
||||||
|
this.tabPage2.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(13, 457);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(140, 13);
|
||||||
|
this.label2.TabIndex = 2;
|
||||||
|
this.label2.Text = "Escape clears a keybinding.";
|
||||||
|
//
|
||||||
|
// checkBoxAutoTab
|
||||||
|
//
|
||||||
|
this.checkBoxAutoTab.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.checkBoxAutoTab.AutoSize = true;
|
||||||
|
this.checkBoxAutoTab.Location = new System.Drawing.Point(260, 456);
|
||||||
|
this.checkBoxAutoTab.Name = "checkBoxAutoTab";
|
||||||
|
this.checkBoxAutoTab.Size = new System.Drawing.Size(70, 17);
|
||||||
|
this.checkBoxAutoTab.TabIndex = 3;
|
||||||
|
this.checkBoxAutoTab.Text = "Auto Tab";
|
||||||
|
this.checkBoxAutoTab.UseVisualStyleBackColor = true;
|
||||||
|
this.checkBoxAutoTab.CheckedChanged += new System.EventHandler(this.checkBoxAutoTab_CheckedChanged);
|
||||||
|
//
|
||||||
|
// checkBoxUDLR
|
||||||
|
//
|
||||||
|
this.checkBoxUDLR.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.checkBoxUDLR.AutoSize = true;
|
||||||
|
this.checkBoxUDLR.Location = new System.Drawing.Point(336, 456);
|
||||||
|
this.checkBoxUDLR.Name = "checkBoxUDLR";
|
||||||
|
this.checkBoxUDLR.Size = new System.Drawing.Size(84, 17);
|
||||||
|
this.checkBoxUDLR.TabIndex = 4;
|
||||||
|
this.checkBoxUDLR.Text = "Allow UDLR";
|
||||||
|
this.checkBoxUDLR.UseVisualStyleBackColor = true;
|
||||||
|
this.checkBoxUDLR.CheckedChanged += new System.EventHandler(this.checkBoxUDLR_CheckedChanged);
|
||||||
|
//
|
||||||
|
// buttonOK
|
||||||
|
//
|
||||||
|
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.buttonOK.Location = new System.Drawing.Point(696, 444);
|
||||||
|
this.buttonOK.Name = "buttonOK";
|
||||||
|
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.buttonOK.TabIndex = 5;
|
||||||
|
this.buttonOK.Text = "OK";
|
||||||
|
this.buttonOK.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
|
||||||
|
//
|
||||||
|
// buttonCancel
|
||||||
|
//
|
||||||
|
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.buttonCancel.Location = new System.Drawing.Point(777, 444);
|
||||||
|
this.buttonCancel.Name = "buttonCancel";
|
||||||
|
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.buttonCancel.TabIndex = 6;
|
||||||
|
this.buttonCancel.Text = "Cancel";
|
||||||
|
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
|
||||||
|
//
|
||||||
|
// NewControllerConfig
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(864, 479);
|
||||||
|
this.Controls.Add(this.buttonCancel);
|
||||||
|
this.Controls.Add(this.buttonOK);
|
||||||
|
this.Controls.Add(this.checkBoxUDLR);
|
||||||
|
this.Controls.Add(this.checkBoxAutoTab);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.tabControl1);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "NewControllerConfig";
|
||||||
|
this.Text = "NewControllerConfig";
|
||||||
|
this.tabControl1.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.TabControl tabControl1;
|
||||||
|
private System.Windows.Forms.TabPage tabPage1;
|
||||||
|
private System.Windows.Forms.TabPage tabPage2;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.CheckBox checkBoxAutoTab;
|
||||||
|
private System.Windows.Forms.CheckBox checkBoxUDLR;
|
||||||
|
private System.Windows.Forms.Button buttonOK;
|
||||||
|
private System.Windows.Forms.Button buttonCancel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using BizHawk.MultiClient.config.ControllerConfig;
|
||||||
|
|
||||||
|
namespace BizHawk.MultiClient.config
|
||||||
|
{
|
||||||
|
public partial class NewControllerConfig : Form
|
||||||
|
{
|
||||||
|
private NewControllerConfig()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
NewControllerConfigPanel normcontrls;
|
||||||
|
NewControllerConfigPanel autofirecontrls;
|
||||||
|
|
||||||
|
static void DoLoadSettings(NewControllerConfigPanel cp, ControllerDefinition def, Dictionary<string, Dictionary<string, string>> settingsblock)
|
||||||
|
{
|
||||||
|
cp.Spacing = 24;
|
||||||
|
cp.InputSize = 100;
|
||||||
|
cp.LabelPadding = 5;
|
||||||
|
cp.ColumnWidth = 170;
|
||||||
|
cp.LabelWidth = 60;
|
||||||
|
|
||||||
|
Dictionary<string, string> settings;
|
||||||
|
if (!settingsblock.TryGetValue(def.Name, out settings))
|
||||||
|
{
|
||||||
|
settings = new Dictionary<string, string>();
|
||||||
|
settingsblock[def.Name] = settings;
|
||||||
|
}
|
||||||
|
// check to make sure that the settings object has all of the appropriate boolbuttons
|
||||||
|
foreach (string button in def.BoolButtons)
|
||||||
|
{
|
||||||
|
if (!settings.Keys.Contains(button))
|
||||||
|
settings[button] = "";
|
||||||
|
}
|
||||||
|
cp.LoadSettings(settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
public NewControllerConfig(ControllerDefinition def)
|
||||||
|
: this()
|
||||||
|
{
|
||||||
|
SuspendLayout();
|
||||||
|
normcontrls = new NewControllerConfigPanel();
|
||||||
|
normcontrls.Dock = DockStyle.Fill;
|
||||||
|
tabPage1.Controls.Add(normcontrls);
|
||||||
|
DoLoadSettings(normcontrls, def, Global.Config.AllTrollers);
|
||||||
|
|
||||||
|
autofirecontrls = new NewControllerConfigPanel();
|
||||||
|
autofirecontrls.Dock = DockStyle.Fill;
|
||||||
|
tabPage2.Controls.Add(autofirecontrls);
|
||||||
|
DoLoadSettings(autofirecontrls, def, Global.Config.AllTrollersAutoFire);
|
||||||
|
|
||||||
|
label1.Text = "Currently Configuring: " + def.Name;
|
||||||
|
checkBoxUDLR.Checked = Global.Config.AllowUD_LR;
|
||||||
|
checkBoxAutoTab.Checked = Global.Config.InputConfigAutoTab;
|
||||||
|
ResumeLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkBoxAutoTab_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
normcontrls.SetAutoTab(checkBoxAutoTab.Checked);
|
||||||
|
autofirecontrls.SetAutoTab(checkBoxAutoTab.Checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkBoxUDLR_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Global.Config.AllowUD_LR = checkBoxUDLR.Checked;
|
||||||
|
Global.Config.InputConfigAutoTab = checkBoxAutoTab.Checked;
|
||||||
|
|
||||||
|
normcontrls.Save();
|
||||||
|
autofirecontrls.Save();
|
||||||
|
|
||||||
|
Global.OSD.AddMessage("Controller settings saved");
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Global.OSD.AddMessage("Controller config aborted");
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
Loading…
Reference in New Issue