more AC 1.0 Updates:

support Invert Option commands
pull/104/head v2.10beta
bm98 10 years ago
parent 47fb23f1cf
commit c0d691b728

242
Form1.Designer.cs generated

@ -59,6 +59,9 @@
this.lblAction = new System.Windows.Forms.Label();
this.btAssign = new System.Windows.Forms.Button();
this.treeView1 = new System.Windows.Forms.TreeView();
this.cmAddDel = new System.Windows.Forms.ContextMenuStrip(this.components);
this.tsiAddBinding = new System.Windows.Forms.ToolStripMenuItem();
this.tdiDelBinding = new System.Windows.Forms.ToolStripMenuItem();
this.tc1 = new System.Windows.Forms.TabControl();
this.tabJS1 = new System.Windows.Forms.TabPage();
this.panel1 = new System.Windows.Forms.Panel();
@ -107,12 +110,22 @@
this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.cmAddDel = new System.Windows.Forms.ContextMenuStrip(this.components);
this.tsiAddBinding = new System.Windows.Forms.ToolStripMenuItem();
this.tdiDelBinding = new System.Windows.Forms.ToolStripMenuItem();
this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel();
this.cbxInvFlightPitch = new System.Windows.Forms.CheckBox();
this.cbxInvFlightYaw = new System.Windows.Forms.CheckBox();
this.cbxInvFlightRoll = new System.Windows.Forms.CheckBox();
this.cbxInvStrafeVert = new System.Windows.Forms.CheckBox();
this.cbxInvStrafeLat = new System.Windows.Forms.CheckBox();
this.cbxInvStrafeLon = new System.Windows.Forms.CheckBox();
this.cbxInvAimPitch = new System.Windows.Forms.CheckBox();
this.cbxInvAimYaw = new System.Windows.Forms.CheckBox();
this.cbxInvThrottle = new System.Windows.Forms.CheckBox();
this.cbxInvViewPitch = new System.Windows.Forms.CheckBox();
this.cbxInvViewYaw = new System.Windows.Forms.CheckBox();
this.UC_JoyPanel = new SCJMapper_V2.UC_JoyPanel();
this.cmCopyPaste.SuspendLayout();
this.panel2.SuspendLayout();
this.cmAddDel.SuspendLayout();
this.tc1.SuspendLayout();
this.tabJS1.SuspendLayout();
this.panel1.SuspendLayout();
@ -123,7 +136,7 @@
this.tableLayoutPanel3.SuspendLayout();
this.flowLayoutPanel2.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.cmAddDel.SuspendLayout();
this.flowLayoutPanel3.SuspendLayout();
this.SuspendLayout();
//
// btDumpList
@ -145,8 +158,7 @@
this.rtb.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtb.Location = new System.Drawing.Point(676, 81);
this.rtb.Name = "rtb";
this.tlpanel.SetRowSpan(this.rtb, 2);
this.rtb.Size = new System.Drawing.Size(372, 666);
this.rtb.Size = new System.Drawing.Size(372, 529);
this.rtb.TabIndex = 21;
this.rtb.Text = "";
this.rtb.WordWrap = false;
@ -377,10 +389,33 @@
this.treeView1.Name = "treeView1";
this.tlpanel.SetRowSpan(this.treeView1, 2);
this.treeView1.SelectedImageKey = "Selected";
this.treeView1.Size = new System.Drawing.Size(364, 666);
this.treeView1.Size = new System.Drawing.Size(364, 685);
this.treeView1.TabIndex = 16;
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
//
// cmAddDel
//
this.cmAddDel.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsiAddBinding,
this.tdiDelBinding});
this.cmAddDel.Name = "cmAddDel";
this.cmAddDel.Size = new System.Drawing.Size(159, 48);
this.cmAddDel.Opening += new System.ComponentModel.CancelEventHandler(this.cmAddDel_Opening);
//
// tsiAddBinding
//
this.tsiAddBinding.Name = "tsiAddBinding";
this.tsiAddBinding.Size = new System.Drawing.Size(158, 22);
this.tsiAddBinding.Text = "Add Mapping";
this.tsiAddBinding.Click += new System.EventHandler(this.tsiAddBinding_Click);
//
// tdiDelBinding
//
this.tdiDelBinding.Name = "tdiDelBinding";
this.tdiDelBinding.Size = new System.Drawing.Size(158, 22);
this.tdiDelBinding.Text = "Delete Mapping";
this.tdiDelBinding.Click += new System.EventHandler(this.tdiDelBinding_Click);
//
// tc1
//
this.tc1.Controls.Add(this.tabJS1);
@ -481,7 +516,7 @@
// buttonExit
//
this.buttonExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonExit.Location = new System.Drawing.Point(171, 40);
this.buttonExit.Location = new System.Drawing.Point(171, 51);
this.buttonExit.Name = "buttonExit";
this.buttonExit.Size = new System.Drawing.Size(120, 24);
this.buttonExit.TabIndex = 13;
@ -520,6 +555,7 @@
this.tlpanel.Controls.Add(this.tableLayoutPanel2, 1, 3);
this.tlpanel.Controls.Add(this.tableLayoutPanel3, 2, 3);
this.tlpanel.Controls.Add(this.flowLayoutPanel2, 0, 3);
this.tlpanel.Controls.Add(this.flowLayoutPanel3, 2, 2);
this.tlpanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.tlpanel.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
this.tlpanel.Location = new System.Drawing.Point(0, 0);
@ -531,7 +567,7 @@
this.tlpanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 65F));
this.tlpanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 35F));
this.tlpanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F));
this.tlpanel.Size = new System.Drawing.Size(1054, 862);
this.tlpanel.Size = new System.Drawing.Size(1054, 892);
this.tlpanel.TabIndex = 25;
//
// flowLayoutPanel1
@ -563,7 +599,7 @@
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(294, 131);
this.tableLayoutPanel1.Size = new System.Drawing.Size(294, 150);
this.tableLayoutPanel1.TabIndex = 23;
//
// btJSTuning
@ -585,18 +621,18 @@
this.tableLayoutPanel2.Controls.Add(this.btJsReassign, 0, 0);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel2.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
this.tableLayoutPanel2.Location = new System.Drawing.Point(376, 753);
this.tableLayoutPanel2.Location = new System.Drawing.Point(376, 772);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 2;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(294, 67);
this.tableLayoutPanel2.Size = new System.Drawing.Size(294, 78);
this.tableLayoutPanel2.TabIndex = 24;
//
// btSettings
//
this.btSettings.Location = new System.Drawing.Point(3, 40);
this.btSettings.Location = new System.Drawing.Point(3, 51);
this.btSettings.Name = "btSettings";
this.btSettings.Size = new System.Drawing.Size(120, 24);
this.btSettings.TabIndex = 14;
@ -606,7 +642,7 @@
// btJsReassign
//
this.btJsReassign.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btJsReassign.Location = new System.Drawing.Point(3, 10);
this.btJsReassign.Location = new System.Drawing.Point(3, 21);
this.btJsReassign.Name = "btJsReassign";
this.btJsReassign.Size = new System.Drawing.Size(120, 24);
this.btJsReassign.TabIndex = 16;
@ -624,19 +660,19 @@
this.tableLayoutPanel3.Controls.Add(this.label1, 0, 0);
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel3.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
this.tableLayoutPanel3.Location = new System.Drawing.Point(676, 753);
this.tableLayoutPanel3.Location = new System.Drawing.Point(676, 772);
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
this.tableLayoutPanel3.RowCount = 2;
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
this.tableLayoutPanel3.Size = new System.Drawing.Size(372, 67);
this.tableLayoutPanel3.Size = new System.Drawing.Size(372, 78);
this.tableLayoutPanel3.TabIndex = 25;
//
// btSaveMyMapping
//
this.btSaveMyMapping.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btSaveMyMapping.Image = ((System.Drawing.Image)(resources.GetObject("btSaveMyMapping.Image")));
this.btSaveMyMapping.Location = new System.Drawing.Point(164, 40);
this.btSaveMyMapping.Location = new System.Drawing.Point(164, 51);
this.btSaveMyMapping.Name = "btSaveMyMapping";
this.btSaveMyMapping.Size = new System.Drawing.Size(205, 24);
this.btSaveMyMapping.TabIndex = 15;
@ -647,7 +683,7 @@
//
// btLoadMyMapping
//
this.btLoadMyMapping.Location = new System.Drawing.Point(3, 40);
this.btLoadMyMapping.Location = new System.Drawing.Point(3, 51);
this.btLoadMyMapping.Name = "btLoadMyMapping";
this.btLoadMyMapping.Size = new System.Drawing.Size(120, 24);
this.btLoadMyMapping.TabIndex = 14;
@ -659,7 +695,7 @@
//
this.txMappingName.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.txMappingName.CharacterCasing = System.Windows.Forms.CharacterCasing.Lower;
this.txMappingName.Location = new System.Drawing.Point(135, 7);
this.txMappingName.Location = new System.Drawing.Point(135, 13);
this.txMappingName.Name = "txMappingName";
this.txMappingName.Size = new System.Drawing.Size(234, 22);
this.txMappingName.TabIndex = 0;
@ -670,7 +706,7 @@
//
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(41, 12);
this.label1.Location = new System.Drawing.Point(41, 17);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(88, 13);
this.label1.TabIndex = 16;
@ -686,9 +722,9 @@
this.flowLayoutPanel2.Controls.Add(this.txFilter);
this.flowLayoutPanel2.Controls.Add(this.btClearFilter);
this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.flowLayoutPanel2.Location = new System.Drawing.Point(6, 753);
this.flowLayoutPanel2.Location = new System.Drawing.Point(6, 772);
this.flowLayoutPanel2.Name = "flowLayoutPanel2";
this.flowLayoutPanel2.Size = new System.Drawing.Size(364, 67);
this.flowLayoutPanel2.Size = new System.Drawing.Size(364, 78);
this.flowLayoutPanel2.TabIndex = 26;
//
// cbxShowJoystick
@ -908,7 +944,7 @@
this.toolStripStatusLabel1,
this.tsDDbtMappings,
this.tsBtLoad});
this.statusStrip1.Location = new System.Drawing.Point(0, 832);
this.statusStrip1.Location = new System.Drawing.Point(0, 862);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
this.statusStrip1.ShowItemToolTips = true;
@ -916,28 +952,125 @@
this.statusStrip1.TabIndex = 26;
this.statusStrip1.Text = "statusStrip1";
//
// cmAddDel
//
this.cmAddDel.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsiAddBinding,
this.tdiDelBinding});
this.cmAddDel.Name = "cmAddDel";
this.cmAddDel.Size = new System.Drawing.Size(159, 48);
this.cmAddDel.Opening += new System.ComponentModel.CancelEventHandler(this.cmAddDel_Opening);
//
// tsiAddBinding
//
this.tsiAddBinding.Name = "tsiAddBinding";
this.tsiAddBinding.Size = new System.Drawing.Size(158, 22);
this.tsiAddBinding.Text = "Add Mapping";
this.tsiAddBinding.Click += new System.EventHandler(this.tsiAddBinding_Click);
//
// tdiDelBinding
//
this.tdiDelBinding.Name = "tdiDelBinding";
this.tdiDelBinding.Size = new System.Drawing.Size(158, 22);
this.tdiDelBinding.Text = "Delete Mapping";
this.tdiDelBinding.Click += new System.EventHandler(this.tdiDelBinding_Click);
// flowLayoutPanel3
//
this.flowLayoutPanel3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.flowLayoutPanel3.Controls.Add(this.cbxInvFlightPitch);
this.flowLayoutPanel3.Controls.Add(this.cbxInvAimPitch);
this.flowLayoutPanel3.Controls.Add(this.cbxInvViewPitch);
this.flowLayoutPanel3.Controls.Add(this.cbxInvFlightYaw);
this.flowLayoutPanel3.Controls.Add(this.cbxInvAimYaw);
this.flowLayoutPanel3.Controls.Add(this.cbxInvViewYaw);
this.flowLayoutPanel3.Controls.Add(this.cbxInvFlightRoll);
this.flowLayoutPanel3.Controls.Add(this.cbxInvThrottle);
this.flowLayoutPanel3.Controls.Add(this.cbxInvStrafeVert);
this.flowLayoutPanel3.Controls.Add(this.cbxInvStrafeLat);
this.flowLayoutPanel3.Controls.Add(this.cbxInvStrafeLon);
this.flowLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.flowLayoutPanel3.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flowLayoutPanel3.Location = new System.Drawing.Point(676, 616);
this.flowLayoutPanel3.Name = "flowLayoutPanel3";
this.flowLayoutPanel3.Size = new System.Drawing.Size(372, 150);
this.flowLayoutPanel3.TabIndex = 27;
//
// cbxInvFlightPitch
//
this.cbxInvFlightPitch.Location = new System.Drawing.Point(3, 3);
this.cbxInvFlightPitch.Name = "cbxInvFlightPitch";
this.cbxInvFlightPitch.Size = new System.Drawing.Size(168, 18);
this.cbxInvFlightPitch.TabIndex = 0;
this.cbxInvFlightPitch.Text = "Inv. Flight Pitch";
this.cbxInvFlightPitch.UseVisualStyleBackColor = true;
//
// cbxInvFlightYaw
//
this.cbxInvFlightYaw.Location = new System.Drawing.Point(3, 75);
this.cbxInvFlightYaw.Name = "cbxInvFlightYaw";
this.cbxInvFlightYaw.Size = new System.Drawing.Size(168, 18);
this.cbxInvFlightYaw.TabIndex = 0;
this.cbxInvFlightYaw.Text = "Inv. Flight Yaw";
this.cbxInvFlightYaw.UseVisualStyleBackColor = true;
//
// cbxInvFlightRoll
//
this.cbxInvFlightRoll.Location = new System.Drawing.Point(177, 3);
this.cbxInvFlightRoll.Name = "cbxInvFlightRoll";
this.cbxInvFlightRoll.Size = new System.Drawing.Size(168, 18);
this.cbxInvFlightRoll.TabIndex = 0;
this.cbxInvFlightRoll.Text = "Inv. Flight Roll";
this.cbxInvFlightRoll.UseVisualStyleBackColor = true;
//
// cbxInvStrafeVert
//
this.cbxInvStrafeVert.Location = new System.Drawing.Point(177, 51);
this.cbxInvStrafeVert.Name = "cbxInvStrafeVert";
this.cbxInvStrafeVert.Size = new System.Drawing.Size(168, 18);
this.cbxInvStrafeVert.TabIndex = 0;
this.cbxInvStrafeVert.Text = "Inv. Strafe vertical";
this.cbxInvStrafeVert.UseVisualStyleBackColor = true;
//
// cbxInvStrafeLat
//
this.cbxInvStrafeLat.Location = new System.Drawing.Point(177, 75);
this.cbxInvStrafeLat.Name = "cbxInvStrafeLat";
this.cbxInvStrafeLat.Size = new System.Drawing.Size(168, 18);
this.cbxInvStrafeLat.TabIndex = 0;
this.cbxInvStrafeLat.Text = "Inv. Strafe lateral";
this.cbxInvStrafeLat.UseVisualStyleBackColor = true;
//
// cbxInvStrafeLon
//
this.cbxInvStrafeLon.Location = new System.Drawing.Point(177, 99);
this.cbxInvStrafeLon.Name = "cbxInvStrafeLon";
this.cbxInvStrafeLon.Size = new System.Drawing.Size(168, 18);
this.cbxInvStrafeLon.TabIndex = 0;
this.cbxInvStrafeLon.Text = "Inv. Strafe longitudinal";
this.cbxInvStrafeLon.UseVisualStyleBackColor = true;
//
// cbxInvAimPitch
//
this.cbxInvAimPitch.Location = new System.Drawing.Point(3, 27);
this.cbxInvAimPitch.Name = "cbxInvAimPitch";
this.cbxInvAimPitch.Size = new System.Drawing.Size(168, 18);
this.cbxInvAimPitch.TabIndex = 0;
this.cbxInvAimPitch.Text = "Inv. Aim Pitch";
this.cbxInvAimPitch.UseVisualStyleBackColor = true;
//
// cbxInvAimYaw
//
this.cbxInvAimYaw.Location = new System.Drawing.Point(3, 99);
this.cbxInvAimYaw.Name = "cbxInvAimYaw";
this.cbxInvAimYaw.Size = new System.Drawing.Size(168, 18);
this.cbxInvAimYaw.TabIndex = 0;
this.cbxInvAimYaw.Text = "Inv. Aim Yaw";
this.cbxInvAimYaw.UseVisualStyleBackColor = true;
//
// cbxInvThrottle
//
this.cbxInvThrottle.Location = new System.Drawing.Point(177, 27);
this.cbxInvThrottle.Name = "cbxInvThrottle";
this.cbxInvThrottle.Size = new System.Drawing.Size(168, 18);
this.cbxInvThrottle.TabIndex = 0;
this.cbxInvThrottle.Text = "Inv. Throttle";
this.cbxInvThrottle.UseVisualStyleBackColor = true;
//
// cbxInvViewPitch
//
this.cbxInvViewPitch.Location = new System.Drawing.Point(3, 51);
this.cbxInvViewPitch.Name = "cbxInvViewPitch";
this.cbxInvViewPitch.Size = new System.Drawing.Size(168, 18);
this.cbxInvViewPitch.TabIndex = 0;
this.cbxInvViewPitch.Text = "Inv. View Pitch";
this.cbxInvViewPitch.UseVisualStyleBackColor = true;
//
// cbxInvViewYaw
//
this.cbxInvViewYaw.Location = new System.Drawing.Point(3, 123);
this.cbxInvViewYaw.Name = "cbxInvViewYaw";
this.cbxInvViewYaw.Size = new System.Drawing.Size(168, 18);
this.cbxInvViewYaw.TabIndex = 0;
this.cbxInvViewYaw.Text = "Inv. View Yaw";
this.cbxInvViewYaw.UseVisualStyleBackColor = true;
//
// UC_JoyPanel
//
@ -952,12 +1085,12 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1054, 862);
this.ClientSize = new System.Drawing.Size(1054, 892);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.tlpanel);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MinimumSize = new System.Drawing.Size(1070, 900);
this.MinimumSize = new System.Drawing.Size(1070, 930);
this.Name = "MainForm";
this.Text = "SC Joystick Mapper";
this.Activated += new System.EventHandler(this.MainForm_Activated);
@ -967,6 +1100,7 @@
this.cmCopyPaste.ResumeLayout(false);
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.cmAddDel.ResumeLayout(false);
this.tc1.ResumeLayout(false);
this.tabJS1.ResumeLayout(false);
this.panel1.ResumeLayout(false);
@ -981,7 +1115,7 @@
this.flowLayoutPanel2.PerformLayout();
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.cmAddDel.ResumeLayout(false);
this.flowLayoutPanel3.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@ -1066,6 +1200,18 @@
private System.Windows.Forms.ContextMenuStrip cmAddDel;
private System.Windows.Forms.ToolStripMenuItem tsiAddBinding;
private System.Windows.Forms.ToolStripMenuItem tdiDelBinding;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3;
private System.Windows.Forms.CheckBox cbxInvFlightPitch;
private System.Windows.Forms.CheckBox cbxInvFlightYaw;
private System.Windows.Forms.CheckBox cbxInvAimPitch;
private System.Windows.Forms.CheckBox cbxInvViewPitch;
private System.Windows.Forms.CheckBox cbxInvAimYaw;
private System.Windows.Forms.CheckBox cbxInvViewYaw;
private System.Windows.Forms.CheckBox cbxInvFlightRoll;
private System.Windows.Forms.CheckBox cbxInvStrafeVert;
private System.Windows.Forms.CheckBox cbxInvStrafeLat;
private System.Windows.Forms.CheckBox cbxInvStrafeLon;
private System.Windows.Forms.CheckBox cbxInvThrottle;
}
}

@ -342,11 +342,21 @@ namespace SCJMapper_V2
log.Debug( "InitActionTree - Entry" );
// build TreeView and the ActionMaps
m_AT = new ActionTree( m_AppSettings.BlendUnmapped, m_AppSettings.BlendUnmappedGP, m_Joystick );
m_AT = new ActionTree( m_AppSettings.BlendUnmapped, m_AppSettings.BlendUnmappedGP, m_Joystick, m_Gamepad );
m_AT.Ctrl = treeView1; // the ActionTree owns the TreeView control
m_AT.IgnoreMaps = m_AppSettings.IgnoreActionmaps;
// provide the display items (init)
m_AT.DefineShowOptions( cbxShowJoystick.Checked, cbxShowGamepad.Checked, cbxShowKeyboard.Checked, cbxShowMappedOnly.Checked );
m_AT.LoadProfileTree( m_AppSettings.DefProfileName, addDefaultBinding ); // Init with default profile filepath
// Init with default profile filepath
m_AT.LoadProfileTree( m_AppSettings.DefProfileName, addDefaultBinding );
// provide an array of checkboxes to Options (all is handled there)
List<CheckBox> inversions = new List<CheckBox>( );
inversions.Add( cbxInvFlightPitch ); inversions.Add( cbxInvAimPitch ); inversions.Add( cbxInvViewPitch );
inversions.Add( cbxInvFlightYaw ); inversions.Add( cbxInvAimYaw ); inversions.Add( cbxInvViewYaw );
inversions.Add( cbxInvFlightRoll );
inversions.Add( cbxInvThrottle );
inversions.Add( cbxInvStrafeVert ); inversions.Add( cbxInvStrafeLat ); inversions.Add( cbxInvStrafeLon );
m_AT.InvertCheckList = inversions;
// apply a default JS to Joystick mapping - can be changed and reloaded from XML mappings
// must take care of Gamepads if there are (but we take care of one only...)
@ -555,7 +565,7 @@ namespace SCJMapper_V2
{
log.Debug( "Dump - Entry" );
rtb.Text = String.Format( "<!-- {0} - SC Joystick Mapping -->\n{1}", DateTime.Now, m_AT.ActionMaps.toXML( ) );
rtb.Text = String.Format( "<!-- {0} - SC Joystick Mapping -->\n{1}", DateTime.Now, m_AT.toXML( ) );
btDump.BackColor = btClear.BackColor; btDump.UseVisualStyleBackColor = btClear.UseVisualStyleBackColor; // neutral again
btGrab.BackColor = btClear.BackColor; btGrab.UseVisualStyleBackColor = btClear.UseVisualStyleBackColor; // neutral again
@ -1233,5 +1243,6 @@ namespace SCJMapper_V2
}
}

@ -120,6 +120,85 @@
<metadata name="cmCopyPaste.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>296, 17</value>
</metadata>
<metadata name="IL.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>494, 17</value>
</metadata>
<data name="IL.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABI
DwAAAk1TRnQBSQFMAgEBCAEAAaABCwGgAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AKgABdAVG
AfIHAARIAQ8IEgEAAf8B9AsAAQcVAAFGByUB8gYAAUgCTwFIAW0D7AP0AbwBEgEAAkMBFQkAAUMBFQFD
AgAB8AsAAfAEAAFGCSUB8gIAA5EBSAFWAU8BSANJAewD/wG8ARIBAAFDAhUIAAHyAUMBFQFDAQACBwHt
CAAB/wGSAbwB7wIAAUYCJQH/AUwDJQIaAiUBGwEAAUgDTwJWAk8BTgFIAe0D/wHwARIBBwFDARUBEwFD
AfQFAAEHARUBFAEVAUMBAAH3AbwB7QkAAfcB8AGSAQABdAIlAfYC/wFMASUB9gL/AyUBAAFIA1cDVgJP
AUgB9wP/AfABEgH0AUMBFQHqAfkCDwMfAUMBFAEfARQBFQFDAf8B7QHwAewB6gFtAe8DAAHvAQ4B7AHv
AfAB7AEAAUYCJQFGA/8B9gP/AyUBAAFIBFcBVgJXAVYBSAHvA/8B8AESAQABQwFtAeoBRAIQAyABDgFt
ARQCEAERAQAB7AG8AfcB6gHrARIB7AEHAewBEgHrAW0CBwHrAQABRgMrAUwF/wQrAQADkQFIAlcBSANx
AbwD/wHxARIBAAFDARUBEgEgAQ4BDwEfAiACFQERARQBEAFDAQABbQLsAe0BFAFtAZIB7AGSAW0B6gHt
AewB7QEOAQABRgRMAfYD/wF0BEwEAAFIAlcBSAHxA/ID/wHxARIBAAFDAewBFAEPAh8BAAEOAQ8BAQEe
AUQBQwEQARECAAH3Ae8B6wLvAe0BkgHtAe8B9wGRAu8CAAFGA0wB9gX/AXQDTAQAAUgCTwFIAfQG/wHy
ARIBAAG8ARQBDgEQAUMBRQEeAQEBQwEeAW8BDgIQAwAC7AG8AewBBwG8AW0CvAGNAbwBFQG8AgABRgJM
ARoD/wFMA/8DTAQAARQBuwIIB/8B8wESAgABQwEQAW0BFQEBAREBFQEOAR4BCwEfAg4DAAHyAfMB7AHy
BfQB8gESAfIB8wIAAfMBUwFMAZoC/wNMAv8CTAFNBAABEgH0Bv8B9AHxAbwB7wESAgABFQIRAR4BAAcO
BQABvALwBQAC8AG8AREDAAHzAVMKTQUAARIB9AX/AfQBBwPyARIDAAHsARABDwEVAwABQwIPAfQFAAER
BwAB/wEAARMFAAHzCVMGAAESAfQF/wHxAbwC/wESAfEkAAHzB1MHAAESBv8CvAH/ARIB8TQAARIG/wHv
AbwBEgHxNQAJEgHxAwAg/wcAAUMBAAHyFgAB/w7xAfAG/wH0AygG/wUAAQ4BkQGuApEB6gH/BwAL/wIA
Af8B8QNrAYsBkQGLBIoBSQFKAZEB8Qb/ASgDKQEoBf8EAAFDAZoBegFSAZEBtQESAfEGAAH3AQcBvAIH
Au8DBwHwAfIBBwEAAf8B8QIGAYsBkAG7BYsCUAFrAfEG/wFQBCkBKAT/AwABDwEHAZECcwGRAbUBtAFD
AfQEAAH/AbwB7wO8AwcBvAEHAfAB8gHxAQAB/wHxAgYBiwGQAbsEkAFsAVABUQFrAfEH/wVQAXMD/wEA
ARQBUgHzArwBBwH3AZECtAEOAfQEAAH/AbwB7wPwArwC8AG8AfEB8gHwAQAB/wHxAosBkAGzAbsBKQGz
AXEDUAGQAWsB8QL/AXMFKAVQAXMC/wIAARoB9AH3ARIBQwERAbsBkQF6AewB/wLxAfMBAAH/Ae8B9wG8
BvABvALxAbwBAAH/AfIDkAGzAbsCswNRASkBswFrAfIB/w1QAZkB/wIAAQ4B7wETAeoBFQEPAZEBDwEO
BfEBAAH/Ae0BvAnyAfABBwEAAf8B8gSzAboBiwEpBHgBUQFrAfIB/w5QAf8EAAFtAREBQwEQARUB8QL/
AfQC/wIAAf8B9wHxCPIB8QHwAbwBAAH/AfIEswG6AbsBKAJ4AVABeAEoAWsB8gH/ASkMUAEoAf8EAAG7
AbQBkQFtCQAB/wGSAfEB8gbzAfIC8QHwAQAB/wHzBLMBuQG6AdwBtAFJAlABSQFrAfMC/wFQBXgBVwRR
ASkC/wMAAfMBAAGRARMLAAGSAfEB8gLzAQcBkgLzAfIB8QHyAfMBAAH/AfMGuQG6AdsD3AHbAWsB8wf/
ASgEVwFQA/8DAAHwAQ4B7AEVCwAB7QHxAfIC8wHtAe8C8wHyAfEB8gH/AQAB/wHzDNoBiwHzBv8BmQR4
AVcE/wEAAfEBAAEHAe0B7AGuAfIKAAEHAvIC8wG8A/MB8gHxAfICAAH/D/MG/wEpBHgF/wEAAW4BeQG8
AfcBEwHwDAAC8gbzAfIB8QH0AgAB/wjzAfIB9wHyAfcB8gH3AfMG/wEcA3gG/wHtAesBvALvDgAC8Qby
AvEDAAH/AfMN/wHvB/8BmQFQCP8BEwHwAeocACD/AgAB8wH3Af8bAAFCAU0BPgcAAT4DAAEoAwABQAMA
ATADAAEBAQABAQUAAYABARYAA/+BAAT/AfgBDwHgAQABnwH9Av8B8AEHAeABAAGPAfgB3wH9AeABAwIA
AY8B8AGPAfABwAEBAgABAwHgAQcB8AGAAQEFAAKAAQECAAGAAQABgAEAAYABAQIAAYABAAGAAQABgAEB
AeABAAGAAQABgAEAAYABAQHgAQABgAEBAYABAAGAAQEB4AEAAcABAQHAAQEBgAEBAeABAAHAAQEBwwHh
AcABAwHgAQAB4AEDAecB4wHgAQcB4AEABP8B8AEPAeABAQb/AeABAwb/AeABBwQAAfwBPwL/BAAB+AEP
AeABAwQAAfABDwHAAQEEAAHAAQcBgAEBBAABgAEHAYABAQQAAYABAAGAAQEEAAHAAQABgAEBBAAB4AEB
AYABAQQAAeAB/wGAAQEEAAHgAf8BwAEBBAAB4QH/AcABAQQAAYAB/wHAAQMEAAGBAf8B4AEDBAABAwH/
AeABBwQAAQcD/wQAAccD/ws=
</value>
</data>
<metadata name="cmAddDel.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>652, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@ -382,85 +461,6 @@
u459AcHtFiFpohCyiCKghgx2LMobzjENaYBSg7xUjpjyOWWq2lCmMw53SBq6H00dRjdybJJ3o8hMmseA
Y77zcj3gqae8LoFeYJow8wzVPeFzWvMDVj3mdpXmW8CvMpXS46wHi4zaxlRDxRL9I94NwPeMKM95pmwZ
x1//2Q==
</value>
</data>
<metadata name="cmAddDel.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>652, 17</value>
</metadata>
<metadata name="IL.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>494, 17</value>
</metadata>
<data name="IL.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABK
DwAAAk1TRnQBSQFMAgEBCAEAAZABCwGQAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AKgABdAVG
AfIHAARIAQ8IEgEAAf8B9AsAAQcVAAFGByUB8gYAAUgCTwFIAW0D+AP0Ae4BEgEAAkMBFQkAAUMBFQFD
AgAB8AsAAfAEAAFGCSUB8gIAA5EBSAFWAU8BSANJAfgD/wG8ARIBAAFDAhUIAAHyAUMBFQFDAQACBwHt
CAAB/wGSAbwB7wIAAUYCJQH/AUwDJQIaAiUBGwEAAUgDTwJWAk8BTgFIAe0D/wHwARIBBwFDARUBEwFD
AfQFAAEHARUBFAEVAUMBAAH3AbwB7QkAAfcB8AGSAQABdAIlAfYC/wFMASUB9gL/AyUBAAFIA1cDVgJP
AUgB9wP/AfABEgH0AUMBFQHqAfkCDwMfAUMBFAEfARQBFQFDAf8B7QHwAewB6gFtAe8DAAHvAQ4B7AHv
AfAB7AEAAUYCJQFGA/8B9gP/AyUBAAFIBFcBVgJXAVYBSAHvA/8B8AESAQABQwFtAeoBRAIQAyABDgFt
ARQCEAERAQAB7AG8AfcB6gHrARIB7AEHAewBEgHrAW0CBwHrAQABRgMrAUwF/wQrAQADkQFIAlcBSANx
Ae4D/wHxARIBAAFDARUBEgEgAQ4BDwEfAiACFQERARQBEAFDAQABbQLsAe0BFAFtAZIB7AGSAW0B6gHt
AewB7QEOAQABRgRMAfYD/wF0BEwEAAFIAlcBSAHxA/ID/wHxARIBAAFDAewBFAEPAh8BAAEOAQ8BAQEe
AUQBQwEQARECAAH3Ae8B6wLvAe0BkgHtAe8B9wGRAu8CAAFGA0wB9gX/AXQDTAQAAUgCTwFIAfQG/wHy
ARIBAAG8ARQBDgEQAUMBRQEeAQEBQwEeAW8BDgIQAwAC7AG8AewBBwG8AW0CvAGNAbwBFQG8AgABRgJM
ARoD/wFMA/8DTAQAARQBuwIIB/8B8wESAgABQwEQAW0BFQEBAREBFQEOAR4BCwEfAg4DAAHyAfMB7AHy
BfQB8gESAfIB8wIAAfMBUwFMAZoC/wNMAv8CTAFNBAABEgH0Bv8B9AHxAe4B7wESAgABFQIRAR4BAAcO
BQABvALwBQAC8AG8AREDAAHzAVMKTQUAARIB9AX/AfQBBwPyARIDAAHsARABDwEVAwABQwIPAfQFAAER
BwAB/wEAARMFAAHzCVMGAAESAfQF/wHxAe4C/wESAfEkAAHzB1MHAAESAfUF/wLuAf8BEgHxNAABEgb1
Ae8B7gESAfE1AAkSAfEDACD/BwABQwEAAfIWAAH/DvEB8Ab/AfQDKAb/BQABDgGRAa4CkQHqAf8HAAv/
AgAB/wHxA2sBiwGRAYsEigFJAUoBkQHxBv8BKAMpASgF/wQAAUMBmgF6AVIBkQG1ARIB8QYAAfcBBwG8
AgcC7wMHAfAB8gEHAQAB/wHxAgYBiwGQAbsFiwJQAWsB8Qb/AVAEKQEoBP8DAAEPAQcBkQJzAZEBtQG0
AUMB9AQAAf8BvAHvA7wDBwG8AQcB8AHyAfEBAAH/AfECBgGLAZABuwSQAWwBUAFRAWsB8Qf/BVABcwP/
AQABFAFSAfMCvAEHAfcBkQK0AQ4B9AQAAf8BvAHvA/ACvALwAbwB8QHyAfABAAH/AfECiwGQAbMBuwEp
AbMBcQNQAZABawHxAv8BcwUoBVABcwL/AgABGgH0AfcBEgFDAREBuwGRAXoB7AH/AvEB8wEAAf8B7wH3
AbwG8AG8AvEBvAEAAf8B8gOQAbMBuwKzA1EBKQGzAWsB8gH/DVABmQH/AgABDgHvARMB6gEVAQ8BkQEP
AQ4F8QEAAf8B7QG8CfIB8AEHAQAB/wHyBLMBugGLASkEeAFRAWsB8gH/DlAB/wQAAW0BEQFDARABFQHx
Av8B9AL/AgAB/wH3AfEI8gHxAfABvAEAAf8B8gSzAboBuwEoAngBUAF4ASgBawHyAf8BKQxQASgB/wQA
AbsBtAGRAW0JAAH/AZIB8QHyBvMB8gLxAfABAAH/AfMEswG5AboB3AG0AUkCUAFJAWsB8wL/AVAFeAFX
BFEBKQL/AwAB8wEAAZEBEwsAAZIB8QHyAvMBBwGSAvMB8gHxAfIB8wEAAf8B8wa5AboB2wPcAdsBawHz
B/8BKARXAVAD/wMAAfABDgHsARULAAHtAfEB8gLzAe0B7wLzAfIB8QHyAf8BAAH/AfMM2gGLAfMG/wGZ
BHgBVwT/AQAB8QEAAQcB7QHsAa4B8goAAQcC8gLzAbwD8wHyAfEB8gIAAf8P8wb/ASkEeAX/AQABbgF5
AbwB9wETAfAMAALyBvMB8gHxAfQCAAH/CPMB8gH3AfIB9wHyAfcB8wb/ARwDeAb/Ae0B6wG8Au8OAALx
BvIC8QMAAf8B8w3/Ae8H/wGZAVAI/wETAfAB6hwAIP8CAAHzAfcB/xsAAUIBTQE+BwABPgMAASgDAAFA
AwABMAMAAQEBAAEBBQABgAEBFgAD/4EABP8B+AEPAeABAAGfAf0C/wHwAQcB4AEAAY8B+AHfAf0B4AED
AgABjwHwAY8B8AHAAQECAAEDAeABBwHwAYABAQUAAoABAQIAAYABAAGAAQABgAEBAgABgAEAAYABAAGA
AQEB4AEAAYABAAGAAQABgAEBAeABAAGAAQEBgAEAAYABAQHgAQABwAEBAcABAQGAAQEB4AEAAcABAQHD
AeEBwAEDAeABAAHgAQMB5wHjAeABBwHgAQAE/wHwAQ8B4AEBBv8B4AEDBv8B4AEHBAAB/AE/Av8EAAH4
AQ8B4AEDBAAB8AEPAcABAQQAAcABBwGAAQEEAAGAAQcBgAEBBAABgAEAAYABAQQAAcABAAGAAQEEAAHg
AQEBgAEBBAAB4AH/AYABAQQAAeAB/wHAAQEEAAHhAf8BwAEBBAABgAH/AcABAwQAAYEB/wHgAQMEAAED
Af8B4AEHBAABBwP/BAABxwP/Cw==
</value>
</data>
<data name="btSaveMyMapping.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -652,6 +652,9 @@
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>55</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAD4AAAAAAAAAAAAAAAAAAAAA

@ -274,7 +274,7 @@ namespace SCJMapper_V2
Boolean retVal = true;
if ( ActionMapsCls.ActionMaps.Length == 0 ) ActionMapsCls.LoadActionMaps( ); // make sure we have them loaded ( refactoring to get a singleton or so...)
if ( ActionMapsCls.ActionMaps.Length == 0 ) ActionMapsCls.LoadSupportedActionMaps( ); // make sure we have them loaded ( refactoring to get a singleton or so...)
try {

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Windows.Forms;
namespace SCJMapper_V2
{
@ -25,8 +26,6 @@ namespace SCJMapper_V2
private bool m_senseEnabled = false; // default
private String m_sense = "1.00";
private bool m_invertEnabled = false; // default
private bool m_expEnabled = false; // default
private String m_exponent = "1.000";
@ -38,6 +37,8 @@ namespace SCJMapper_V2
private DeviceDeadzoneParameter m_deadzone = null;
private CheckBox m_cbInvert = null;
public DeviceTuningParameter( )
{
}
@ -52,6 +53,8 @@ namespace SCJMapper_V2
m_device = value;
m_type = "";
m_devInstanceNo = -1;
if ( m_device == null ) return; // got a null device
if ( JoystickCls.IsDeviceClass( m_device.DevClass ) ) {
m_type = m_device.DevClass;
m_devInstanceNo = ( m_device as JoystickCls ).JSAssignment;
@ -108,8 +111,12 @@ namespace SCJMapper_V2
public bool InvertUsed
{
get { return m_invertEnabled; }
set { m_invertEnabled = value; }
get { return m_cbInvert.Checked; }
set { m_cbInvert.Checked = value; }
}
public CheckBox CBInvert
{
set { m_cbInvert = value; }
}
public bool ExponentUsed
@ -204,7 +211,7 @@ namespace SCJMapper_V2
/// <returns>The XML string or an empty string</returns>
public String Options_toXML( )
{
if ( ( m_senseEnabled || m_expEnabled || m_invertEnabled || m_ptsEnabled ) == false ) return ""; // not used
if ( ( SensitivityUsed || ExponentUsed || InvertUsed || NonLinCurveUsed ) == false ) return ""; // not used
String tmp = "";
tmp += String.Format( "\t<options type=\"{0}\" instance=\"{1}\">\n", m_type, m_devInstanceNo.ToString( ) );
@ -214,7 +221,7 @@ namespace SCJMapper_V2
tmp += String.Format( "invert=\"1\" " );
}
if ( SensitivityUsed ) {
tmp += String.Format( "sensitivity=\"{0}\" ", m_sense );
tmp += String.Format( "sensitivity=\"{0}\" ", Sensitivity );
}
if ( NonLinCurveUsed ) {
// add exp to avoid merge of things...
@ -228,7 +235,7 @@ namespace SCJMapper_V2
}
else if ( ExponentUsed ) {
// only exp used
tmp += String.Format( "exponent=\"{0}\" /> \n", m_exponent );
tmp += String.Format( "exponent=\"{0}\" /> \n", Exponent );
}
else {
// neither exp or curve
@ -243,10 +250,10 @@ namespace SCJMapper_V2
/// <summary>
/// Read the options from the XML
/// can get only the 3 ones for Move X,Y,RotZ, pitch and yaq right now
/// can get only the 3 ones for Move Pitch, Yaw, Roll right now
/// </summary>
/// <param name="reader">A prepared XML reader</param>
/// <param name="instance">the Josyticj instance number</param>
/// <param name="instance">the Joystick instance number</param>
/// <returns></returns>
public Boolean Options_fromXML( XmlReader reader, String type, int instance )
{
@ -255,12 +262,11 @@ namespace SCJMapper_V2
String invert = "";
String sensitivity = "";
String exponent = "";
String instance_inv = "";
m_option = reader.Name;
m_devInstanceNo = instance;
// derive from pilot_move_x || pilot_move_rotx || pilot_moveyaw (nothing bad should arrive here)
// derive from flight_move_pitch || flight_move_yaw || flight_move_roll (nothing bad should arrive here)
String[] e = m_option.ToLowerInvariant( ).Split( new char[] { '_' } );
if ( e.Length > 2 ) m_cmdCtrl = e[2]; // TODO - see if m_cmdCtrl is needed to be derived here
@ -268,26 +274,20 @@ namespace SCJMapper_V2
if ( reader.HasAttributes ) {
invert = reader["invert"];
if ( !String.IsNullOrWhiteSpace( invert ) ) {
m_invertEnabled = false;
if ( invert == "1" ) m_invertEnabled = true;
}
instance_inv = reader["instance"]; // CIG wrong attr name ?!
if ( !String.IsNullOrWhiteSpace( instance_inv ) ) {
m_invertEnabled = false;
if ( instance_inv == "1" ) m_invertEnabled = true;
InvertUsed = false;
if ( invert == "1" ) InvertUsed = true;
}
sensitivity = reader["sensitivity"];
if ( !String.IsNullOrWhiteSpace( sensitivity ) ) {
m_sense = sensitivity;
m_senseEnabled = true;
Sensitivity = sensitivity;
SensitivityUsed = true;
}
exponent = reader["exponent"];
if ( !String.IsNullOrWhiteSpace( exponent ) ) {
m_exponent = exponent;
m_expEnabled = true;
Exponent = exponent;
ExponentUsed = true;
}
}
// we may have a nonlin curve...

@ -27,7 +27,7 @@ namespace SCJMapper_V2
public const String JsUnknown = "jsx_";
public new const String BlendedInput = "jsx_reserved";
static private int JSnum_UNKNOWN = 0;
static public int JSnum_UNKNOWN = 0;
static public int JSnum_MAX = 8; // can only assign 4 jsN devices in SC

@ -5,6 +5,7 @@ using System.Text;
using System.Xml;
using System.IO;
using System.Xml.Linq;
using System.Windows.Forms;
namespace SCJMapper_V2
{
@ -32,14 +33,25 @@ namespace SCJMapper_V2
DeviceTuningParameter m_tuningY = null; // yaw
DeviceTuningParameter m_tuningR = null; // roll
List<OptionsInvert> m_inverter = new List<OptionsInvert>( ); // all invertes
private List<CheckBox> m_invertCB = null; // Options owns and handles all Inversions
// ctor
public Options( JoystickList jsList )
{
m_tuningP = new DeviceTuningParameter( );
m_tuningY = new DeviceTuningParameter( );
m_tuningR = new DeviceTuningParameter( );
// create inverters (
for (int i=0; i<(int)OptionsInvert.Inversions.I_LAST; i++) {
OptionsInvert inv = new OptionsInvert((OptionsInvert.Inversions)i);
m_inverter.Add(inv);
}
}
public int Count
{
get { return ( m_stringOptions.Count + ( ( m_tuningP != null ) ? 1 : 0 ) + ( ( m_tuningY != null ) ? 1 : 0 ) + ( ( m_tuningR != null ) ? 1 : 0 ) ); }
@ -70,6 +82,47 @@ namespace SCJMapper_V2
get { return m_tuningR; }
}
/// <summary>
/// Returns the inverter based on the enum given
/// </summary>
/// <param name="item">The inverter enum</param>
/// <returns>An Inverter object</returns>
public OptionsInvert Inverter( OptionsInvert.Inversions item )
{
return m_inverter[( int )item];
}
/// <summary>
/// Assign the GUI Invert Checkboxes for further handling
/// </summary>
public List<CheckBox> InvertCheckList
{
set {
m_invertCB = value;
// forward the Tuning GUI items for handling
m_tuningP.CBInvert = m_invertCB[( int )OptionsInvert.Inversions.flight_move_pitch];
m_tuningY.CBInvert = m_invertCB[( int )OptionsInvert.Inversions.flight_move_yaw];
m_tuningR.CBInvert = m_invertCB[( int )OptionsInvert.Inversions.flight_move_roll];
// assuming the ENUM sequence of Checkboxes here...
// Note: the flight Flight ones above are not handled twice i.e. are assigned below but not used
int i = 0;
foreach ( OptionsInvert inv in m_inverter ) {
inv.CBInvert = m_invertCB[i++];
}
}
}
/// <summary>
/// Clears all Inverters
/// </summary>
public void ResetInverter( )
{
foreach ( OptionsInvert inv in m_inverter ) {
inv.Reset();
}
}
private String[] FormatXml( string xml )
{
@ -107,6 +160,18 @@ namespace SCJMapper_V2
r += m_tuningY.Options_toXML( );
r += m_tuningR.Options_toXML( );
r += m_inverter[( int )OptionsInvert.Inversions.flight_aim_pitch].Options_toXML( );
r += m_inverter[( int )OptionsInvert.Inversions.flight_aim_yaw].Options_toXML( );
r += m_inverter[( int )OptionsInvert.Inversions.flight_view_pitch].Options_toXML( );
r += m_inverter[( int )OptionsInvert.Inversions.flight_view_yaw].Options_toXML( );
r += m_inverter[( int )OptionsInvert.Inversions.flight_move_strafe_vertical].Options_toXML( );
r += m_inverter[( int )OptionsInvert.Inversions.flight_move_strafe_lateral].Options_toXML( );
r += m_inverter[( int )OptionsInvert.Inversions.flight_move_strafe_longitudinal].Options_toXML( );
r += m_inverter[( int )OptionsInvert.Inversions.flight_throttle].Options_toXML( );
return r;
}
@ -208,6 +273,35 @@ namespace SCJMapper_V2
m_tuningR.Options_fromXML( reader, type, int.Parse( instance ) );
}
else if ( reader.Name == "flight_move_strafe_vertical" ) {
m_inverter[( int )OptionsInvert.Inversions.flight_move_strafe_vertical].Options_fromXML( reader, type, int.Parse( instance ) );
}
else if ( reader.Name == "flight_move_strafe_lateral" ) {
m_inverter[( int )OptionsInvert.Inversions.flight_move_strafe_lateral].Options_fromXML( reader, type, int.Parse( instance ) );
}
else if ( reader.Name == "flight_move_strafe_longitudinal" ) {
m_inverter[( int )OptionsInvert.Inversions.flight_move_strafe_longitudinal].Options_fromXML( reader, type, int.Parse( instance ) );
}
else if ( reader.Name == "flight_aim_pitch" ) {
m_inverter[( int )OptionsInvert.Inversions.flight_aim_pitch].Options_fromXML( reader, type, int.Parse( instance ) );
}
else if ( reader.Name == "flight_aim_yaw" ) {
m_inverter[( int )OptionsInvert.Inversions.flight_aim_yaw].Options_fromXML( reader, type, int.Parse( instance ) );
}
else if ( reader.Name == "flight_view_pitch" ) {
m_inverter[( int )OptionsInvert.Inversions.flight_view_pitch].Options_fromXML( reader, type, int.Parse( instance ) );
}
else if ( reader.Name == "flight_view_yaw" ) {
m_inverter[( int )OptionsInvert.Inversions.flight_view_yaw].Options_fromXML( reader, type, int.Parse( instance ) );
}
// Throttle abs/rel are treated the same and use the throttle group only
else if ( reader.Name == "flight_throttle" ) {
m_inverter[( int )OptionsInvert.Inversions.flight_throttle].Options_fromXML( reader, type, int.Parse( instance ) );
}
else {
//??
log.InfoFormat( "Options.fromXML: unknown node - {0} - stored as is", reader.Name );

@ -0,0 +1,168 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Windows.Forms;
namespace SCJMapper_V2
{
public class OptionsInvert
{
public enum Inversions
{
flight_move_pitch = 0, // used also as array index - MUST remain 0
flight_aim_pitch,
flight_view_pitch,
flight_move_yaw,
flight_aim_yaw,
flight_view_yaw,
flight_move_roll,
flight_throttle,
flight_move_strafe_vertical,
flight_move_strafe_lateral,
flight_move_strafe_longitudinal,
I_LAST // designates the last item for loop handling
}
public struct MappedActionRec
{
public MappedActionRec( String m, String a ) { Map = m; Action = a; }
public String Map;
public String Action;
}
// setup of mapped actions as of AC 1.0 (may need a change once in a while...)
//Note: sequence is matched with the Enum above
static public MappedActionRec[] MappedActions = {
new MappedActionRec("spaceship_movement", "v_pitch"),
new MappedActionRec("spaceship_targeting", "v_aim_pitch"),
new MappedActionRec("spaceship_view", "v_view_pitch"),
new MappedActionRec("spaceship_movement", "v_yaw"),
new MappedActionRec("spaceship_targeting", "v_aim_yaw"),
new MappedActionRec("spaceship_view", "v_view_yaw"),
new MappedActionRec("spaceship_movement", "v_roll"),
new MappedActionRec("spaceship_movement", "v_throttle_abs"),
new MappedActionRec("spaceship_movement", "v_strafe_vertical"),
new MappedActionRec("spaceship_movement", "v_strafe_lateral"),
new MappedActionRec("spaceship_movement", "v_strafe_longitudinal"),
};
private CheckBox m_cbInvert = null;
private DeviceCls m_device = null;
private String m_type = ""; // joystick OR xboxpad
private int m_devInstanceNo = -1; // jsN - instance in XML
String m_option = ""; // the option name (level where it applies)
// ctor
public OptionsInvert( Inversions item )
{
m_option = item.ToString();
}
#region Properties
public DeviceCls GameDevice
{
get { return m_device; }
set
{
m_device = value;
m_type = "";
m_devInstanceNo = -1;
if ( m_device == null ) return; // got a null device
if ( JoystickCls.IsDeviceClass( m_device.DevClass ) ) {
m_type = m_device.DevClass;
m_devInstanceNo = ( m_device as JoystickCls ).JSAssignment;
}
else if ( GamepadCls.IsDeviceClass( m_device.DevClass ) ) {
m_type = m_device.DevClass;
m_devInstanceNo = 1; // supports ONE gamepad
}
}
}
public int DevInstanceNo
{
get { return m_devInstanceNo; }
}
public bool InvertUsed
{
get { return m_cbInvert.Checked; }
set { m_cbInvert.Checked = value; }
}
public CheckBox CBInvert
{
set { m_cbInvert = value; }
}
#endregion
public void Reset( )
{
m_cbInvert.Checked = false;
}
/// <summary>
/// Format an XML -options- node from the tuning contents
/// </summary>
/// <returns>The XML string or an empty string</returns>
public String Options_toXML( )
{
if ( InvertUsed == false ) return ""; // not used
if ( DevInstanceNo <= 0 ) return ""; // not assigned or not valid...
String tmp = "";
tmp += String.Format( "\t<options type=\"{0}\" instance=\"{1}\">\n", m_type, m_devInstanceNo.ToString( ) );
tmp += String.Format( "\t\t<{0} ", m_option );
if ( InvertUsed ) { // leave this IF in - to allow to extend the code for sensitivity
tmp += String.Format( "invert=\"1\" " );
}
tmp += String.Format( "/> \n" );// CIG get to default expo 2.something if not set to 1 here
tmp += String.Format( "\t</options>\n \n" );
return tmp;
}
/// <summary>
/// Read the options from the XML
/// </summary>
/// <param name="reader">A prepared XML reader</param>
/// <param name="instance">the Joystick instance number</param>
/// <returns></returns>
public Boolean Options_fromXML( XmlReader reader, String type, int instance )
{
m_type = type;
String invert = "";
m_option = reader.Name;
m_devInstanceNo = instance;
if ( reader.HasAttributes ) {
invert = reader["invert"];
if ( !String.IsNullOrWhiteSpace( invert ) ) {
InvertUsed = false;
if ( invert == "1" ) InvertUsed = true;
}
}
reader.Read( );
return true;
}
}
}

@ -173,6 +173,7 @@
</Compile>
<Compile Include="Joystick\Options.cs" />
<Compile Include="OGL\LoaderDDS.cs" />
<Compile Include="Joystick\OptionsInvert.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="OGL\RK4Integrator.cs" />

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.IO;
using System.Windows.Forms;
namespace SCJMapper_V2
{
@ -26,7 +27,7 @@ namespace SCJMapper_V2
// actionmap names to gather (do we need them to be cofigurable ??)
public static String[] ActionMaps = { };
public static void LoadActionMaps( )
public static void LoadSupportedActionMaps( )
{
// load actionmaps
String acm = AppConfiguration.AppConfig.scActionmaps;
@ -45,6 +46,7 @@ namespace SCJMapper_V2
private Options m_options = null;
private Deviceoptions m_deviceOptions = null;
private List<CheckBox> m_invertCB = null; // Options owns and handles all Inversions
// own additions for JS mapping - should not harm..
private String[] m_js;
@ -121,6 +123,26 @@ namespace SCJMapper_V2
get { return m_deviceOptions.DeadzoneZ; }
}
/// <summary>
/// Returns the Options item
/// </summary>
public Options Options
{
get { return m_options; }
}
/// <summary>
/// Assign the GUI Invert Checkboxes for further handling
/// </summary>
public List<CheckBox> InvertCheckList
{
set {
m_invertCB = value;
m_options.InvertCheckList = m_invertCB;
}
}
/// <summary>
/// ctor
@ -137,15 +159,20 @@ namespace SCJMapper_V2
m_js[i] = ""; m_GUIDs[i] = "";
}
CreateNewOptions( );
LoadSupportedActionMaps( ); // get them from config
}
private void CreateNewOptions( )
{
// create options objs
m_uiCustHeader = new UICustHeader( );
m_options = new Options( m_joystickList );
m_deviceOptions = new Deviceoptions( m_options );
LoadActionMaps( ); // get them from config
}
/// <summary>
/// Copy return all ActionMaps while reassigning the JsN Tag
/// </summary>
@ -254,11 +281,9 @@ namespace SCJMapper_V2
{
log.Debug( "fromXML - Entry" );
// Reset those options...
m_uiCustHeader = new UICustHeader( );
m_options = new Options( m_joystickList );
m_deviceOptions = new Deviceoptions( m_options );
CreateNewOptions( ); // Reset those options...
m_options.InvertCheckList = m_invertCB;
m_options.ResetInverter( ); // have to reset when reading a new mapping
XmlReaderSettings settings = new XmlReaderSettings( );
settings.ConformanceLevel = ConformanceLevel.Fragment;

@ -61,16 +61,18 @@ namespace SCJMapper_V2
private String m_Filter = ""; // the tree content filter
private JoystickList m_jsList = null;
private GamepadCls m_gamepad = null;
/// <summary>
/// ctor
/// </summary>
public ActionTree( Boolean blendUnmappedJS, Boolean blendUnmappedGP, JoystickList jsList )
public ActionTree( Boolean blendUnmappedJS, Boolean blendUnmappedGP, JoystickList jsList, GamepadCls gamepad )
{
BlendUnmappedJS = blendUnmappedJS;
BlendUnmappedGP = blendUnmappedGP;
m_jsList = jsList;
m_gamepad = gamepad;
IgnoreMaps = ""; // nothing to ignore
}
@ -83,7 +85,7 @@ namespace SCJMapper_V2
/// <returns>The ActionTree Copy with reassigned input</returns>
public ActionTree ReassignJsN( Dictionary<int, int> newJsList )
{
ActionTree nTree = new ActionTree( BlendUnmappedJS, BlendUnmappedGP, m_jsList );
ActionTree nTree = new ActionTree( BlendUnmappedJS, BlendUnmappedGP, m_jsList, m_gamepad );
// full copy from 'this'
nTree.m_MasterTree = this.m_MasterTree;
nTree.m_ctrl = this.m_ctrl;
@ -96,6 +98,7 @@ namespace SCJMapper_V2
return nTree;
}
#region Properties
public Boolean CanBlendBinding
{
@ -132,6 +135,7 @@ namespace SCJMapper_V2
}
}
#endregion
/// <summary>
/// Add a new Action Child to the selected Node to apply an addtional mapping
@ -173,6 +177,76 @@ namespace SCJMapper_V2
}
/// <summary>
/// Assign the GUI Invert Checkboxes for further handling
/// </summary>
public List<CheckBox> InvertCheckList
{
set
{
if ( ActionMaps != null ) ActionMaps.InvertCheckList = value; // just propagate if possible
else {
log.Error( "ActionTree-InvertCheckList: Program error - ActionMaps not yet created" );
}
}
}
/// <summary>
/// Gets the JS device that is used for one of the Inversion Items supported
/// </summary>
/// <param name="item">The Inversion item</param>
/// <returns>The device used or null</returns>
private DeviceCls GetActionInstance( OptionsInvert.Inversions item )
{
// must get the jsN information used for Options
String nodeText = "";
nodeText = FindAction( OptionsInvert.MappedActions[( int )item].Map, OptionsInvert.MappedActions[( int )item].Action );
if ( !String.IsNullOrWhiteSpace( nodeText ) ) {
DeviceCls dev = m_jsList.Find_jsN( JoystickCls.JSNum( ActionTreeNode.CommandFromNodeText( nodeText ) ) );
if ( dev != null ) return dev;
else {
// could be a gamepad then
if ( ActionTreeNode.CommandFromNodeText( nodeText ).Contains( "xi_" ) ) {
return m_gamepad;
}
else return null; // nope...
}
}
return null;
}
/// <summary>
/// Collects and forwards the device information (instances) to the consuming invert Options
/// </summary>
private void UpdateDeviceInformation( )
{
// must get the jsN information used for Options Inverters
for ( int item=0; item<(int)OptionsInvert.Inversions.I_LAST; item++) {
ActionMaps.Options.Inverter( (OptionsInvert.Inversions)item ).GameDevice = GetActionInstance( (OptionsInvert.Inversions)item );
}
}
/// <summary>
/// Dumps the actions to an XML String
/// </summary>
/// <returns>A string containing the XML</returns>
public String toXML()
{
if ( ActionMaps != null ) {
// must update the devices and instances for inversion before dumping the XML
UpdateDeviceInformation( );
return ActionMaps.toXML( ); // just propagate if possible
}
else {
log.Error( "ActionTree-toXML: Program error - ActionMaps not yet created" );
return "";
}
}
#region MasterTree Actions
private void UpdateMasterNode( ActionTreeNode node )
{
// copy to master node
@ -295,6 +369,7 @@ namespace SCJMapper_V2
FilterTree( );
}
#endregion
/// <summary>
/// Load Mappings into the ActionList and create the Master TreeView
@ -826,7 +901,7 @@ namespace SCJMapper_V2
/// <summary>
/// Find a control that contains the Action
/// Find a control that contains the Action (exact match)
/// </summary>
/// <param name="actionmap">The actionmap to find the string</param>
/// <param name="text">The string to find</param>
@ -838,7 +913,7 @@ namespace SCJMapper_V2
if ( String.IsNullOrEmpty( actionmap ) || ( tn.Text == actionmap ) ) {
// have to search nodes of nodes
foreach ( ActionTreeNode stn in tn.Nodes ) {
if ( stn.Action.Contains( action ) ) {
if ( stn.Action == action ) {
return stn.Text;
}
}

Loading…
Cancel
Save