Build 61 - Prepare SC Alpha 2.6

- Refactor actionmap source (from profile now)
- Add Tree Context Menu Collapse,Expand
- Fix ignore actionmap in Settings/Cancel
pull/104/head
bm98 8 years ago
parent c19619b87f
commit 651e5cf237

88
Form1.Designer.cs generated

@ -70,22 +70,24 @@
this.btAssign = new System.Windows.Forms.Button(); this.btAssign = new System.Windows.Forms.Button();
this.treeView1 = new System.Windows.Forms.TreeView(); this.treeView1 = new System.Windows.Forms.TreeView();
this.cmAddDel = new System.Windows.Forms.ContextMenuStrip(this.components); this.cmAddDel = new System.Windows.Forms.ContextMenuStrip(this.components);
this.tdiCollapseAll = new System.Windows.Forms.ToolStripMenuItem();
this.tdiExpandAll = new System.Windows.Forms.ToolStripMenuItem();
this.tdiSGroup1 = new System.Windows.Forms.ToolStripSeparator();
this.tdiAssignBinding = new System.Windows.Forms.ToolStripMenuItem(); this.tdiAssignBinding = new System.Windows.Forms.ToolStripMenuItem();
this.tdiBlendBinding = new System.Windows.Forms.ToolStripMenuItem(); this.tdiBlendBinding = new System.Windows.Forms.ToolStripMenuItem();
this.tdiClearBinding = new System.Windows.Forms.ToolStripMenuItem(); this.tdiClearBinding = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.tdiSGroup2 = new System.Windows.Forms.ToolStripSeparator();
this.tdiAddBinding = new System.Windows.Forms.ToolStripMenuItem(); this.tdiAddBinding = new System.Windows.Forms.ToolStripMenuItem();
this.tdiDelBinding = new System.Windows.Forms.ToolStripMenuItem(); this.tdiDelBinding = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); this.tdiSGroup3 = new System.Windows.Forms.ToolStripSeparator();
this.tdiTxDefActivationMode = new System.Windows.Forms.ToolStripTextBox(); this.tdiTxDefActivationMode = new System.Windows.Forms.ToolStripTextBox();
this.tdiCbxActivation = new System.Windows.Forms.ToolStripComboBox(); this.tdiCbxActivation = new System.Windows.Forms.ToolStripComboBox();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); this.tdiSGroup4 = new System.Windows.Forms.ToolStripSeparator();
this.tdiAddMod1 = new System.Windows.Forms.ToolStripMenuItem(); this.tdiAddMod1 = new System.Windows.Forms.ToolStripMenuItem();
this.tdiAddMod2 = new System.Windows.Forms.ToolStripMenuItem(); this.tdiAddMod2 = new System.Windows.Forms.ToolStripMenuItem();
this.tdiAddMod3 = new System.Windows.Forms.ToolStripMenuItem(); this.tdiAddMod3 = new System.Windows.Forms.ToolStripMenuItem();
this.tc1 = new System.Windows.Forms.TabControl(); this.tc1 = new System.Windows.Forms.TabControl();
this.tabJS1 = new System.Windows.Forms.TabPage(); this.tabJS1 = new System.Windows.Forms.TabPage();
this.UC_JoyPanel = new SCJMapper_V2.Joystick.UC_JoyPanel();
this.panel1 = new System.Windows.Forms.Panel(); this.panel1 = new System.Windows.Forms.Panel();
this.btClip = new System.Windows.Forms.Button(); this.btClip = new System.Windows.Forms.Button();
this.txRebind = new System.Windows.Forms.TextBox(); this.txRebind = new System.Windows.Forms.TextBox();
@ -147,6 +149,7 @@
this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.UC_JoyPanel = new SCJMapper_V2.Joystick.UC_JoyPanel();
this.cmCopyPaste.SuspendLayout(); this.cmCopyPaste.SuspendLayout();
this.panel2.SuspendLayout(); this.panel2.SuspendLayout();
this.cmMouseEntry.SuspendLayout(); this.cmMouseEntry.SuspendLayout();
@ -508,24 +511,48 @@
// cmAddDel // cmAddDel
// //
this.cmAddDel.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.cmAddDel.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tdiCollapseAll,
this.tdiExpandAll,
this.tdiSGroup1,
this.tdiAssignBinding, this.tdiAssignBinding,
this.tdiBlendBinding, this.tdiBlendBinding,
this.tdiClearBinding, this.tdiClearBinding,
this.toolStripSeparator2, this.tdiSGroup2,
this.tdiAddBinding, this.tdiAddBinding,
this.tdiDelBinding, this.tdiDelBinding,
this.toolStripSeparator5, this.tdiSGroup3,
this.tdiTxDefActivationMode, this.tdiTxDefActivationMode,
this.tdiCbxActivation, this.tdiCbxActivation,
this.toolStripSeparator6, this.tdiSGroup4,
this.tdiAddMod1, this.tdiAddMod1,
this.tdiAddMod2, this.tdiAddMod2,
this.tdiAddMod3}); this.tdiAddMod3});
this.cmAddDel.Name = "cmAddDel"; this.cmAddDel.Name = "cmAddDel";
this.cmAddDel.Size = new System.Drawing.Size(221, 407); this.cmAddDel.Size = new System.Drawing.Size(221, 479);
this.cmAddDel.Closed += new System.Windows.Forms.ToolStripDropDownClosedEventHandler(this.cmAddDel_Closed); this.cmAddDel.Closed += new System.Windows.Forms.ToolStripDropDownClosedEventHandler(this.cmAddDel_Closed);
this.cmAddDel.Opening += new System.ComponentModel.CancelEventHandler(this.cmAddDel_Opening); this.cmAddDel.Opening += new System.ComponentModel.CancelEventHandler(this.cmAddDel_Opening);
// //
// tdiCollapseAll
//
this.tdiCollapseAll.ForeColor = System.Drawing.Color.MediumBlue;
this.tdiCollapseAll.Name = "tdiCollapseAll";
this.tdiCollapseAll.Size = new System.Drawing.Size(220, 22);
this.tdiCollapseAll.Text = "Collapse to selected";
this.tdiCollapseAll.Click += new System.EventHandler(this.tdiCollapseAll_Click);
//
// tdiExpandAll
//
this.tdiExpandAll.ForeColor = System.Drawing.Color.MediumBlue;
this.tdiExpandAll.Name = "tdiExpandAll";
this.tdiExpandAll.Size = new System.Drawing.Size(220, 22);
this.tdiExpandAll.Text = "Expand all Mappings";
this.tdiExpandAll.Click += new System.EventHandler(this.tdiExpandAll_Click);
//
// tdiSGroup1
//
this.tdiSGroup1.Name = "tdiSGroup1";
this.tdiSGroup1.Size = new System.Drawing.Size(217, 6);
//
// tdiAssignBinding // tdiAssignBinding
// //
this.tdiAssignBinding.Name = "tdiAssignBinding"; this.tdiAssignBinding.Name = "tdiAssignBinding";
@ -547,10 +574,10 @@
this.tdiClearBinding.Text = "Clear Mapping"; this.tdiClearBinding.Text = "Clear Mapping";
this.tdiClearBinding.Click += new System.EventHandler(this.tdiClearBinding_Click); this.tdiClearBinding.Click += new System.EventHandler(this.tdiClearBinding_Click);
// //
// toolStripSeparator2 // tdiSGroup2
// //
this.toolStripSeparator2.Name = "toolStripSeparator2"; this.tdiSGroup2.Name = "tdiSGroup2";
this.toolStripSeparator2.Size = new System.Drawing.Size(217, 6); this.tdiSGroup2.Size = new System.Drawing.Size(217, 6);
// //
// tdiAddBinding // tdiAddBinding
// //
@ -566,10 +593,10 @@
this.tdiDelBinding.Text = "Delete Mapping"; this.tdiDelBinding.Text = "Delete Mapping";
this.tdiDelBinding.Click += new System.EventHandler(this.tdiDelBinding_Click); this.tdiDelBinding.Click += new System.EventHandler(this.tdiDelBinding_Click);
// //
// toolStripSeparator5 // tdiSGroup3
// //
this.toolStripSeparator5.Name = "toolStripSeparator5"; this.tdiSGroup3.Name = "tdiSGroup3";
this.toolStripSeparator5.Size = new System.Drawing.Size(217, 6); this.tdiSGroup3.Size = new System.Drawing.Size(217, 6);
// //
// tdiTxDefActivationMode // tdiTxDefActivationMode
// //
@ -593,10 +620,10 @@
this.tdiCbxActivation.Size = new System.Drawing.Size(160, 180); this.tdiCbxActivation.Size = new System.Drawing.Size(160, 180);
this.tdiCbxActivation.Click += new System.EventHandler(this.tdiCbxActivation_Click); this.tdiCbxActivation.Click += new System.EventHandler(this.tdiCbxActivation_Click);
// //
// toolStripSeparator6 // tdiSGroup4
// //
this.toolStripSeparator6.Name = "toolStripSeparator6"; this.tdiSGroup4.Name = "tdiSGroup4";
this.toolStripSeparator6.Size = new System.Drawing.Size(217, 6); this.tdiSGroup4.Size = new System.Drawing.Size(217, 6);
// //
// tdiAddMod1 // tdiAddMod1
// //
@ -652,15 +679,6 @@
this.tabJS1.TabIndex = 0; this.tabJS1.TabIndex = 0;
this.tabJS1.Text = "Joystick 1"; this.tabJS1.Text = "Joystick 1";
// //
// UC_JoyPanel
//
this.UC_JoyPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.UC_JoyPanel.JsAssignment = 0;
this.UC_JoyPanel.Location = new System.Drawing.Point(3, 3);
this.UC_JoyPanel.Name = "UC_JoyPanel";
this.UC_JoyPanel.Size = new System.Drawing.Size(274, 336);
this.UC_JoyPanel.TabIndex = 0;
//
// panel1 // panel1
// //
this.tlpanel.SetColumnSpan(this.panel1, 3); this.tlpanel.SetColumnSpan(this.panel1, 3);
@ -1349,6 +1367,15 @@
this.statusStrip1.TabIndex = 26; this.statusStrip1.TabIndex = 26;
this.statusStrip1.Text = "statusStrip1"; this.statusStrip1.Text = "statusStrip1";
// //
// UC_JoyPanel
//
this.UC_JoyPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.UC_JoyPanel.JsAssignment = 0;
this.UC_JoyPanel.Location = new System.Drawing.Point(3, 3);
this.UC_JoyPanel.Name = "UC_JoyPanel";
this.UC_JoyPanel.Size = new System.Drawing.Size(274, 336);
this.UC_JoyPanel.TabIndex = 0;
//
// MainForm // MainForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -1478,7 +1505,7 @@
private System.Windows.Forms.CheckBox cbxInvStrafeLon; private System.Windows.Forms.CheckBox cbxInvStrafeLon;
private System.Windows.Forms.CheckBox cbxInvThrottle; private System.Windows.Forms.CheckBox cbxInvThrottle;
private System.Windows.Forms.Button btDumpLog; private System.Windows.Forms.Button btDumpLog;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripSeparator tdiSGroup2;
private System.Windows.Forms.ToolStripMenuItem tdiBlendBinding; private System.Windows.Forms.ToolStripMenuItem tdiBlendBinding;
private System.Windows.Forms.ToolStripMenuItem tdiClearBinding; private System.Windows.Forms.ToolStripMenuItem tdiClearBinding;
private System.Windows.Forms.ToolStripMenuItem tdiAssignBinding; private System.Windows.Forms.ToolStripMenuItem tdiAssignBinding;
@ -1490,14 +1517,14 @@
private System.Windows.Forms.ToolStripMenuItem tmeWUp; private System.Windows.Forms.ToolStripMenuItem tmeWUp;
private System.Windows.Forms.ToolStripMenuItem tmeWDown; private System.Windows.Forms.ToolStripMenuItem tmeWDown;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; private System.Windows.Forms.ToolStripSeparator tdiSGroup3;
private System.Windows.Forms.ToolStripMenuItem tdiAddMod1; private System.Windows.Forms.ToolStripMenuItem tdiAddMod1;
private System.Windows.Forms.ToolStripMenuItem tdiAddMod2; private System.Windows.Forms.ToolStripMenuItem tdiAddMod2;
private System.Windows.Forms.ToolStripMenuItem tdiAddMod3; private System.Windows.Forms.ToolStripMenuItem tdiAddMod3;
private System.Windows.Forms.Button btMakeMod; private System.Windows.Forms.Button btMakeMod;
private System.Windows.Forms.Label lblPTU; private System.Windows.Forms.Label lblPTU;
private System.Windows.Forms.ToolStripComboBox tdiCbxActivation; private System.Windows.Forms.ToolStripComboBox tdiCbxActivation;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator6; private System.Windows.Forms.ToolStripSeparator tdiSGroup4;
private System.Windows.Forms.ToolStripTextBox tdiTxDefActivationMode; private System.Windows.Forms.ToolStripTextBox tdiTxDefActivationMode;
private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label lblProfileUsed; private System.Windows.Forms.Label lblProfileUsed;
@ -1506,6 +1533,9 @@
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4;
private System.Windows.Forms.Button btDumpProfile; private System.Windows.Forms.Button btDumpProfile;
private System.Windows.Forms.Button btTable; private System.Windows.Forms.Button btTable;
private System.Windows.Forms.ToolStripMenuItem tdiCollapseAll;
private System.Windows.Forms.ToolStripMenuItem tdiExpandAll;
private System.Windows.Forms.ToolStripSeparator tdiSGroup1;
} }
} }

@ -66,6 +66,7 @@ namespace SCJMapper_V2
///</remarks> ///</remarks>
private ActionTree m_AT = null; private ActionTree m_AT = null;
private OGL.FormJSCalCurve JSCAL = null; private OGL.FormJSCalCurve JSCAL = null;
private FormTable FTAB = null; private FormTable FTAB = null;
@ -93,8 +94,7 @@ namespace SCJMapper_V2
// catch if the Tag is not an int... // catch if the Tag is not an int...
try { try {
return ( ( int )page.Tag == ID_GAMEPAD_TAB ); return ( ( int )page.Tag == ID_GAMEPAD_TAB );
} } catch {
catch {
return false; return false;
} }
} }
@ -104,20 +104,16 @@ namespace SCJMapper_V2
/// </summary> /// </summary>
private ActionCls.ActionDevice InputMode private ActionCls.ActionDevice InputMode
{ {
get get {
{
// take care of the sequence.. mouse overrides key but both override joy and game // take care of the sequence.. mouse overrides key but both override joy and game
if ( m_mouseIn ) { // 20151220BM: add mouse device (from AC 2.0 defaultProfile usage) if ( m_mouseIn ) { // 20151220BM: add mouse device (from AC 2.0 defaultProfile usage)
return ActionCls.ActionDevice.AD_Mouse; return ActionCls.ActionDevice.AD_Mouse;
} } else if ( m_keyIn ) {
else if ( m_keyIn ) {
return ActionCls.ActionDevice.AD_Keyboard; return ActionCls.ActionDevice.AD_Keyboard;
} } else {
else {
if ( IsGamepadTab( tc1.SelectedTab ) ) { if ( IsGamepadTab( tc1.SelectedTab ) ) {
return ActionCls.ActionDevice.AD_Gamepad; return ActionCls.ActionDevice.AD_Gamepad;
} } else {
else {
return ActionCls.ActionDevice.AD_Joystick; return ActionCls.ActionDevice.AD_Joystick;
} }
} }
@ -148,8 +144,7 @@ namespace SCJMapper_V2
// Load the icon from our resources // Load the icon from our resources
System.Resources.ResourceManager resources = new System.Resources.ResourceManager( this.GetType( ) ); System.Resources.ResourceManager resources = new System.Resources.ResourceManager( this.GetType( ) );
this.Icon = ( ( System.Drawing.Icon )( resources.GetObject( "$this.Icon" ) ) ); this.Icon = ( ( System.Drawing.Icon )( resources.GetObject( "$this.Icon" ) ) );
} } catch {
catch {
; // well... ; // well...
} }
@ -160,7 +155,7 @@ namespace SCJMapper_V2
private void MainForm_Deactivate( object sender, EventArgs e ) private void MainForm_Deactivate( object sender, EventArgs e )
{ {
timer1.Enabled = false; timer1.Enabled = false;
if ( m_Joystick!=null) m_Joystick.Deactivate( ); if ( m_Joystick != null ) m_Joystick.Deactivate( );
if ( m_Keyboard != null ) m_Keyboard.Deactivate( ); if ( m_Keyboard != null ) m_Keyboard.Deactivate( );
} }
@ -223,9 +218,6 @@ namespace SCJMapper_V2
rtb.DragDrop += new DragEventHandler( rtb_DragDrop ); rtb.DragDrop += new DragEventHandler( rtb_DragDrop );
rtb.AllowDrop = true; // add Drop to rtb rtb.AllowDrop = true; // add Drop to rtb
// load profiles
log.Debug( "Loading Profiles" );
// load mappings // load mappings
log.Debug( "Loading Mappings" ); log.Debug( "Loading Mappings" );
LoadMappingDD( ); LoadMappingDD( );
@ -259,8 +251,7 @@ namespace SCJMapper_V2
Grab( ); Grab( );
m_AppSettings.MyMappingName = txMappingName.Text; m_AppSettings.Save( );// last used - persist m_AppSettings.MyMappingName = txMappingName.Text; m_AppSettings.Save( );// last used - persist
txMappingName.BackColor = MyColors.SuccessColor; txMappingName.BackColor = MyColors.SuccessColor;
} } else {
else {
log.WarnFormat( "Last used mapping not available ({0})", txMappingName.Text ); log.WarnFormat( "Last used mapping not available ({0})", txMappingName.Text );
txMappingName.BackColor = MyColors.ErrorColor; txMappingName.BackColor = MyColors.ErrorColor;
} }
@ -349,8 +340,7 @@ namespace SCJMapper_V2
} }
tabRegion.Exclude( TabItemRect ); tabRegion.Exclude( TabItemRect );
e.Graphics.FillRegion( backBrush, tabRegion ); e.Graphics.FillRegion( backBrush, tabRegion );
} } else {
else {
f = e.Font; f = e.Font;
foreBrush = new SolidBrush( e.ForeColor ); foreBrush = new SolidBrush( e.ForeColor );
} }
@ -371,13 +361,11 @@ namespace SCJMapper_V2
if ( e.Index == this.tc1.SelectedIndex ) { if ( e.Index == this.tc1.SelectedIndex ) {
f.Dispose( ); f.Dispose( );
backBrush.Dispose( ); backBrush.Dispose( );
} } else {
else {
backBrush.Dispose( ); backBrush.Dispose( );
foreBrush.Dispose( ); foreBrush.Dispose( );
} }
} } catch ( Exception Ex ) {
catch ( Exception Ex ) {
log.Error( "Ex DrawItem", Ex ); log.Error( "Ex DrawItem", Ex );
MessageBox.Show( Ex.Message.ToString( ), "Error Occured", MessageBoxButtons.OK, MessageBoxIcon.Information ); MessageBox.Show( Ex.Message.ToString( ), "Error Occured", MessageBoxButtons.OK, MessageBoxIcon.Information );
} }
@ -427,8 +415,7 @@ namespace SCJMapper_V2
// valid Device Tab // valid Device Tab
if ( IsGamepadTab( tc1.TabPages[deviceTabIndex] ) ) { if ( IsGamepadTab( tc1.TabPages[deviceTabIndex] ) ) {
; // ignore gamepads ; // ignore gamepads
} } else if ( m_Joystick.Count > joyStickIndex ) {
else if ( m_Joystick.Count > joyStickIndex ) {
// there is a joystick device left.. // there is a joystick device left..
m_Joystick[joyStickIndex].JSAssignment = joyStickIndex + 1; // assign number 1.. m_Joystick[joyStickIndex].JSAssignment = joyStickIndex + 1; // assign number 1..
m_AT.ActionMaps.jsN[deviceTabIndex] = m_Joystick[joyStickIndex].DevName; m_AT.ActionMaps.jsN[deviceTabIndex] = m_Joystick[joyStickIndex].DevName;
@ -464,8 +451,7 @@ namespace SCJMapper_V2
log.Debug( "Get Mouse device" ); log.Debug( "Get Mouse device" );
m_Mouse = new MouseCls( new SharpDX.DirectInput.Mouse( directInput ), this ); m_Mouse = new MouseCls( new SharpDX.DirectInput.Mouse( directInput ), this );
} } catch ( Exception ex ) {
catch ( Exception ex ) {
log.Debug( "InitDirectInput phase 1 failed unexpectedly", ex ); log.Debug( "InitDirectInput phase 1 failed unexpectedly", ex );
return false; return false;
} }
@ -492,8 +478,7 @@ namespace SCJMapper_V2
break; break;
} }
} }
} } else {
else {
jsDevice = new SharpDX.DirectInput.Joystick( directInput, instance.InstanceGuid ); jsDevice = new SharpDX.DirectInput.Joystick( directInput, instance.InstanceGuid );
log.DebugFormat( "Create the device interface for: {0}", jsDevice.Information.ProductName ); log.DebugFormat( "Create the device interface for: {0}", jsDevice.Information.ProductName );
} }
@ -512,8 +497,7 @@ namespace SCJMapper_V2
gs.SetDeviceName( instance.ProductName ); gs.SetDeviceName( instance.ProductName );
tc1.TabPages[tabs].ToolTipText = String.Format( "{0}\n{1}", gs.DevName, " " ); tc1.TabPages[tabs].ToolTipText = String.Format( "{0}\n{1}", gs.DevName, " " );
toolTip1.SetToolTip( tc1.TabPages[tabs], tc1.TabPages[tabs].ToolTipText ); toolTip1.SetToolTip( tc1.TabPages[tabs], tc1.TabPages[tabs].ToolTipText );
} } else {
else {
log.Debug( "Add first Joystick panel" ); log.Debug( "Add first Joystick panel" );
log.Debug( "Create Joystick instance" ); log.Debug( "Create Joystick instance" );
tc1.TabPages[tabs].Text = String.Format( "Joystick {0}", nJs++ ); tc1.TabPages[tabs].Text = String.Format( "Joystick {0}", nJs++ );
@ -521,8 +505,7 @@ namespace SCJMapper_V2
tc1.TabPages[tabs].ToolTipText = String.Format( "{0}\n{1}", js.DevName, js.DevInstanceGUID ); tc1.TabPages[tabs].ToolTipText = String.Format( "{0}\n{1}", js.DevName, js.DevInstanceGUID );
toolTip1.SetToolTip( tc1.TabPages[tabs], tc1.TabPages[tabs].ToolTipText ); toolTip1.SetToolTip( tc1.TabPages[tabs], tc1.TabPages[tabs].ToolTipText );
} }
} } else {
else {
if ( gpDevice != null ) { if ( gpDevice != null ) {
log.Debug( "Add next Gamepad panel" ); log.Debug( "Add next Gamepad panel" );
tc1.TabPages.Add( "Gamepad " ); tc1.TabPages.Add( "Gamepad " );
@ -533,8 +516,7 @@ namespace SCJMapper_V2
gs.SetDeviceName( instance.ProductName ); gs.SetDeviceName( instance.ProductName );
tc1.TabPages[tabs].ToolTipText = String.Format( "{0}\n{1}", gs.DevName, " " ); tc1.TabPages[tabs].ToolTipText = String.Format( "{0}\n{1}", gs.DevName, " " );
toolTip1.SetToolTip( tc1.TabPages[tabs], tc1.TabPages[tabs].ToolTipText ); toolTip1.SetToolTip( tc1.TabPages[tabs], tc1.TabPages[tabs].ToolTipText );
} } else {
else {
log.Debug( "Add next Joystick panel" ); log.Debug( "Add next Joystick panel" );
// setup the further tab contents along the reference one in TabPage[0] (the control named UC_JoyPanel) // setup the further tab contents along the reference one in TabPage[0] (the control named UC_JoyPanel)
tc1.TabPages.Add( String.Format( "Joystick {0}", nJs++ ) ); tc1.TabPages.Add( String.Format( "Joystick {0}", nJs++ ) );
@ -551,8 +533,7 @@ namespace SCJMapper_V2
m_Gamepad = gs; m_Gamepad = gs;
SetGamepadTab( tc1.TabPages[tabs] ); // indicates the gamepad tab (murks..) SetGamepadTab( tc1.TabPages[tabs] ); // indicates the gamepad tab (murks..)
MyColors.GamepadColor = MyColors.TabColor[tabs]; // save it for future use MyColors.GamepadColor = MyColors.TabColor[tabs]; // save it for future use
} } else if ( js != null ) {
else if ( js != null ) {
m_Joystick.Add( js ); // add to joystick list m_Joystick.Add( js ); // add to joystick list
tc1.TabPages[tabs].Tag = ( m_Joystick.Count - 1 ); // used to find the tab for polling tc1.TabPages[tabs].Tag = ( m_Joystick.Count - 1 ); // used to find the tab for polling
} }
@ -563,8 +544,7 @@ namespace SCJMapper_V2
if ( tabs >= JoystickCls.JSnum_MAX ) break; // cannot load more JSticks than predefined Tabs if ( tabs >= JoystickCls.JSnum_MAX ) break; // cannot load more JSticks than predefined Tabs
} }
log.DebugFormat( "Added {0} GameControl devices", tabs ); log.DebugFormat( "Added {0} GameControl devices", tabs );
} } catch ( Exception ex ) {
catch ( Exception ex ) {
log.Debug( "InitDirectInput phase 2 failed unexpectedly", ex ); log.Debug( "InitDirectInput phase 2 failed unexpectedly", ex );
return false; return false;
} }
@ -641,8 +621,7 @@ namespace SCJMapper_V2
if ( j != null ) { if ( j != null ) {
m_AT.ActionMaps.jsNGUID[i] = j.DevInstanceGUID; // subst for missing one (version up etc.) m_AT.ActionMaps.jsNGUID[i] = j.DevInstanceGUID; // subst for missing one (version up etc.)
j.JSAssignment = i + 1; // i is 0 based ; jsN is 1 based j.JSAssignment = i + 1; // i is 0 based ; jsN is 1 based
} } else {
else {
// a valid but unknown GUID // a valid but unknown GUID
m_AT.ActionMaps.Clear_jsEntry( i ); m_AT.ActionMaps.Clear_jsEntry( i );
@ -667,8 +646,7 @@ namespace SCJMapper_V2
// get the text into the view // get the text into the view
try { try {
rtb.ScrollToCaret( ); rtb.ScrollToCaret( );
} } catch {
catch {
; // just ignore ; // just ignore
} }
UpdateTable( ); UpdateTable( );
@ -738,16 +716,14 @@ namespace SCJMapper_V2
ctrl = m_Gamepad.GetLastChange( ); ctrl = m_Gamepad.GetLastChange( );
timer1.Interval = 750; // allow more time to release buttons [msec] timer1.Interval = 750; // allow more time to release buttons [msec]
} }
} } else {
else {
// poll active Joystick // poll active Joystick
m_curJoystick.GetData( ); // poll the device m_curJoystick.GetData( ); // poll the device
// add keyboard modifier - if there are .. // add keyboard modifier - if there are ..
if ( m_Keyboard == null ) { if ( m_Keyboard == null ) {
// no keyboard => no modifier // no keyboard => no modifier
ctrl = JSStr( ) + m_curJoystick.GetLastChange( ); // show last handled JS control ctrl = JSStr( ) + m_curJoystick.GetLastChange( ); // show last handled JS control
} } else {
else {
UpdateModifiers( ); // get the last keyboard modifer to compose the command, also handles the modifier lifetime UpdateModifiers( ); // get the last keyboard modifer to compose the command, also handles the modifier lifetime
ctrl = JSStr( ) + m_persistentMods + m_curJoystick.GetLastChange( ); // show last handled JS control ctrl = JSStr( ) + m_persistentMods + m_curJoystick.GetLastChange( ); // show last handled JS control
} }
@ -759,8 +735,7 @@ namespace SCJMapper_V2
// Handle Throttle checkbox // Handle Throttle checkbox
if ( JoystickCls.CanThrottle( ctrl ) ) { if ( JoystickCls.CanThrottle( ctrl ) ) {
cbxThrottle.Enabled = true; cbxThrottle.Enabled = true;
} } else {
else {
cbxThrottle.Checked = false; cbxThrottle.Enabled = false; cbxThrottle.Checked = false; cbxThrottle.Enabled = false;
} }
// Update joystick modifiers - not currently used // Update joystick modifiers - not currently used
@ -817,8 +792,7 @@ namespace SCJMapper_V2
if ( m_AT.UpdateSelectedItem( JoystickCls.MakeThrottle( lblLastJ.Text, cbxThrottle.Checked ), InputMode, true ) ) { if ( m_AT.UpdateSelectedItem( JoystickCls.MakeThrottle( lblLastJ.Text, cbxThrottle.Checked ), InputMode, true ) ) {
if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor; if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor;
UpdateTableSelectedItem( ); UpdateTableSelectedItem( );
} } else MySounds.PlayNotfound( );
else MySounds.PlayNotfound( );
} }
private void btBlend_Click( object sender, EventArgs e ) private void btBlend_Click( object sender, EventArgs e )
@ -827,8 +801,7 @@ namespace SCJMapper_V2
m_AT.BlendBinding( ); m_AT.BlendBinding( );
UpdateTableSelectedItem( ); UpdateTableSelectedItem( );
if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor; if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor;
} } else MySounds.PlayCannot( );
else MySounds.PlayCannot( );
} }
private void btClear_Click( object sender, EventArgs e ) private void btClear_Click( object sender, EventArgs e )
@ -837,8 +810,7 @@ namespace SCJMapper_V2
m_AT.ClearBinding( ); m_AT.ClearBinding( );
UpdateTableSelectedItem( ); UpdateTableSelectedItem( );
if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor; if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor;
} } else MySounds.PlayCannot( );
else MySounds.PlayCannot( );
} }
private void btMakeMod_Click( object sender, EventArgs e ) private void btMakeMod_Click( object sender, EventArgs e )
@ -859,14 +831,12 @@ namespace SCJMapper_V2
tdiAddMod1.Visible = true; tdiAddMod1.Visible = true;
m_curJoystick.UpdateModifier( lblLastJ.Text, true ); m_curJoystick.UpdateModifier( lblLastJ.Text, true );
m_AT.Dirty = true; if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor; m_AT.Dirty = true; if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor;
} } else if ( string.IsNullOrEmpty( tdiAddMod2.Text ) ) {
else if ( string.IsNullOrEmpty( tdiAddMod2.Text ) ) {
tdiAddMod2.Text = string.Format( "MOD: {0}", lblLastJ.Text ); tdiAddMod2.Text = string.Format( "MOD: {0}", lblLastJ.Text );
tdiAddMod2.Visible = true; tdiAddMod2.Visible = true;
m_curJoystick.UpdateModifier( lblLastJ.Text, true ); m_curJoystick.UpdateModifier( lblLastJ.Text, true );
m_AT.Dirty = true; if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor; m_AT.Dirty = true; if ( m_AT.Dirty ) btDump.BackColor = MyColors.DirtyColor;
} } else if ( string.IsNullOrEmpty( tdiAddMod3.Text ) ) {
else if ( string.IsNullOrEmpty( tdiAddMod3.Text ) ) {
tdiAddMod3.Text = string.Format( "MOD: {0}", lblLastJ.Text ); tdiAddMod3.Text = string.Format( "MOD: {0}", lblLastJ.Text );
tdiAddMod3.Visible = true; tdiAddMod3.Visible = true;
m_curJoystick.UpdateModifier( lblLastJ.Text, true ); m_curJoystick.UpdateModifier( lblLastJ.Text, true );
@ -1070,25 +1040,27 @@ namespace SCJMapper_V2
// Node Menu // Node Menu
private ActivationMode m_prevActivationMode = new ActivationMode( ActivationMode.Default ); private ActivationMode m_prevActivationMode = new ActivationMode( ActivationMode.Default );
private void cmAddDel_Opening( object sender, CancelEventArgs e ) private void cmAddDel_Opening( object sender, CancelEventArgs e )
{ {
// note: the right click selected the node // note: the right click selected the node
ContextMenuStrip cts = ( sender as ContextMenuStrip ); ContextMenuStrip cts = ( sender as ContextMenuStrip );
Boolean any=false; // above separator Boolean any2 = false; // Group 2
Boolean any2 = false; // below separator Boolean any3 = false; // Group 3
Boolean any4 = false; // Group 4
m_prevActivationMode = ActivationMode.Default; // switch Closing handling OFF in case we don't show anything m_prevActivationMode = ActivationMode.Default; // switch Closing handling OFF in case we don't show anything
if ( m_AT.CanAssignBinding ) { if ( m_AT.CanAssignBinding ) {
cts.Items[0].Text = "Assign: " + JoystickCls.MakeThrottle( lblLastJ.Text, cbxThrottle.Checked ); tdiAssignBinding.Text = "Assign: " + JoystickCls.MakeThrottle( lblLastJ.Text, cbxThrottle.Checked );
} }
cts.Items[0].Visible = m_AT.CanAssignBinding; any = any || m_AT.CanAssignBinding; // Assign tdiAssignBinding.Visible = m_AT.CanAssignBinding; any2 = any2 || m_AT.CanAssignBinding; // Assign
cts.Items[1].Visible = m_AT.CanBlendBinding; any = any || m_AT.CanBlendBinding; // Blend tdiBlendBinding.Visible = m_AT.CanBlendBinding; any2 = any2 || m_AT.CanBlendBinding; // Blend
cts.Items[2].Visible = m_AT.CanClearBinding; any = any || m_AT.CanClearBinding; // Clear tdiClearBinding.Visible = m_AT.CanClearBinding; any2 = any2 || m_AT.CanClearBinding; // Clear
cts.Items[4].Visible = m_AT.CanAddBinding; any2 = any2 || m_AT.CanAddBinding; // Add tdiAddBinding.Visible = m_AT.CanAddBinding; any3 = any3 || m_AT.CanAddBinding; // Add
cts.Items[5].Visible = m_AT.CanDelBinding; any2 = any2 || m_AT.CanDelBinding; // Del tdiDelBinding.Visible = m_AT.CanDelBinding; any3 = any3 || m_AT.CanDelBinding; // Del
cts.Items[3].Visible = any2; // separator
// handle activation modes - there is a default one and the list of choosable ones // handle activation modes - there is a default one and the list of choosable ones
// there is no further decision on can or cannot - any(2) is enough to know // there is no further decision on can or cannot - any(2) is enough to know
@ -1100,13 +1072,19 @@ namespace SCJMapper_V2
else else
tdiTxDefActivationMode.Text = string.Format( "Profile: {0}", am[0].Name ); // show the default element tdiTxDefActivationMode.Text = string.Format( "Profile: {0}", am[0].Name ); // show the default element
if ( any && m_AT.IsMappedAction ) { if ( any2 && m_AT.IsMappedAction ) {
m_prevActivationMode = am[1]; // this is the selected one m_prevActivationMode = am[1]; // this is the selected one
tdiCbxActivation.Visible = true; tdiCbxActivation.Visible = true;
any4 = true;
tdiCbxActivation.Text = m_prevActivationMode.Name; tdiCbxActivation.Text = m_prevActivationMode.Name;
} }
e.Cancel = !( any || any2 ); tdiSGroup1.Visible = any2; // separator
tdiSGroup2.Visible = any3; // separator
tdiSGroup3.Visible = any4; // separator
tdiTxDefActivationMode.Visible = any4;
e.Cancel = false; // !( any2 || any3 );
} }
// after user entry of the context menu - see if one has changed the ActivationMode // after user entry of the context menu - see if one has changed the ActivationMode
@ -1114,6 +1092,28 @@ namespace SCJMapper_V2
{ {
} }
// Collapses all but the selected node or the part where it is in
private void tdiCollapseAll_Click( object sender, EventArgs e )
{
TreeNode selNodeActionMap = treeView1.SelectedNode;
TreeNode selNodeParent = selNodeActionMap;
// see if we have a parent..
if ( selNodeActionMap.Level > 1 )
selNodeParent = selNodeActionMap.Parent;
treeView1.CollapseAll( );
selNodeParent.Expand( );
treeView1.SelectedNode = selNodeActionMap;
treeView1.SelectedNode.EnsureVisible( );
}
private void tdiExpandAll_Click( object sender, EventArgs e )
{
treeView1.ExpandAll( );
treeView1.SelectedNode.EnsureVisible( );
}
private void tdiCbxActivation_Click( object sender, EventArgs e ) private void tdiCbxActivation_Click( object sender, EventArgs e )
{ {
cmAddDel.Close( ToolStripDropDownCloseReason.ItemClicked ); cmAddDel.Close( ToolStripDropDownCloseReason.ItemClicked );
@ -1179,15 +1179,13 @@ namespace SCJMapper_V2
break; break;
} }
} }
} } else {
else {
dropEnabled = false; dropEnabled = false;
} }
if ( dropEnabled ) { if ( dropEnabled ) {
e.Effect = DragDropEffects.Copy; e.Effect = DragDropEffects.Copy;
} } else {
else {
e.Effect = DragDropEffects.None; e.Effect = DragDropEffects.None;
} }
} }
@ -1208,8 +1206,7 @@ namespace SCJMapper_V2
Grab( ); Grab( );
m_AppSettings.MyMappingName = txMappingName.Text; m_AppSettings.Save( );// last used - persist m_AppSettings.MyMappingName = txMappingName.Text; m_AppSettings.Save( );// last used - persist
txMappingName.BackColor = MyColors.SuccessColor; txMappingName.BackColor = MyColors.SuccessColor;
} } else {
else {
txMappingName.BackColor = MyColors.ErrorColor; txMappingName.BackColor = MyColors.ErrorColor;
} }
} }
@ -1233,8 +1230,7 @@ namespace SCJMapper_V2
m_AppSettings.MyMappingName = txMappingName.Text; m_AppSettings.Save( );// last used - persist m_AppSettings.MyMappingName = txMappingName.Text; m_AppSettings.Save( );// last used - persist
txMappingName.BackColor = MyColors.SuccessColor; txMappingName.BackColor = MyColors.SuccessColor;
} }
} } else {
else {
txMappingName.BackColor = MyColors.ErrorColor; txMappingName.BackColor = MyColors.ErrorColor;
} }
} }
@ -1243,8 +1239,7 @@ namespace SCJMapper_V2
{ {
if ( SCMappings.IsValidMappingName( txMappingName.Text ) ) { if ( SCMappings.IsValidMappingName( txMappingName.Text ) ) {
txMappingName.BackColor = MyColors.ValidColor; txMappingName.BackColor = MyColors.ValidColor;
} } else {
else {
txMappingName.BackColor = MyColors.InvalidColor; txMappingName.BackColor = MyColors.InvalidColor;
} }
} }
@ -1302,8 +1297,7 @@ namespace SCJMapper_V2
j = m_Joystick.Find_jsN( i + 1 ); j = m_Joystick.Find_jsN( i + 1 );
if ( j != null ) { if ( j != null ) {
newTree.ActionMaps.jsN[i] = j.DevName; newTree.ActionMaps.jsNGUID[i] = j.DevInstanceGUID; newTree.ActionMaps.jsN[i] = j.DevName; newTree.ActionMaps.jsNGUID[i] = j.DevInstanceGUID;
} } else {
else {
newTree.ActionMaps.jsN[i] = ""; newTree.ActionMaps.jsNGUID[i] = ""; newTree.ActionMaps.jsN[i] = ""; newTree.ActionMaps.jsNGUID[i] = "";
} }
} }
@ -1344,8 +1338,7 @@ namespace SCJMapper_V2
nodeText = m_AT.FindText( "spaceship_movement", find ); // returns "" or a complete text ("action - command") nodeText = m_AT.FindText( "spaceship_movement", find ); // returns "" or a complete text ("action - command")
if ( !String.IsNullOrWhiteSpace( nodeText ) ) { if ( !String.IsNullOrWhiteSpace( nodeText ) ) {
dev = m_Joystick.Find_jsN( JoystickCls.JSNum( ActionTreeNode.CommandFromNodeText( nodeText ) ) ); dev = m_Joystick.Find_jsN( JoystickCls.JSNum( ActionTreeNode.CommandFromNodeText( nodeText ) ) );
} } else {
else {
find = ActionTreeNode.ComposeNodeText( "v_yaw", "xi" ); find = ActionTreeNode.ComposeNodeText( "v_yaw", "xi" );
nodeText = m_AT.FindText( "spaceship_movement", find ); nodeText = m_AT.FindText( "spaceship_movement", find );
if ( !String.IsNullOrWhiteSpace( nodeText ) ) { if ( !String.IsNullOrWhiteSpace( nodeText ) ) {
@ -1361,21 +1354,19 @@ namespace SCJMapper_V2
m_AT.ActionMaps.TuningY.Action = nodeText; m_AT.ActionMaps.TuningY.Action = nodeText;
m_AT.ActionMaps.TuningY.Deadzone = m_AT.ActionMaps.DeadzoneX; m_AT.ActionMaps.TuningY.Deadzone = m_AT.ActionMaps.DeadzoneX;
JSCAL.YawTuning = m_AT.ActionMaps.TuningY; JSCAL.YawTuning = m_AT.ActionMaps.TuningY;
} } else if ( nodeText.ToLowerInvariant( ).EndsWith( "_y" ) || nodeText.ToLowerInvariant( ).EndsWith( "_roty" ) ) {
else if ( nodeText.ToLowerInvariant( ).EndsWith( "_y" ) || nodeText.ToLowerInvariant( ).EndsWith( "_roty" ) ) {
m_AT.ActionMaps.TuningY.GameDevice = dev; m_AT.ActionMaps.TuningY.GameDevice = dev;
m_AT.ActionMaps.TuningY.Action = nodeText; m_AT.ActionMaps.TuningY.Action = nodeText;
m_AT.ActionMaps.TuningY.Deadzone = m_AT.ActionMaps.DeadzoneY; m_AT.ActionMaps.TuningY.Deadzone = m_AT.ActionMaps.DeadzoneY;
JSCAL.YawTuning = m_AT.ActionMaps.TuningY; JSCAL.YawTuning = m_AT.ActionMaps.TuningY;
} } else if ( nodeText.ToLowerInvariant( ).EndsWith( "_z" ) || nodeText.ToLowerInvariant( ).EndsWith( "_rotz" ) ) {
else if ( nodeText.ToLowerInvariant( ).EndsWith( "_z" ) || nodeText.ToLowerInvariant( ).EndsWith( "_rotz" ) ) {
m_AT.ActionMaps.TuningY.GameDevice = dev; m_AT.ActionMaps.TuningY.GameDevice = dev;
m_AT.ActionMaps.TuningY.Action = nodeText; m_AT.ActionMaps.TuningY.Action = nodeText;
m_AT.ActionMaps.TuningY.Deadzone = m_AT.ActionMaps.DeadzoneZ; m_AT.ActionMaps.TuningY.Deadzone = m_AT.ActionMaps.DeadzoneZ;
JSCAL.YawTuning = m_AT.ActionMaps.TuningY; JSCAL.YawTuning = m_AT.ActionMaps.TuningY;
} }
// GP commands that are supported - X // GP commands that are supported - X
else if ( nodeText.ToLowerInvariant( ).Contains( "_thumblx" ) || nodeText.ToLowerInvariant( ).Contains( "_thumbrx" ) ) { else if ( nodeText.ToLowerInvariant( ).Contains( "_thumblx" ) || nodeText.ToLowerInvariant( ).Contains( "_thumbrx" ) ) {
m_AT.ActionMaps.TuningY.GameDevice = dev; m_AT.ActionMaps.TuningY.GameDevice = dev;
m_AT.ActionMaps.TuningY.Action = nodeText; m_AT.ActionMaps.TuningY.Action = nodeText;
m_AT.ActionMaps.TuningY.Deadzone = m_AT.ActionMaps.DeadzoneX; m_AT.ActionMaps.TuningY.Deadzone = m_AT.ActionMaps.DeadzoneX;
@ -1389,8 +1380,7 @@ namespace SCJMapper_V2
nodeText = m_AT.FindText( "spaceship_movement", find ); // returns "" or a complete text ("action - command") nodeText = m_AT.FindText( "spaceship_movement", find ); // returns "" or a complete text ("action - command")
if ( !String.IsNullOrWhiteSpace( nodeText ) ) { if ( !String.IsNullOrWhiteSpace( nodeText ) ) {
dev = m_Joystick.Find_jsN( JoystickCls.JSNum( ActionTreeNode.CommandFromNodeText( nodeText ) ) ); dev = m_Joystick.Find_jsN( JoystickCls.JSNum( ActionTreeNode.CommandFromNodeText( nodeText ) ) );
} } else {
else {
find = ActionTreeNode.ComposeNodeText( "v_pitch", "xi" ); find = ActionTreeNode.ComposeNodeText( "v_pitch", "xi" );
nodeText = m_AT.FindText( "spaceship_movement", find ); nodeText = m_AT.FindText( "spaceship_movement", find );
if ( !String.IsNullOrWhiteSpace( nodeText ) ) { if ( !String.IsNullOrWhiteSpace( nodeText ) ) {
@ -1406,14 +1396,12 @@ namespace SCJMapper_V2
m_AT.ActionMaps.TuningP.Action = nodeText; m_AT.ActionMaps.TuningP.Action = nodeText;
m_AT.ActionMaps.TuningP.Deadzone = m_AT.ActionMaps.DeadzoneX; m_AT.ActionMaps.TuningP.Deadzone = m_AT.ActionMaps.DeadzoneX;
JSCAL.PitchTuning = m_AT.ActionMaps.TuningP; JSCAL.PitchTuning = m_AT.ActionMaps.TuningP;
} } else if ( nodeText.ToLowerInvariant( ).EndsWith( "_y" ) || nodeText.ToLowerInvariant( ).EndsWith( "_roty" ) ) {
else if ( nodeText.ToLowerInvariant( ).EndsWith( "_y" ) || nodeText.ToLowerInvariant( ).EndsWith( "_roty" ) ) {
m_AT.ActionMaps.TuningP.GameDevice = dev; m_AT.ActionMaps.TuningP.GameDevice = dev;
m_AT.ActionMaps.TuningP.Action = nodeText; m_AT.ActionMaps.TuningP.Action = nodeText;
m_AT.ActionMaps.TuningP.Deadzone = m_AT.ActionMaps.DeadzoneY; m_AT.ActionMaps.TuningP.Deadzone = m_AT.ActionMaps.DeadzoneY;
JSCAL.PitchTuning = m_AT.ActionMaps.TuningP; JSCAL.PitchTuning = m_AT.ActionMaps.TuningP;
} } else if ( nodeText.ToLowerInvariant( ).EndsWith( "_z" ) || nodeText.ToLowerInvariant( ).EndsWith( "_rotz" ) ) {
else if ( nodeText.ToLowerInvariant( ).EndsWith( "_z" ) || nodeText.ToLowerInvariant( ).EndsWith( "_rotz" ) ) {
m_AT.ActionMaps.TuningP.GameDevice = dev; m_AT.ActionMaps.TuningP.GameDevice = dev;
m_AT.ActionMaps.TuningP.Action = nodeText; m_AT.ActionMaps.TuningP.Action = nodeText;
m_AT.ActionMaps.TuningP.Deadzone = m_AT.ActionMaps.DeadzoneZ; m_AT.ActionMaps.TuningP.Deadzone = m_AT.ActionMaps.DeadzoneZ;
@ -1444,14 +1432,12 @@ namespace SCJMapper_V2
m_AT.ActionMaps.TuningR.Action = nodeText; m_AT.ActionMaps.TuningR.Action = nodeText;
m_AT.ActionMaps.TuningR.Deadzone = m_AT.ActionMaps.DeadzoneX; m_AT.ActionMaps.TuningR.Deadzone = m_AT.ActionMaps.DeadzoneX;
JSCAL.RollTuning = m_AT.ActionMaps.TuningR; JSCAL.RollTuning = m_AT.ActionMaps.TuningR;
} } else if ( nodeText.ToLowerInvariant( ).EndsWith( "_y" ) || nodeText.ToLowerInvariant( ).EndsWith( "_roty" ) ) {
else if ( nodeText.ToLowerInvariant( ).EndsWith( "_y" ) || nodeText.ToLowerInvariant( ).EndsWith( "_roty" ) ) {
m_AT.ActionMaps.TuningR.GameDevice = dev; m_AT.ActionMaps.TuningR.GameDevice = dev;
m_AT.ActionMaps.TuningR.Action = nodeText; m_AT.ActionMaps.TuningR.Action = nodeText;
m_AT.ActionMaps.TuningR.Deadzone = m_AT.ActionMaps.DeadzoneY; m_AT.ActionMaps.TuningR.Deadzone = m_AT.ActionMaps.DeadzoneY;
JSCAL.RollTuning = m_AT.ActionMaps.TuningR; JSCAL.RollTuning = m_AT.ActionMaps.TuningR;
} } else if ( nodeText.ToLowerInvariant( ).EndsWith( "_z" ) || nodeText.ToLowerInvariant( ).EndsWith( "_rotz" ) ) {
else if ( nodeText.ToLowerInvariant( ).EndsWith( "_z" ) || nodeText.ToLowerInvariant( ).EndsWith( "_rotz" ) ) {
m_AT.ActionMaps.TuningR.GameDevice = dev; m_AT.ActionMaps.TuningR.GameDevice = dev;
m_AT.ActionMaps.TuningR.Action = nodeText; m_AT.ActionMaps.TuningR.Action = nodeText;
m_AT.ActionMaps.TuningR.Deadzone = m_AT.ActionMaps.DeadzoneZ; m_AT.ActionMaps.TuningR.Deadzone = m_AT.ActionMaps.DeadzoneZ;
@ -1493,8 +1479,7 @@ namespace SCJMapper_V2
lblLastJ.Focus( ); lblLastJ.Focus( );
m_Keyboard.Activate( ); m_Keyboard.Activate( );
m_Keyboard.GetData( ); // poll to aquire once m_Keyboard.GetData( ); // poll to aquire once
} } else {
else {
m_mouseIn = false; // not longer m_mouseIn = false; // not longer
lblLastJ.BackColor = MyColors.ValidColor; lblLastJ.BackColor = MyColors.ValidColor;
btJsKbd.ImageKey = "J"; btJsKbd.ImageKey = "J";
@ -1513,8 +1498,7 @@ namespace SCJMapper_V2
// don't override modifiers when we are in mouse mode and the mod is the same and there is no kbd entry.... // don't override modifiers when we are in mouse mode and the mod is the same and there is no kbd entry....
if ( m_mouseIn && ( keyModS == modS ) && ( m_persistentMods == ( modS + "+" ) ) ) { if ( m_mouseIn && ( keyModS == modS ) && ( m_persistentMods == ( modS + "+" ) ) ) {
; // nothing here - ; // nothing here -
} } else {
else {
lblLastJ.Text = m_Keyboard.GetLastChange( true ); lblLastJ.Text = m_Keyboard.GetLastChange( true );
m_mouseIn = false; // clear on kbd input m_mouseIn = false; // clear on kbd input
} }
@ -1539,13 +1523,11 @@ namespace SCJMapper_V2
if ( modS.Contains( KeyboardCls.ClearMods ) ) { if ( modS.Contains( KeyboardCls.ClearMods ) ) {
// allow to cancel modifiers // allow to cancel modifiers
m_persistentMods = ""; // kill persistent ones m_persistentMods = ""; // kill persistent ones
} } else {
else {
m_persistentMods = modS + "+"; m_persistentMods = modS + "+";
m_modifierTimeout = c_modifierTime; // restart show interval m_modifierTimeout = c_modifierTime; // restart show interval
} }
} } else {
else {
if ( m_modifierTimeout <= 0 ) { if ( m_modifierTimeout <= 0 ) {
m_persistentMods = ""; // modifier timed out m_persistentMods = ""; // modifier timed out
m_mouseIn = false; m_mouseIn = false;
@ -1574,8 +1556,7 @@ namespace SCJMapper_V2
if ( int.TryParse( ( string )ts.Tag, out btNum ) ) { if ( int.TryParse( ( string )ts.Tag, out btNum ) ) {
// got a button (most likely..) // got a button (most likely..)
item = "mouse" + btNum.ToString( ); item = "mouse" + btNum.ToString( );
} } else if ( ( string )ts.Tag == "X" )
else if ( ( string )ts.Tag == "X" )
item = "maxis_x"; item = "maxis_x";
else if ( ( string )ts.Tag == "Y" ) else if ( ( string )ts.Tag == "Y" )
item = "maxis_y"; item = "maxis_y";
@ -1594,14 +1575,12 @@ namespace SCJMapper_V2
if ( m_Keyboard == null ) { if ( m_Keyboard == null ) {
// no keyboard = no modifier // no keyboard = no modifier
ctrl = MouseCls.MakeCtrl( item, "" ); // show last handled JS control ctrl = MouseCls.MakeCtrl( item, "" ); // show last handled JS control
} } else {
else {
UpdateModifiers( ); UpdateModifiers( );
ctrl = MouseCls.MakeCtrl( item, m_persistentMods ); // show last handled JS control ctrl = MouseCls.MakeCtrl( item, m_persistentMods ); // show last handled JS control
} }
m_mouseIn = true; // for this one only m_mouseIn = true; // for this one only
} } else if ( KeyboardCls.IsDeviceClass( device ) ) {
else if ( KeyboardCls.IsDeviceClass( device ) ) {
UpdateModifiers( ); UpdateModifiers( );
ctrl = KeyboardCls.MakeCtrl( item, m_persistentMods ); // show last handled JS control ctrl = KeyboardCls.MakeCtrl( item, m_persistentMods ); // show last handled JS control
} }
@ -1618,7 +1597,7 @@ namespace SCJMapper_V2
// only if needed // only if needed
if ( ( FTAB != null ) && FTAB.Visible ) { if ( ( FTAB != null ) && FTAB.Visible ) {
FTAB.SuspendDGV( ); FTAB.SuspendDGV( );
m_AT.ActionMaps.toDataSet( FTAB.DS_AMaps); m_AT.ActionMaps.toDataSet( FTAB.DS_AMaps );
FTAB.ResumeDGV( ); FTAB.ResumeDGV( );
FTAB.Populate( ); FTAB.Populate( );
} }
@ -1639,7 +1618,7 @@ namespace SCJMapper_V2
private void btTable_Click( object sender, EventArgs e ) private void btTable_Click( object sender, EventArgs e )
{ {
bool created = false; bool created = false;
if (FTAB == null ) { if ( FTAB == null ) {
FTAB = new FormTable( ); FTAB = new FormTable( );
FTAB.EditActionEvent += FTAB_EditActionEvent; FTAB.EditActionEvent += FTAB_EditActionEvent;
FTAB.UpdateEditEvent += FTAB_UpdateEditEvent; FTAB.UpdateEditEvent += FTAB_UpdateEditEvent;
@ -1655,7 +1634,7 @@ namespace SCJMapper_V2
} else { } else {
FTAB.Show( ); FTAB.Show( );
if (created) { if ( created ) {
FTAB.Size = m_AppSettings.FormTableSize; FTAB.Size = m_AppSettings.FormTableSize;
FTAB.Location = m_AppSettings.FormTableLocation; FTAB.Location = m_AppSettings.FormTableLocation;
FTAB.LastColSize = m_AppSettings.FormTableColumnWidth; FTAB.LastColSize = m_AppSettings.FormTableColumnWidth;
@ -1681,13 +1660,12 @@ namespace SCJMapper_V2
} }
// called when the user if the TAB form wants to edit a row // called when the user if the TAB form wants to edit a row
private void FTAB_EditActionEvent( object sender, EditRowEventArgs e ) private void FTAB_EditActionEvent( object sender, EditRowEventArgs e )
{ {
m_AT.FindAndSelectActionKey( e.Actionmap, e.Actionkey, e.Nodeindex ); m_AT.FindAndSelectActionKey( e.Actionmap, e.Actionkey, e.Nodeindex );
} }
} }
} }

@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA6 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA6
EAAAAk1TRnQBSQFMAgEBCQEAAWABEAFgAhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA EAAAAk1TRnQBSQFMAgEBCQEAAcABEAHAAhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AUADAAEwAwABAQEAAQgGAAEMGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA AUADAAEwAwABAQEAAQgGAAEMGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
@ -470,15 +470,6 @@
x1//2Q== x1//2Q==
</value> </value>
</data> </data>
<metadata name="OFD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 17</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>209, 17</value>
</metadata>
<metadata name="SFD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>421, 17</value>
</metadata>
<data name="btSaveMyMapping.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="btSaveMyMapping.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
@ -551,6 +542,15 @@
Tesk88046SuRb2gfwdMB6S/DHs/UzS4d0QAAAABJRU5ErkJggg== Tesk88046SuRb2gfwdMB6S/DHs/UzS4d0QAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<metadata name="OFD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 17</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>209, 17</value>
</metadata>
<metadata name="SFD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>421, 17</value>
</metadata>
<data name="tsBtReset.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsBtReset.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8

@ -64,6 +64,8 @@ namespace SCJMapper_V2
for ( int i = 0; i < chkLbActionMaps.Items.Count; i++ ) { for ( int i = 0; i < chkLbActionMaps.Items.Count; i++ ) {
if ( m_owner.IgnoreActionmaps.Contains( "," + chkLbActionMaps.Items[i].ToString( ) + "," ) ) { if ( m_owner.IgnoreActionmaps.Contains( "," + chkLbActionMaps.Items[i].ToString( ) + "," ) ) {
chkLbActionMaps.SetItemChecked( i, true ); chkLbActionMaps.SetItemChecked( i, true );
} else {
chkLbActionMaps.SetItemChecked( i, false ); // 20161223: fix checked items and Canceled
} }
} }
@ -104,7 +106,7 @@ namespace SCJMapper_V2
// Ignore actionmaps // Ignore actionmaps
String ignore = ","; String ignore = ",";
for ( int i = 0; i < chkLbActionMaps.Items.Count; i++ ) { for ( int i = 0; i < chkLbActionMaps.Items.Count; i++ ) {
if ( chkLbActionMaps.GetItemChecked( i ) ) { if ( chkLbActionMaps.GetItemCheckState( i ) == CheckState.Checked ) {
ignore += chkLbActionMaps.Items[i].ToString( ) + ","; ignore += chkLbActionMaps.Items[i].ToString( ) + ",";
} }
} }
@ -190,6 +192,6 @@ namespace SCJMapper_V2
} }
} }
} }
} }

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion( "2.26.0.60" )] [assembly: AssemblyVersion( "2.27.0.61" )]
[assembly: AssemblyFileVersion( "2.26.0.60" )] [assembly: AssemblyFileVersion( "2.27.0.61" )]

@ -399,8 +399,6 @@ namespace SCJMapper_V2.SC
Boolean retVal = true; Boolean retVal = true;
if ( ActionMapsCls.ActionMaps.Length == 0 ) ActionMapsCls.LoadSupportedActionMaps( ); // make sure we have them loaded ( refactoring to get a singleton or so...)
try { try {
do { do {
if ( xr.IsStartElement( ) ) { if ( xr.IsStartElement( ) ) {
@ -472,12 +470,15 @@ namespace SCJMapper_V2.SC
{ {
log.Debug( "DProfileReader.fromXML - Entry" ); log.Debug( "DProfileReader.fromXML - Entry" );
if ( ActionMapsCls.ActionMaps.Length == 0 ) ActionMapsCls.LoadSupportedActionMaps( ActionMapList( xml ) ); // make sure we have them loaded ( refactoring to get a singleton or so...)
XmlReaderSettings settings = new XmlReaderSettings( ); XmlReaderSettings settings = new XmlReaderSettings( );
settings.ConformanceLevel = ConformanceLevel.Fragment; settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true; settings.IgnoreWhitespace = true;
settings.IgnoreComments = true; settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create( new StringReader( xml ), settings ); XmlReader reader = XmlReader.Create( new StringReader( xml ), settings );
m_nodeNameStack = new Stack<String>( ); m_nodeNameStack = new Stack<String>( );
m_aMap = new Dictionary<String, ActionMap>( ); m_aMap = new Dictionary<String, ActionMap>( );
// init the activation modes singleton // init the activation modes singleton
@ -489,13 +490,39 @@ namespace SCJMapper_V2.SC
ValidContent &= ReadActivationModes( reader ); ValidContent &= ReadActivationModes( reader );
m_nodeNameStack.Push( "profile" ); // we are already in the XML now m_nodeNameStack.Push( "profile" ); // we are already in the XML now
ValidContent &= ReadXML( reader ); ValidContent &= ReadXML( reader );
return ValidContent; return ValidContent;
} }
/// <summary>
/// Returns the acionmals contained in the profile xml string
/// </summary>
/// <param name="xml">A default profile XML string</param>
/// <returns>A filled SCActionMapList object</returns>
public SCActionMapList ActionMapList(string xml )
{
SCActionMapList aml = new SCActionMapList();
log.Debug( "DProfileReader.ActionMapList - Entry" );
XmlReaderSettings settings = new XmlReaderSettings( );
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create( new StringReader( xml ), settings );
reader.Read( );
if ( !reader.ReadToFollowing( "actionmap" ) ) return aml; // ERROR empty one..
do {
string attr = reader["name"];
if ( !string.IsNullOrEmpty( attr ) )
aml.AddActionMap( attr );
} while ( reader.ReadToFollowing( "actionmap" ) );
return aml;
}
} }
} }

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SCJMapper_V2.SC
{
class SCActionMapList : SortedList<int, string>
{
private int NextID
{
get {
return this.Count;
}
}
public void AddActionMap( string amName )
{
if ( !this.ContainsValue( amName ) )
this.Add( NextID, amName );
}
public string[] ActionMaps { get { return this.Values.ToArray( ); } }
}
}

@ -26,8 +26,8 @@
<UpdatePeriodically>false</UpdatePeriodically> <UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired> <UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions> <MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>60</ApplicationRevision> <ApplicationRevision>61</ApplicationRevision>
<ApplicationVersion>2.26.0.%2a</ApplicationVersion> <ApplicationVersion>2.27.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled> <BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup> </PropertyGroup>
@ -126,6 +126,7 @@
<Compile Include="appConfiguration.cs" /> <Compile Include="appConfiguration.cs" />
<Compile Include="AppSettings.cs" /> <Compile Include="AppSettings.cs" />
<Compile Include="DeviceCls.cs" /> <Compile Include="DeviceCls.cs" />
<Compile Include="SC\SCActionMapList.cs" />
<Compile Include="Table\DS_ActionMap.cs" /> <Compile Include="Table\DS_ActionMap.cs" />
<Compile Include="Table\DS_ActionMaps.cs"> <Compile Include="Table\DS_ActionMaps.cs">
<DependentUpon>DS_ActionMaps.xsd</DependentUpon> <DependentUpon>DS_ActionMaps.xsd</DependentUpon>

@ -41,11 +41,11 @@ namespace SCJMapper_V2
// actionmap names to gather (do we need them to be cofigurable ??) // actionmap names to gather (do we need them to be cofigurable ??)
public static String[] ActionMaps = { }; public static String[] ActionMaps = { };
public static void LoadSupportedActionMaps( )
public static void LoadSupportedActionMaps( SCActionMapList aml )
{ {
// load actionmaps // load actionmaps
String acm = AppConfiguration.AppConfig.scActionmaps; ActionMaps = aml.ActionMaps;
ActionMaps = acm.Split( new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries );
} }
#endregion Static Part of ActionMaps #endregion Static Part of ActionMaps
@ -181,7 +181,7 @@ namespace SCJMapper_V2
CreateNewOptions( ); CreateNewOptions( );
LoadSupportedActionMaps( ); // get them from config //LoadSupportedActionMaps( ); // get them from config @@@@@@@@@
} }

@ -11,10 +11,7 @@
<!-- This is the minimal change that detects a movement of an axis (Joystick, Gamepad, Mouse) <!-- This is the minimal change that detects a movement of an axis (Joystick, Gamepad, Mouse)
default are 150,500,150 - you may change it to get the detection less sensitive --> default are 150,500,150 - you may change it to get the detection less sensitive -->
<AppConfiguration jsSenseLimit="150" gpSenseLimit="500" msSenseLimit="150" scActionmaps="default, multiplayer, singleplayer <AppConfiguration jsSenseLimit="150" gpSenseLimit="500" msSenseLimit="150" />
,invite, player, player_choice, prone, flycam, vehicle_general, vehicle_driver, vehicle_gunner
,spaceship_general, spaceship_view, spaceship_movement, spaceship_targeting, spaceship_turret, spaceship_weapons, spaceship_missiles
,spaceship_defensive, spaceship_auto_weapons, spaceship_power, spaceship_radar, spaceship_hud, zero_gravity_general, zero_gravity_eva, IFCS_controls"/>
<runtime> <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly> <dependentAssembly>

@ -25,13 +25,6 @@ namespace SCJMapper_V2
private static readonly ConfigurationProperty _msSenseLimit = private static readonly ConfigurationProperty _msSenseLimit =
new ConfigurationProperty( "msSenseLimit", typeof( int ), ( int )150, ConfigurationPropertyOptions.None ); new ConfigurationProperty( "msSenseLimit", typeof( int ), ( int )150, ConfigurationPropertyOptions.None );
// The scActionmaps property.
private static String _defaultActionmaps = "default,multiplayer,singleplayer,invite,player,player_choice,prone,flycam,vehicle_general,vehicle_driver,vehicle_gunner"
+ ",spaceship_general,spaceship_view,spaceship_movement,spaceship_targeting,spaceship_turret,spaceship_weapons,spaceship_missiles"
+ ",spaceship_defensive,spaceship_auto_weapons,spaceship_power,spaceship_radar,spaceship_hud,zero_gravity_general,zero_gravity_eva,IFCS_controls";
private static readonly ConfigurationProperty _scActionmaps =
new ConfigurationProperty( "scActionmaps", typeof( String ), (String)_defaultActionmaps, ConfigurationPropertyOptions.None );
// ctor // ctor
public AppConfiguration( ) public AppConfiguration( )
{ {
@ -40,7 +33,6 @@ namespace SCJMapper_V2
_Properties.Add( _jsSenseLimit ); _Properties.Add( _jsSenseLimit );
_Properties.Add( _gpSenseLimit ); _Properties.Add( _gpSenseLimit );
_Properties.Add( _msSenseLimit ); _Properties.Add( _msSenseLimit );
_Properties.Add( _scActionmaps );
} }
@ -168,22 +160,6 @@ namespace SCJMapper_V2
} }
} }
/// <summary>
/// The actionmaps supported
/// </summary>
static public String scActionmaps
{
get
{
AppConfiguration s = GetAppSection( );
if ( s != null ) {
// get rid of blanks and CR,LFs from the config file
String t = s.scActionmaps.Replace( " ", "" ).Replace( String.Format( "\n" ), "" ).Replace( String.Format( "\r" ), "" );
return t;
}
else return _defaultActionmaps; // default if things go wrong...
}
}
} }

Loading…
Cancel
Save