improved on #17 allows js1..js8

adopt for AC 0.9 - add actionmaps flycam and spaceship_turret
pull/20/head v2.4
bm98 10 years ago
parent 8e46f91780
commit 4a06ab6654

@ -182,7 +182,7 @@ namespace SCJMapper_V2
}
[UserScopedSettingAttribute( )]
[DefaultSettingValueAttribute( ",multiplayer,player,singleplayer," )] // empty Note: comma separated list, must have a comma at the begining and the end (to find 'player' on its own...)
[DefaultSettingValueAttribute( ",multiplayer,player,flycam,singleplayer," )] // empty Note: comma separated list, must have a comma at the begining and the end (to find 'player' on its own...)
public String IgnoreActionmaps
{
get { return ( String )this["IgnoreActionmaps"]; }

2
Form1.Designer.cs generated

@ -15,7 +15,7 @@
{
timer1.Stop( );
// Unacquire all DirectInput objects.
foreach ( JoystickCls js in m_JS ) js.FinishDX( );
foreach ( JoystickCls js in m_Joystick ) js.FinishDX( );
if ( disposing && ( components != null ) ) {
components.Dispose( );

@ -24,7 +24,7 @@ namespace SCJMapper_V2
///<remarks>
/// Holds the DXInput Joystick List
///</remarks>
private JoystickList m_JS = new JoystickList( );
private JoystickList m_Joystick = new JoystickList( );
///<remarks>
/// Holds the ActionTree that manages the TreeView and the action lists
@ -98,6 +98,7 @@ namespace SCJMapper_V2
String version = Application.ProductVersion; // get the version information
lblTitle.Text += " - V " + version.Substring( 0, version.IndexOf( ".", version.IndexOf( "." ) + 1 ) ); // get the first two elements
log.InfoFormat( "Application Version: {0}", version.ToString( ) );
// tooltips where needed
toolTip1.SetToolTip( this.linkLblReleases, c_GithubLink ); // allow to see where the link may head
@ -244,14 +245,14 @@ namespace SCJMapper_V2
m_AT.LoadTree( m_AppSettings.DefProfileName, addDefaultBinding ); // Init with default profile filepath
// default JS to Joystick mapping - can be changed and reloaded from XML
if ( m_JS.Count > 0 ) { m_JS[0].JSAssignment = 1; m_AT.ActionMaps.js1 = m_JS[0].DevName; m_AT.ActionMaps.js1GUID = m_JS[0].DevInstanceGUID; }
if ( m_JS.Count > 1 ) { m_JS[1].JSAssignment = 2; m_AT.ActionMaps.js2 = m_JS[1].DevName; m_AT.ActionMaps.js2GUID = m_JS[1].DevInstanceGUID; }
if ( m_JS.Count > 2 ) { m_JS[2].JSAssignment = 0; } // unmapped ones go with default 0
if ( m_JS.Count > 3 ) { m_JS[3].JSAssignment = 0; }
if ( m_JS.Count > 4 ) { m_JS[4].JSAssignment = 0; }
if ( m_JS.Count > 5 ) { m_JS[5].JSAssignment = 0; }
if ( m_JS.Count > 6 ) { m_JS[6].JSAssignment = 0; }
if ( m_JS.Count > 7 ) { m_JS[7].JSAssignment = 0; }
if ( m_Joystick.Count > 0 ) { m_Joystick[0].JSAssignment = 1; m_AT.ActionMaps.jsN[0] = m_Joystick[0].DevName; m_AT.ActionMaps.jsNGUID[0] = m_Joystick[0].DevInstanceGUID; }
if ( m_Joystick.Count > 1 ) { m_Joystick[1].JSAssignment = 2; m_AT.ActionMaps.jsN[1] = m_Joystick[1].DevName; m_AT.ActionMaps.jsNGUID[1] = m_Joystick[1].DevInstanceGUID; }
if ( m_Joystick.Count > 2 ) { m_Joystick[2].JSAssignment = 0; } // unmapped ones go with default 0
if ( m_Joystick.Count > 3 ) { m_Joystick[3].JSAssignment = 0; }
if ( m_Joystick.Count > 4 ) { m_Joystick[4].JSAssignment = 0; }
if ( m_Joystick.Count > 5 ) { m_Joystick[5].JSAssignment = 0; }
if ( m_Joystick.Count > 6 ) { m_Joystick[6].JSAssignment = 0; }
if ( m_Joystick.Count > 7 ) { m_Joystick[7].JSAssignment = 0; }
}
@ -298,7 +299,7 @@ namespace SCJMapper_V2
log.Debug( "Create Joystick instance" );
js = new JoystickCls( jsDevice, this, tabs + 1, uUC_JoyPanelNew, tc1.TabPages[tabs] ); // does all device related activities for that particular item
}
m_JS.Add( js ); // add to joystick list
m_Joystick.Add( js ); // add to joystick list
tc1.TabPages[tabs].Tag = js.DevName; // used to find the tab via JS mapping
tc1.TabPages[tabs].BackColor = MyColors.JColor[tabs]; // each tab has its own color
@ -355,62 +356,32 @@ namespace SCJMapper_V2
{
log.Debug( "Grab - Entry" );
m_JS.ResetJsNAssignment( );
m_Joystick.ResetJsNAssignment( );
m_AT.ActionMaps.fromXML( rtb.Text );
// JS mapping for js1 .. js4 can be changed and reloaded from XML
// JS mapping for js1 .. js8 can be changed and reloaded from XML
// note - unmapped ones remain what they were
// This is includes similar procedures as reassigning of the jsN items
JoystickCls j = null;
if ( !String.IsNullOrEmpty( m_AT.ActionMaps.js1GUID ) ) {
j = m_JS.Find_jsInstance( m_AT.ActionMaps.js1GUID );
}
else if ( !String.IsNullOrEmpty( m_AT.ActionMaps.js1 ) ) {
j = m_JS.Find_jsDev( m_AT.ActionMaps.js1 );
}
if ( j != null ) {
m_AT.ActionMaps.js1GUID = j.DevInstanceGUID; // subst for missing one (version up etc.)
j.JSAssignment = 1;
}
j = null; ;
if ( !String.IsNullOrEmpty( m_AT.ActionMaps.js2GUID ) ) {
j = m_JS.Find_jsInstance( m_AT.ActionMaps.js2GUID );
}
else if ( !String.IsNullOrEmpty( m_AT.ActionMaps.js2 ) ) {
j = m_JS.Find_jsDev( m_AT.ActionMaps.js2 );
}
if ( j != null ) {
m_AT.ActionMaps.js2GUID = j.DevInstanceGUID; // subst for missing one (version up etc.)
j.JSAssignment = 2;
}
j = null; ;
if ( !String.IsNullOrEmpty( m_AT.ActionMaps.js3GUID ) ) {
j = m_JS.Find_jsInstance( m_AT.ActionMaps.js3GUID );
}
else if ( !String.IsNullOrEmpty( m_AT.ActionMaps.js3 ) ) {
j = m_JS.Find_jsDev( m_AT.ActionMaps.js3 );
}
if ( j != null ) {
m_AT.ActionMaps.js3GUID = j.DevInstanceGUID; // subst for missing one (version up etc.)
j.JSAssignment = 3;
// for all supported jsN
for ( int i=0; i < JoystickCls.JSnum_MAX; i++ ) {
j = null;
if ( !String.IsNullOrEmpty( m_AT.ActionMaps.jsNGUID[i] ) ) {
j = m_Joystick.Find_jsInstance( m_AT.ActionMaps.jsNGUID[i] );
}
else if ( !String.IsNullOrEmpty( m_AT.ActionMaps.jsN[i] ) ) {
j = m_Joystick.Find_jsDev( m_AT.ActionMaps.jsN[i] );
}
if ( j != null ) {
m_AT.ActionMaps.jsNGUID[i] = j.DevInstanceGUID; // subst for missing one (version up etc.)
j.JSAssignment = i+1;
}
}
j = null; ;
if ( !String.IsNullOrEmpty( m_AT.ActionMaps.js4GUID ) ) {
j = m_JS.Find_jsInstance( m_AT.ActionMaps.js4GUID );
}
else if ( !String.IsNullOrEmpty( m_AT.ActionMaps.js4 ) ) {
j = m_JS.Find_jsDev( m_AT.ActionMaps.js4 );
}
if ( j != null ) {
m_AT.ActionMaps.js4GUID = j.DevInstanceGUID; // subst for missing one (version up etc.)
j.JSAssignment = 4;
}
// maintain the new JsN assignment and update the colorlist
List<int> newL = new List<int>( );
foreach ( JoystickCls jj in m_JS ) {
foreach ( JoystickCls jj in m_Joystick ) {
newL.Add(jj.JSAssignment);
}
JoystickCls.ReassignJsColor( newL );
@ -458,8 +429,8 @@ namespace SCJMapper_V2
private void timer1_Tick( object sender, System.EventArgs e )
{
foreach ( JoystickCls jsc in m_JS ) { jsc.GetData( ); } // poll the devices
String ctrl = JSStr( ) + m_JS[tc1.SelectedIndex].GetLastChange( ); // show last handled JS control
foreach ( JoystickCls jsc in m_Joystick ) { jsc.GetData( ); } // poll the devices
String ctrl = JSStr( ) + m_Joystick[tc1.SelectedIndex].GetLastChange( ); // show last handled JS control
lblLastJ.Text = ctrl;
if ( JoystickCls.CanThrottle( ctrl ) ) {
cbxThrottle.Enabled = true;
@ -773,7 +744,7 @@ namespace SCJMapper_V2
// indicates (in)valid folders
SCFileIndication( );
// now update the contents according to new settings
foreach ( JoystickCls j in m_JS ) j.ApplySettings( ); // update Seetings
foreach ( JoystickCls j in m_Joystick ) j.ApplySettings( ); // update Seetings
m_AT.IgnoreMaps = m_AppSettings.IgnoreActionmaps;
// and start over with an empty tree
InitActionTree( false );
@ -786,38 +757,21 @@ namespace SCJMapper_V2
{
// have to stop polling while the Reassign window is open
timer1.Enabled = false;
if ( m_JS.ShowReassign( ) != System.Windows.Forms.DialogResult.Cancel ) {
if ( m_Joystick.ShowReassign( ) != System.Windows.Forms.DialogResult.Cancel ) {
// copy the action tree while reassigning the jsN mappings from OLD to NEW
ActionTree newTree = m_AT.ReassignJsN( m_JS.JsReassingList );
ActionTree newTree = m_AT.ReassignJsN( m_Joystick.JsReassingList );
// we have still the old assignment in the ActionMap - change it here (map does not know about the devices)
JoystickCls j = null;
j = m_JS.Find_jsN( 1 );
if ( j != null ) {
newTree.ActionMaps.js1 = j.DevName; newTree.ActionMaps.js1GUID = j.DevInstanceGUID;
}
else {
newTree.ActionMaps.js1 = ""; newTree.ActionMaps.js1GUID = "";
}
j = m_JS.Find_jsN( 2 );
if ( j != null ) {
newTree.ActionMaps.js2 = j.DevName; newTree.ActionMaps.js2GUID = j.DevInstanceGUID;
}
else {
newTree.ActionMaps.js2 = ""; newTree.ActionMaps.js2GUID = "";
}
j = m_JS.Find_jsN( 3 );
if ( j != null ) {
newTree.ActionMaps.js3 = j.DevName; newTree.ActionMaps.js3GUID = j.DevInstanceGUID;
}
else {
newTree.ActionMaps.js3 = ""; newTree.ActionMaps.js3GUID = "";
}
j = m_JS.Find_jsN( 4 );
if ( j != null ) {
newTree.ActionMaps.js4 = j.DevName; newTree.ActionMaps.js4GUID = j.DevInstanceGUID;
}
else {
newTree.ActionMaps.js4 = ""; newTree.ActionMaps.js4GUID = "";
// for all supported jsN devices
for ( int i=0; i < JoystickCls.JSnum_MAX; i++ ) {
j = m_Joystick.Find_jsN( i+1 );
if ( j != null ) {
newTree.ActionMaps.jsN[i] = j.DevName; newTree.ActionMaps.jsNGUID[i] = j.DevInstanceGUID;
}
else {
newTree.ActionMaps.jsN[i] = ""; newTree.ActionMaps.jsNGUID[i] = "";
}
}
m_AT = newTree; // make it the valid one

@ -23,22 +23,33 @@ namespace SCJMapper_V2
private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType );
// actionmap names to gather (do we need them to be cofigurable ??)
public static String[] ActionMaps = { "multiplayer", "singleplayer", "player", "spaceship_general", "spaceship_view", "spaceship_movement", "spaceship_targeting", "spaceship_weapons", "spaceship_missiles",
"spaceship_defensive", "spaceship_auto_weapons", "spaceship_radar" , "spaceship_hud" , "IFCS_controls" };
public static String[] ActionMaps = { "multiplayer", "singleplayer", "player", "flycam", "spaceship_general", "spaceship_view", "spaceship_movement", "spaceship_targeting", "spaceship_turret",
"spaceship_weapons", "spaceship_missiles", "spaceship_defensive", "spaceship_auto_weapons", "spaceship_radar" , "spaceship_hud" , "IFCS_controls" };
public String version { get; set; }
// own additions for JS mapping - should not harm..
public String js1 { get; set; }
public String js2 { get; set; }
public String js3 { get; set; }
public String js4 { get; set; }
private String[] m_js;
private String[] m_GUIDs;
/// <summary>
/// get/set jsN assignment (use 0-based index i.e. js1 -> [0])
/// </summary>
public String[] jsN
{
get { return m_js; }
}
/// <summary>
/// get/set jsN GUID assignment (use 0-based index i.e. js1GUID -> [0])
/// </summary>
public String[] jsNGUID
{
get { return m_GUIDs; }
}
public String js1GUID { get; set; }
public String js2GUID { get; set; }
public String js3GUID { get; set; }
public String js4GUID { get; set; }
/// <summary>
/// ctor
@ -46,8 +57,13 @@ namespace SCJMapper_V2
public ActionMapsCls( )
{
version = "0";
js1 = ""; js2 = ""; js3 = ""; js4 = "";
js1GUID = ""; js2GUID = ""; js3GUID = ""; js4GUID = "";
// create the Joystick assignments
Array.Resize( ref m_js, JoystickCls.JSnum_MAX + 1 );
Array.Resize( ref m_GUIDs, JoystickCls.JSnum_MAX + 1 );
for ( int i=0; i < JoystickCls.JSnum_MAX; i++ ) {
m_js[i] = ""; m_GUIDs[i] = "";
}
}
@ -60,10 +76,9 @@ namespace SCJMapper_V2
{
ActionMapsCls newMaps = new ActionMapsCls( );
// full copy from 'this'
newMaps.js1 = this.js1; newMaps.js1GUID = this.js1GUID;
newMaps.js2 = this.js2; newMaps.js2GUID = this.js2GUID;
newMaps.js3 = this.js3; newMaps.js3GUID = this.js3GUID;
newMaps.js4 = this.js4; newMaps.js4GUID = this.js4GUID;
for ( int i=0; i < JoystickCls.JSnum_MAX; i++ ) {
newMaps.jsN[i] = this.jsN[i]; newMaps.jsNGUID[i] = this.jsNGUID[i];
}
foreach ( ActionMapCls am in this ) {
newMaps.Add( am.ReassignJsN( newJsList ) );
@ -103,15 +118,12 @@ namespace SCJMapper_V2
log.Debug( "toXML - Entry" );
String r = String.Format( "<ActionMaps version=\"{0}\" \n", version );
if ( !String.IsNullOrEmpty( js1 ) ) r += String.Format( "\tjs1=\"{0}\" ", js1 );
if ( !String.IsNullOrEmpty( js1GUID ) ) r += String.Format( "js1G=\"{0}\" ", js1GUID ); r += String.Format( "\n" );
if ( !String.IsNullOrEmpty( js2 ) ) r += String.Format( "\tjs2=\"{0}\" ", js2 );
if ( !String.IsNullOrEmpty( js2GUID ) ) r += String.Format( "js2G=\"{0}\" ", js2GUID ); r += String.Format( "\n" );
if ( !String.IsNullOrEmpty( js3 ) ) r += String.Format( "\tjs3=\"{0}\" ", js3 );
if ( !String.IsNullOrEmpty( js3GUID ) ) r += String.Format( "js3G=\"{0}\" ", js3GUID ); r += String.Format( "\n" );
if ( !String.IsNullOrEmpty( js4 ) ) r += String.Format( "\tjs4=\"{0}\" ", js4 );
if ( !String.IsNullOrEmpty( js4GUID ) ) r += String.Format( "js4G=\"{0}\" ", js4GUID ); r += String.Format( "\n" );
r += String.Format( ">\n");
for ( int i=0; i < JoystickCls.JSnum_MAX; i++ ) {
if ( !String.IsNullOrEmpty( jsN[i] ) ) r += String.Format( "\tjs{0}=\"{1}\" ", i+1, jsN[i] );
if ( !String.IsNullOrEmpty( jsNGUID[i] ) ) r += String.Format( "js{0}G=\"{1}\" \n", i + 1, jsNGUID[i] );
}
r += String.Format( ">\n" );
foreach ( ActionMapCls amc in this ) {
r += String.Format( "{0}\n", amc.toXML( ) );
}
@ -143,14 +155,10 @@ namespace SCJMapper_V2
if ( reader.HasAttributes ) {
version = reader["version"];
// get the joystick mapping if there is one
js1 = reader["js1"];
js2 = reader["js2"];
js3 = reader["js3"];
js4 = reader["js4"];
js1GUID = reader["js1G"];
js2GUID = reader["js2G"];
js3GUID = reader["js3G"];
js4GUID = reader["js4G"];
for ( int i=0; i < JoystickCls.JSnum_MAX; i++ ) {
jsN[i] = reader[String.Format( "js{0}", i + 1 )];
jsNGUID[i] = reader[String.Format( "js{0}G", i + 1 )];
}
}
else {
return false;

@ -426,10 +426,9 @@ namespace SCJMapper_V2
String repList = "";
// JS assignments
if ( !String.IsNullOrEmpty( ActionMaps.js1 ) ) repList += String.Format( "** js1 = {0}\n", ActionMaps.js1 );
if ( !String.IsNullOrEmpty( ActionMaps.js2 ) ) repList += String.Format( "** js2 = {0}\n", ActionMaps.js2 );
if ( !String.IsNullOrEmpty( ActionMaps.js3 ) ) repList += String.Format( "** js3 = {0}\n", ActionMaps.js3 );
if ( !String.IsNullOrEmpty( ActionMaps.js4 ) ) repList += String.Format( "** js4 = {0}\n", ActionMaps.js4 );
for ( int i=0; i < JoystickCls.JSnum_MAX; i++ ) {
if ( !String.IsNullOrEmpty( ActionMaps.jsN[i] ) ) repList += String.Format( "** js{0} = {1}\n", i+1, ActionMaps.jsN[i] );
}
// now the mapped actions
repList += String.Format( "\n" );
foreach ( ActionMapCls acm in ActionMaps ) {

@ -121,7 +121,11 @@
"js1",
"js2",
"js3",
"js4"});
"js4",
"js5",
"js6",
"js7",
"js8"});
this.cbxStick8.Location = new System.Drawing.Point(562, 217);
this.cbxStick8.Name = "cbxStick8";
this.cbxStick8.Size = new System.Drawing.Size(84, 21);
@ -135,7 +139,11 @@
"js1",
"js2",
"js3",
"js4"});
"js4",
"js5",
"js6",
"js7",
"js8"});
this.cbxStick7.Location = new System.Drawing.Point(562, 189);
this.cbxStick7.Name = "cbxStick7";
this.cbxStick7.Size = new System.Drawing.Size(84, 21);
@ -149,7 +157,11 @@
"js1",
"js2",
"js3",
"js4"});
"js4",
"js5",
"js6",
"js7",
"js8"});
this.cbxStick6.Location = new System.Drawing.Point(562, 161);
this.cbxStick6.Name = "cbxStick6";
this.cbxStick6.Size = new System.Drawing.Size(84, 21);
@ -163,7 +175,11 @@
"js1",
"js2",
"js3",
"js4"});
"js4",
"js5",
"js6",
"js7",
"js8"});
this.cbxStick5.Location = new System.Drawing.Point(562, 133);
this.cbxStick5.Name = "cbxStick5";
this.cbxStick5.Size = new System.Drawing.Size(84, 21);
@ -177,7 +193,11 @@
"js1",
"js2",
"js3",
"js4"});
"js4",
"js5",
"js6",
"js7",
"js8"});
this.cbxStick4.Location = new System.Drawing.Point(562, 105);
this.cbxStick4.Name = "cbxStick4";
this.cbxStick4.Size = new System.Drawing.Size(84, 21);
@ -191,7 +211,11 @@
"js1",
"js2",
"js3",
"js4"});
"js4",
"js5",
"js6",
"js7",
"js8"});
this.cbxStick3.Location = new System.Drawing.Point(562, 77);
this.cbxStick3.Name = "cbxStick3";
this.cbxStick3.Size = new System.Drawing.Size(84, 21);
@ -205,7 +229,11 @@
"js1",
"js2",
"js3",
"js4"});
"js4",
"js5",
"js6",
"js7",
"js8"});
this.cbxStick2.Location = new System.Drawing.Point(562, 49);
this.cbxStick2.Name = "cbxStick2";
this.cbxStick2.Size = new System.Drawing.Size(84, 21);
@ -219,7 +247,11 @@
"js1",
"js2",
"js3",
"js4"});
"js4",
"js5",
"js6",
"js7",
"js8"});
this.cbxStick1.Location = new System.Drawing.Point(562, 21);
this.cbxStick1.Name = "cbxStick1";
this.cbxStick1.Size = new System.Drawing.Size(84, 21);

@ -52,7 +52,7 @@ namespace SCJMapper_V2
m_owner.JsReassingList.Clear( );
m_owner.NewJsList.Clear( );
foreach ( JoystickCls j in m_owner ) {
m_cb[textIdx].SelectedIndex = ( j.JSAssignment <= 4 ) ? j.JSAssignment : 0;
m_cb[textIdx].SelectedIndex = ( j.JSAssignment <= 8 ) ? j.JSAssignment : 0;
m_owner.NewJsList.Add( m_cb[textIdx].SelectedIndex ); // old for now - new depends on Leave Button
textIdx++;
}
@ -77,12 +77,12 @@ namespace SCJMapper_V2
private Boolean IsOK( )
{
int[] jsx = {0,0,0,0,0};
int[] jsx = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
foreach ( ComboBox cb in m_cb ) {
if ( cb.SelectedIndex>0) jsx[cb.SelectedIndex]++;
}
return ( ( jsx[1] < 2 ) && ( jsx[2] < 2 ) && ( jsx[3] < 2 ) && ( jsx[4] < 2 ) ); // each Js can be set only once
return ( ( jsx[1] < 2 ) && ( jsx[2] < 2 ) && ( jsx[3] < 2 ) && ( jsx[4] < 2 ) && ( jsx[5] < 2 ) && ( jsx[6] < 2 ) && ( jsx[7] < 2 ) && ( jsx[8] < 2 ) ); // each Js can be set only once
}

@ -28,7 +28,7 @@ namespace SCJMapper_V2
public const String BlendedJsInput = JsUnknown + "reserved"; // the device name used throughout this app
static private int JSnum_UNKNOWN = 0;
static private int JSnum_MAX = 4; // can only assign 4 jsN devices in SC
static public int JSnum_MAX = 8; // can only assign 4 jsN devices in SC
static public System.Drawing.Color[] JColor = (System.Drawing.Color[])MyColors.JColor.Clone(); // default

@ -62,11 +62,8 @@
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.rbJsNA = new System.Windows.Forms.RadioButton();
this.rbJs4 = new System.Windows.Forms.RadioButton();
this.rbJs3 = new System.Windows.Forms.RadioButton();
this.rbJs2 = new System.Windows.Forms.RadioButton();
this.rbJs1 = new System.Windows.Forms.RadioButton();
this.label1 = new System.Windows.Forms.Label();
this.lblJsAssignment = new System.Windows.Forms.Label();
this.gBox.SuspendLayout();
this.gBoxCap.SuspendLayout();
this.groupBox1.SuspendLayout();
@ -434,11 +431,8 @@
//
// groupBox1
//
this.groupBox1.Controls.Add(this.rbJsNA);
this.groupBox1.Controls.Add(this.rbJs4);
this.groupBox1.Controls.Add(this.rbJs3);
this.groupBox1.Controls.Add(this.rbJs2);
this.groupBox1.Controls.Add(this.rbJs1);
this.groupBox1.Controls.Add(this.lblJsAssignment);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Location = new System.Drawing.Point(3, 236);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(232, 46);
@ -446,62 +440,24 @@
this.groupBox1.TabStop = false;
this.groupBox1.Text = "jsN - Assignment";
//
// rbJsNA
//
this.rbJsNA.AutoSize = true;
this.rbJsNA.Checked = true;
this.rbJsNA.Enabled = false;
this.rbJsNA.Location = new System.Drawing.Point(182, 19);
this.rbJsNA.Name = "rbJsNA";
this.rbJsNA.Size = new System.Drawing.Size(37, 17);
this.rbJsNA.TabIndex = 4;
this.rbJsNA.TabStop = true;
this.rbJsNA.Text = "jsx";
this.rbJsNA.UseVisualStyleBackColor = true;
//
// rbJs4
//
this.rbJs4.AutoSize = true;
this.rbJs4.Enabled = false;
this.rbJs4.Location = new System.Drawing.Point(138, 19);
this.rbJs4.Name = "rbJs4";
this.rbJs4.Size = new System.Drawing.Size(38, 17);
this.rbJs4.TabIndex = 3;
this.rbJs4.Text = "js4";
this.rbJs4.UseVisualStyleBackColor = true;
//
// rbJs3
//
this.rbJs3.AutoSize = true;
this.rbJs3.Enabled = false;
this.rbJs3.Location = new System.Drawing.Point(94, 19);
this.rbJs3.Name = "rbJs3";
this.rbJs3.Size = new System.Drawing.Size(38, 17);
this.rbJs3.TabIndex = 2;
this.rbJs3.Text = "js3";
this.rbJs3.UseVisualStyleBackColor = true;
//
// rbJs2
//
this.rbJs2.AutoSize = true;
this.rbJs2.Enabled = false;
this.rbJs2.Location = new System.Drawing.Point(50, 19);
this.rbJs2.Name = "rbJs2";
this.rbJs2.Size = new System.Drawing.Size(38, 17);
this.rbJs2.TabIndex = 1;
this.rbJs2.Text = "js2";
this.rbJs2.UseVisualStyleBackColor = true;
//
// rbJs1
//
this.rbJs1.AutoSize = true;
this.rbJs1.Enabled = false;
this.rbJs1.Location = new System.Drawing.Point(6, 19);
this.rbJs1.Name = "rbJs1";
this.rbJs1.Size = new System.Drawing.Size(38, 17);
this.rbJs1.TabIndex = 0;
this.rbJs1.Text = "js1";
this.rbJs1.UseVisualStyleBackColor = true;
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(9, 21);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(119, 13);
this.label1.TabIndex = 0;
this.label1.Text = "This device is listed as: ";
//
// lblJsAssignment
//
this.lblJsAssignment.AutoSize = true;
this.lblJsAssignment.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblJsAssignment.Location = new System.Drawing.Point(134, 21);
this.lblJsAssignment.Name = "lblJsAssignment";
this.lblJsAssignment.Size = new System.Drawing.Size(22, 13);
this.lblJsAssignment.TabIndex = 1;
this.lblJsAssignment.Text = "jsx";
//
// UC_JoyPanel
//
@ -559,10 +515,7 @@
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.RadioButton rbJsNA;
private System.Windows.Forms.RadioButton rbJs4;
private System.Windows.Forms.RadioButton rbJs3;
private System.Windows.Forms.RadioButton rbJs2;
private System.Windows.Forms.RadioButton rbJs1;
private System.Windows.Forms.Label lblJsAssignment;
private System.Windows.Forms.Label label1;
}
}

@ -265,15 +265,11 @@ namespace SCJMapper_V2
set
{
m_jsAssignment = value;
switch ( m_jsAssignment ) {
case 1: rbJs1.Checked = true; break;
case 2: rbJs2.Checked = true; break;
case 3: rbJs3.Checked = true; break;
case 4: rbJs4.Checked = true; break;
default:
rbJsNA.Checked = true;
m_jsAssignment = value;
break;
if ( ( m_jsAssignment >= 1 ) && ( m_jsAssignment <= 8 ) ) {
lblJsAssignment.Text = String.Format( "js{0}", m_jsAssignment );
}
else {
lblJsAssignment.Text = "not assigned";
}
}
}

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

@ -26,8 +26,8 @@
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>23</ApplicationRevision>
<ApplicationVersion>2.3.0.%2a</ApplicationVersion>
<ApplicationRevision>24</ApplicationRevision>
<ApplicationVersion>2.4.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>

@ -10,6 +10,67 @@
<action name="v_attack1_group2" />
<action name="v_attack1_group3" />
</actiongroup>
<CustomisationUIHeader>
<keyboard label="Default" description="@ui_KeyboardDefaultDesc" image="KeyboardDefault" />
<xboxpad label="Default" description="@ui_GamepadDefaultDesc" image="GamePadDefault" />
<joystick label="Default" description="@ui_JoystickDefaultDesc" image="JoystickDefault" />
</CustomisationUIHeader>
<!-- Setup default input options -->
<optiontree type="shared" name="root">
<!-- Digital -->
<optiongroup name="pilot">
<optiongroup name="pilot_aim" sensitivity="0.025" />
</optiongroup>
</optiontree>
<optiontree type="keyboard" name="root">
<!-- Mouse axis -->
<optiongroup name="pilot">
<optiongroup name="pilot_movepitch" invert_cvar="v_mouseInvert" />
</optiongroup>
</optiontree>
<optiontree type="xboxpad" name="root">
<!-- LS / RS -->
<optiongroup name="pilot" sensitivity_cvar="v_gamepadSensitivity" exponent_cvar="v_gamepadNonLinearity">
<nonlinearity_curve>
<point in="0.1" out="0.001"/>
<point in="0.25" out="0.02"/>
<point in="0.5" out="0.1"/>
<point in="0.75" out="0.125"/>
<point in="0.85" out="0.15"/>
<point in="0.90" out="0.175"/>
<point in="0.925" out="0.25"/>
<point in="0.94" out="0.45"/>
<point in="0.95" out="0.75"/>
</nonlinearity_curve>
<optiongroup name="pilot_aim" sensitivity_cvar="v_gamepadAimSensitivity" exponent_cvar="v_gamepadAimNonLinearity">
<optiongroup name="pilot_aimpitch" invert_cvar="v_gamepadInvert" />
</optiongroup>
<optiongroup name="pilot_move">
<optiongroup name="pilot_movepitch" invert_cvar="v_gamepadInvert" />
<optiongroup name="pilot_moveyaw" invert_cvar="cl_invertYaw" />
</optiongroup>
<optiongroup name="pilot_view">
<nonlinearity_curve reset="1" />
<optiongroup name="pilot_viewpitch" invert_cvar="cl_invertController" />
</optiongroup>
</optiongroup>
</optiontree>
<optiontree type="joystick" instances="4" name="root">
<!-- Normal and twist axis -->
<optiongroup name="pilot" sensitivity_cvar="v_joystickSensitivity" exponent_cvar="v_joystickNonLinearity">
<optiongroup name="pilot_move">
<optiongroup name="pilot_moveyaw" invert_cvar="cl_invertYaw" />
</optiongroup>
</optiongroup>
<optiongroup name="pilot_rot" sensitivity_cvar="v_joystickTwistSensitivity" exponent_cvar="v_joystickTwistNonLinearity">
<optiongroup name="pilot_rot_move">
<optiongroup name="pilot_rot_moveyaw" invert_cvar="cl_invertYaw" />
</optiongroup>
</optiongroup>
<optiongroup name="pilot_throttle" invert="1"/>
</optiontree>
<actionmap name="debug" version="22">
<!-- debug keys - move to debug when we can switch devmode-->
@ -19,39 +80,38 @@
<action name="ai_DebugCenterViewAgent" onPress="1" noModifiers="1" keyboard="np_divide" />
<action name="togglepdrawhelpers" onPress="1" noModifiers="1" keyboard="f10" />
<action name="ulammo" onPress="1" noModifiers="1" keyboard="" />
<!--<action name="debug" onPress="1" keyboard="7" />-->
<!--<action name="thirdperson" onPress="1" noModifiers="1" keyboard="f1" xboxpad="xi_dpad_up" ps3pad="pad_up"/>-->
<!-- debug keys - end -->
</actionmap>
<actionmap name="multiplayer" version="24">
<actionmap name="multiplayer" version="25">
<!-- multiplayer specific keys -->
<action name="self_destruct" onHold="1" holdRepeatDelay="-1" holdTriggerDelay="0.5" keyboard="ralt+backspace" xboxpad="" joystick="" />
<action name="respawn" onPress="1" keyboard="x" xboxpad="xi_x" />
<action name="retry" onPress="1" keyboard="x" xboxpad="xi_x" />
<action name="ready" onPress="1" keyboard="x" xboxpad="xi_x" />
</actionmap>
<actionmap name="singleplayer" version="22">
<actionmap name="singleplayer" version="23">
<!-- singleplayer specific keys -->
<action name="save" onPress="1" consoleCmd="1" keyboard="f5" />
<action name="loadLastSave" onPress="1" consoleCmd="1" keyboard="f9" />
<action name="load" onPress="1" consoleCmd="1" keyboard="f8" />
<action name="retry" onPress="1" keyboard="x" xboxpad="xi_x" />
<action name="ready" onPress="1" keyboard="x" xboxpad="xi_x" />
</actionmap>
<actionmap name="default" version="24">
<action name="hmd_toggle" onPress="1" keyboard="np_1" />
<action name="hmd_center" onPress="1" keyboard="np_2" />
<!-- default keys -->
<action name="screenshot" onPress="1" keyboard="f12" />
<action name="skip_cutscene" onPress="1" noModifiers="1" keyboard="space" />
<action name="cancel_cinematic" onPress="1" noModifiers="1" keyboard="space" xboxpad="xi_back"/>
<action name="cam_toggle_cinematic" onPress="1" keyboard="ralt+c" />
<action name="objectives" onPress="1" onRelease="1" noModifiers="0" keyboard="o" />
<!-- UI keys -->
<action name="ui_toggle_pause" onPress="1" xboxpad="xi_start" ps3pad="pad_start"/>
<action name="ui_start_pause" onPress="1" keyboard="escape"/>
<!-- CIG BEGIN - nfaletra @ IllFonic - The ui_start_pause menu can't be closed in FPS mode. Moving the key to be a toggle instead -->
<action name="ui_toggle_pause" onPress="1" keyboard="escape" xboxpad="xi_start" ps3pad="pad_start"/>
<!--<action name="ui_start_pause" onPress="1" keyboard="escape"/>-->
<!-- CIG END -->
<action name="ui_click" onPress="1" onRelease="1" xboxpad="xi_a" ps3pad="pad_cross">
<keyboard>
<inputdata input="enter"/>
@ -127,12 +187,9 @@
<action name="ui_confirm" onPress="1" onRelease="1" xboxpad="xi_y" ps3pad="pad_triangle"/>
<action name="ui_reset" onPress="1" onRelease="1" xboxpad="xi_x" ps3pad="pad_square"/>
<action name="ui_skip_video" onPress="1" onRelease="1" keyboard="space" xboxpad="xi_a" ps3pad="pad_cross"/>
<!-- Trap alt+tab to stop actions on alt or tab from firing -->
<action name="windows_tabbing" keyboard="lalt+tab" />
</actionmap>
<actionmap name="player" version="24">
<actionmap name="player" version="25">
<!-- player keys -->
<action name="use" onPress="1" onRelease="1" keyboard="f" xboxpad="xi_y" ps3pad="pad_triangle" />
<action name="attack1" onPress="1" onRelease="1" onHold="1" keyboard="mouse1" xboxpad="xi_triggerr_btn" ps3pad="pad_r2" joystick="js1_button1"/>
@ -140,16 +197,22 @@
<action name="xi_zoom" onPress="1" onRelease="1" onHold="1" xboxpad="xi_triggerl_btn" ps3pad="pad_l2"/>
<action name="firemode" onPress="1" keyboard="x" xboxpad="xi_dpad_down" ps3pad="pad_down"/>
<action name="cycle_spectator_mode" onPress="1" keyboard="space" />
<action name="prev_spectator_target" onPress="1" keyboard="left" xboxpad="xi_dpad_right" ps3pad="pad_right"/>
<action name="next_spectator_target" onPress="1" keyboard="right" xboxpad="xi_dpad_left" ps3pad="pad_left"/>
<action name="revive" onPress="1" keyboard="mouse1" xboxpad="xi_triggerr_btn" ps3pad="pad_r2"/>
<action name="stabilize" onPress="1" onRelease="1" keyboard="lshift" xboxpad="xi_thumbl" ps3pad="pad_l1" />
<action name="prone" onPress="1" keyboard="x" xboxpad="xi_dpad_down" ps3pad="pad_down"/>
<action name="cycle_spectator_mode" onPress="1" keyboard="space" />
<action name="spectate_next_target" onPress="1" keyboard="mouse2" xboxpad="xi_shoulderr" joystick="js1_button1"/>
<action name="spectate_prev_target" onPress="1" keyboard="mouse1" xboxpad="xi_shoulderl" joystick="js1_button2"/>
<action name="spectate_zoom" keyboard="maxis_z"/>
<action name="spectate_zoom_in" onPress="1" onHold="1" xboxpad="xi_triggerr_btn" joystick="js1_hat1_up"/>
<action name="spectate_zoom_out" onPress="1" onHold="1" xboxpad="xi_triggerl_btn" joystick="js1_hat1_down"/>
<action name="spectate_rotateyaw" joystick="js1_x" xboxpad="xi_thumblx" ps3pad="pad_sticklx"/>
<action name="spectate_rotatepitch" joystick="js1_y" xboxpad="xi_thumbly" ps3pad="pad_stickly"/>
<action name="moveleft" onPress="1" onRelease="1" retriggerable="1" keyboard="a" />
<action name="moveright" onPress="1" onRelease="1" retriggerable="1" keyboard="d" />
<action name="moveforward" onPress="1" onRelease="1" retriggerable="1" keyboard="w" />
<action name="moveback" onPress="1" onRelease="1" retriggerable="1" keyboard="s" />
<action name="jump" onPress="1" onRelease="1" keyboard="space"/>
<action name="crouch" onPress="1" onRelease="1" retriggerable="1" keyboard="c"/>
<action name="prone" onPress="1" onHold="1" keyboard="z" />
<action name="sprint" onPress="1" onRelease="1" retriggerable="1" keyboard="lshift" xboxpad="xi_thumbl" ps3pad="pad_l1" />
<action name="special" onPress="1" onRelease="1" keyboard="t" xboxpad="xi_thumbr" />
<action name="leanleft" onPress="1" onRelease="1" onHold="1" keyboard="q" />
@ -158,11 +221,6 @@
<action name="drop" onPress="1" onRelease="1" keyboard="j"/>
<action name="nextitem" onPress="1" keyboard="mwheel_up" xboxpad="xi_dpad_right" ps3pad="pad_right"/>
<action name="previtem" onPress="1" keyboard="mwheel_down" />
<action name="small" onPress="1" keyboard="1" />
<action name="medium" onPress="1" keyboard="2" />
<action name="explosive" onPress="1" keyboard="3" />
<action name="suitmode" onPress="1" keyboard="4" />
<action name="utility" onPress="1" keyboard="5" />
<action name="handgrenade" onPress="1" keyboard="h" />
<action name="grenade" onPress="1" onRelease="1" keyboard="g" />
<action name="rotateyaw" keyboard="maxis_x" />
@ -175,6 +233,9 @@
</action>
<!-- CIG BEGIN - ernst @ IllFonic : Adding magnetic boot support. -->
<action name="toggle_magnetic_boots" onPress="1" keyboard="b" xboxpad="xi_x" ps3pad="pad_square"/>
<!-- CIG BEGIN - nick @ IllFonic : Adding visor mode switching. -->
<action name="visor_next_mode" onPress="1" keyboard="semicolon" />
<action name="visor_prev_mode" onPress="1" keyboard="apostrophe" />
<!-- CIG END -->
<!-- CONSOLE SPECIFIC CONTROLS START -->
<action name="xi_movey" xboxpad="xi_thumbly" ps3pad="pad_stickly"/>
@ -186,8 +247,7 @@
<!-- CONSOLE SPECIFIC CONTROLS END -->
<action name="thirdperson" onPress="1" noModifiers="1" keyboard="insert" xboxpad="xi_triggerl_btn+xi_thumbr" ps3pad="pad_up"/>
<action name="enable_mouse_input" onPress="1" onRelease="0" retriggerable="0" keyboard="tab"/>
<action name="disable_mouse_input" onPress="0" onRelease="1" retriggerable="0" keyboard="tab"/>
<action name="toggle_cursor_input" onPress="1" onRelease="1" retriggerable="0" keyboard="tab" xboxpad="xi_back" />
<action name="free_thirdperson_camera" onPress="1" onRelease="1" retriggerable="0" keyboard="g" xboxpad="xi_dpad_left"/>
<!-- HMD -->
<action name="hmd_rotateyaw" keyboard="HMD_Yaw" />
@ -222,7 +282,7 @@
<action name="flycam_clear" onPress="1" keyboard="c" xboxpad="xi_y" ps3pad="pad_triangle"/>
</actionmap>
<actionmap name="vehicle_general" version="26">
<actionmap name="vehicle_general" version="27">
<!-- vehicle keys -->
<action name="v_boost" onPress="1" onRelease="1" keyboard="lshift" xboxpad="xi_thumbr" ps3pad="pad_l1"/>
<action name="v_exit" onPress="1" onRelease="1" onHold="1" xboxpad="xi_y" ps3pad="pad_triangle" keyboard="f"/>
@ -238,10 +298,8 @@
<action name="v_view_pitch_mouse" keyboard="maxis_y"/>
<action name="v_view_yaw" xboxpad="xi_thumbrx" ps3pad="pad_stickrx"/>
<action name="v_view_pitch" xboxpad="xi_thumbry" ps3pad="pad_stickry"/>
<action name="v_enable_mouse_input" onPress="1" onRelease="0" retriggerable="0" keyboard="tab"/>
<action name="v_disable_mouse_input" onPress="0" onRelease="1" retriggerable="0" keyboard="tab"/>
<action name="v_toggle_cursor_input" onPress="0" onRelease="1" retriggerable="0" keyboard="tab" xboxpad="xi_back" />
<action name="v_target_cycle_all_fwd" onPress="0" onRelease="1" retriggerable="0" keyboard="lshift"/>
<action name="v_target_toggle_lock_selected" onPress="1" onHold="1" onRelease="1" retriggerable="0" keyboard="capslock"/>
<!-- This needs to be in vehicle_general to allow the weapons mount to fire in the hangar -->
<action name="v_attack1_group1" onPress="1" onRelease="1" onHold="1" keyboard="mouse1" xboxpad="xi_triggerr_btn" ps3pad="pad_r2" joystick="js1_button1" />
@ -273,112 +331,6 @@
<!-- STAR CITIZEN ACTION MAPS START -->
<actionmap name="spaceship" version="29">
<!-- NOTE These inputs are in ADDITION to the action map "vehicle_general" which is always initialized -->
<!-- Flight Control System Inputs, Keyboard -->
<action name="v_yaw_left" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="a" />
<action name="v_yaw_right" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="d" />
<action name="v_pitch_down" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="w"/>
<action name="v_pitch_up" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="s"/>
<action name="v_roll_left" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="q"/>
<action name="v_roll_right" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="e"/>
<action name="v_use_docking" onPress="1" onRelease="1" onHold="1" keyboard="space" xboxpad="xi_a" ps3pad="pad_cross"/>
<!-- Head look Inputs, Keyboard -->
<action name="v_view_yaw_right" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="right"/>
<action name="v_view_yaw_left" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="left"/>
<action name="v_view_pitch_up" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="up"/>
<action name="v_view_pitch_down" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard="down"/>
<!-- Flight Control System Inputs, Gamepad/Joystick -->
<action name="v_pitch" xboxpad="xi_thumbly" ps3pad="pad_stickly" joystick="js1_y"/>
<action name="v_pitch_gamepad" xboxpad="xi_thumbly" ps3pad="pad_stickly"/>
<action name="v_pitch_flightstick" joystick="js1_y"/>
<action name="v_yaw" xboxpad="xi_thumblx" ps3pad="pad_sticklx" joystick="js1_rotz"/>
<action name="v_roll" xboxpad="xi_triggerl_btn+xi_thumblx" joystick="js1_x"/>
<!--<action name="v_throttle_up" onPress="1" onHold="1" keyboard="equals" xboxpad="xi_shoulderr" ps3pad="pad_r1"/>
<action name="v_throttle_down" onPress="1" onHold="1" keyboard="minus" xboxpad="xi_shoulderl" ps3pad="pad_l1"/>-->
<action name="v_throttle" joystick="js1_throttlez"/>
<action name="v_afterburner" onPress="1" onRelease="1" onHold="1" keyboard="lshift" xboxpad="xi_a" ps3pad="pad_cross" />
<action name="v_brake" onPress="1" onRelease="1" onHold="1" keyboard="space" xboxpad="xi_b" ps3pad="pad_circle" />
<!-- Camera views Inputs -->
<action name="v_view_mode" onPress="1" onRelease="1" keyboard="tab" xboxpad="xi_thumbr" ps3pad="pad_r3"/>
<action name="v_view_option" onPress="1" onRelease="1" keyboard="pgup" xboxpad="xi_triggerl_btn" joystick=""/>
<!-- Weapon System Inputs -->
<action name="v_attack1_group1" onPress="1" onRelease="1" onHold="1" keyboard="mouse1" xboxpad="xi_triggerr_btn" ps3pad="pad_r2" joystick="js1_button1" />
<action name="v_attack1_group2" onPress="1" onRelease="1" onHold="1" keyboard="mouse2" xboxpad="xi_a" ps3pad="pad_cross" joystick="js1_button2" />
<action name="v_weapon_cycle_firemode_fwd" onPress="1" keyboard="f" />
<action name="v_weapon_cycle_ammo_fwd" onPress="1" keyboard="b" />
<action name="v_weapon_toggle_ai" onPress="1" keyboard="l" />
<!-- Missile Inputs -->
<action name="v_weapon_cycle_missile_fwd" onPress="1" keyboard="n" />
<action name="v_weapon_toggle_arm_missile" onPress="1" onHold="1" holdRepeatDelay="-1" holdTriggerDelay="0.4" onRelease="1" keyboard="m" xboxpad="xi_reserved" joystick=""/>
<action name="v_weapon_launch_missile" onPress="1" keyboard="mouse2" />
<!-- Lights -->
<!--
ju - moved to vehicle_default for buggy usage
<action name="v_lights" onPress="1" keyboard="o" />
-->
<!-- Debuging / Test Inputs -->
<action name="v_debug_1" onPress="1" onRelease="1" keyboard="" />
<!-- HMD -->
<action name="v_view_yaw_absolute" keyboard="HMD_Yaw" />
<action name="v_view_pitch_absolute" keyboard="HMD_Pitch" />
<action name="v_view_roll_absolute" keyboard="HMD_Roll" />
<!-- Shields -->
<action name="v_shield_raise_level_forward" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_8"/>
<action name="v_shield_raise_level_back" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_2"/>
<action name="v_shield_raise_level_left" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_4"/>
<action name="v_shield_raise_level_right" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_6"/>
<action name="v_shield_raise_level_up" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_9"/>
<action name="v_shield_raise_level_down" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_7"/>
<action name="v_shield_reset_level" onPress="0" onRelease="1" onHold="0" keyboard="rctrl+np_5"/>
<!-- Exit -->
<action name="v_eject" onPress="1" onHold="1" keyboard="ralt+l"/>
<!-- Input options -->
<options>
<option sensitivity_cvar="v_gamepadSensitivity" nonlinearity="2">
<optiondata input="xi_thumblx" action="v_yaw" invert_cvar="cl_invertYaw" />
<optiondata input="xi_thumblx" />
<optiondata input="xi_thumbly" action="v_pitch" invert_cvar="v_gamepadInvert" />
<optiondata input="xi_thumbly" />
</option>
<option sensitivity_cvar="v_joystickSensitivity" nonlinearity="2">
<optiondata input="js1_x" />
<optiondata input="js1_y" action="v_yaw" invert_cvar="cl_invertYaw" />
<optiondata input="js1_y" />
</option>
<option sensitivity_cvar="v_joystickTwistSensitivity" nonlinearity_cvar="v_joystickTwistNonLinearity">
<optiondata input="js1_rotz" />
</option>
</options>
<!-- LEGACY -->
<options>
<option input="xboxpad" sensitivity_cvar="v_gamepadSensitivity" nonlinearity="2">
<optiondata action="v_pitch" invert_cvar="cl_invertControllerFlight" />
<optiondata action="v_yaw" />
<optiondata action="v_roll" />
</option>
<option input="joystick" sensitivity_cvar="v_joystickSensitivity" nonlinearity="2">
<optiondata action="v_pitch" />
<optiondata action="v_yaw" />
<optiondata action="v_roll" />
</option>
</options>
</actionmap>
<actionmap name="spaceship_general" version="2">
<!-- Action map for a spaceship bits and pieces -->
@ -389,11 +341,18 @@
<!-- Power managements -->
<action name="v_power_cycle_preset_fwd" onPress="1" keyboard="u" xboxpad="" joystick="" />
<action name="v_power_cycle_preset_back" onPress="1" keyboard="i" xboxpad="" joystick="" />
<action name="v_power_focus_group_1" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="1" xboxpad="" joystick="" />
<action name="v_power_focus_group_2" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="2" xboxpad="" joystick="" />
<action name="v_power_focus_group_3" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="3" xboxpad="" joystick="" />
<action name="v_power_reset_focus" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="4" xboxpad="" joystick="" />
<!-- Exit -->
<action name="v_exit" onPress="1" onRelease="1" onHold="1" keyboard="f" xboxpad="xi_a" joystick="" />
<action name="v_eject" onPress="1" onHold="1" keyboard="ralt+l" xboxpad="xi_triggerl_btn+xi_back" joystick="jsx_reserved" />
<!-- Self destruct -->
<action name="v_self_destruct" onHold="1" holdRepeatDelay="-1" holdTriggerDelay="0.5" keyboard="ralt+backspace" xboxpad="" joystick="" />
<!-- Debuging / Test Inputs -->
<action name="v_debug_1" onPress="1" onRelease="1" keyboard="" />
<!-- CIG BEGIN David Campbell BHVR -->
@ -401,139 +360,202 @@
<!-- CIG END David Campbell BHVR -->
</actionmap>
<actionmap name="spaceship_view" version="16">
<actionmap name="spaceship_view" version="19">
<!-- Camera view -->
<action name="v_view_yaw_left" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_left"/>
<action name="v_view_yaw_right" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_right"/>
<action name="v_view_yaw" xboxpad="xi_thumbrx" joystick="jsx_reserved"/>
<action name="v_view_aim_yaw" xboxpad="xi_taxisrx" joystick="jsx_reserved"/>
<action name="v_view_yaw_toggled_mouse" keyboard="maxis_x"/>
<action name="v_view_yaw_mouse" keyboard="maxis_x"/>
<action name="v_view_yaw_absolute" keyboard="HMD_Yaw"/>
<action name="v_view_pitch_up" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_down"/>
<action name="v_view_pitch_down" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_up"/>
<action name="v_view_pitch" xboxpad="xi_thumbry" joystick="jsx_reserved"/>
<action name="v_view_aim_pitch" xboxpad="xi_taxisry" joystick="jsx_reserved"/>
<action name="v_view_pitch_toggled_mouse" keyboard="maxis_y"/>
<action name="v_view_pitch_mouse" keyboard="maxis_y"/>
<action name="v_view_pitch_absolute" keyboard="HMD_Pitch"/>
<action name="v_view_roll_absolute" keyboard="HMD_Roll" />
<action name="v_view_cycle_fwd" onPress="1" keyboard="insert" xboxpad="xi_triggerl_btn+xi_thumbr" joystick="js1_button6"/>
<action name="v_view_cycle_internal_fwd" onPress="1" keyboard="home" xboxpad="" joystick=""/>
<action name="v_view_option" onPress="1" onRelease="1" keyboard="tab" xboxpad="xi_triggerl_btn" joystick="jsx_reserved"/>
<action name="v_view_option" onPress="1" onRelease="1" keyboard=" " xboxpad="xi_reserved" joystick="jsx_reserved"/>
<action name="v_view_mode" onPress="1" onRelease="1" keyboard="pgup" xboxpad="xi_thumbr" joystick="jsx_reserved"/>
<action name="v_view_zoom_in" onPress="1" onHold ="1" keyboard="mwheel_up" xboxpad="xi_dpad_up" joystick="js1_hat1_up" />
<action name="v_view_zoom_out" onPress="1" onHold ="1" keyboard="mwheel_down" xboxpad="xi_dpad_down" joystick="js1_hat1_down" />
<action name="v_view_interact" onPress="1" onRelease="1" keyboard="f" xboxpad="xi_a" joystick=""/>
<action name="v_view_toggle_mouse" onRelease="1" keyboard="tab" releaseTriggerThreshold="0.25"/>
<action name="v_view_dynamic_focus_in" onPress="1" keyboard="mwheel_up"/>
<action name="v_view_dynamic_focus_out" onPress="1" keyboard="mwheel_down"/>
<action name="v_view_cycle_headlook_mode" onRelease="1" releaseTriggerThreshold="0.25" keyboard="tab" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_view_dynamic_focus" keyboard="maxis_z"/>
<action name="v_view_dynamic_focus_toggle" onPress="1" xboxpad="xi_thumbr" joystick="js1_button11"/>
<action name="v_view_track_target" onPress="1" onRelease="1" keyboard="lctrl+tab" xboxpad="" joystick=""/>
<!-- Input options -->
<options>
<!--<option sensitivity="0.0015" sensitivity_cvar="cl_sensitivity">
<optiondata input="maxis_y" />
<optiondata input="maxis_x" />
</option>-->
<option sensitivity_cvar="v_gamepadAimSensitivity" nonlinearity_cvar="v_gamepadAimNonLinearity">
<nonlinearity_curve>
<point in="0.1" out="0.006"/>
<point in="0.25" out="0.04"/>
<point in="0.5" out="0.15"/>
<point in="0.75" out="0.37"/>
<point in="0.85" out="0.5"/>
</nonlinearity_curve>
<optiondata input="xi_taxisrx" action="v_view_aim_yaw" />
<optiondata input="xi_taxisry" action="v_view_aim_pitch" invert_cvar="cl_invertController" />
</option>
<option>
<optiondata input="xi_thumbry" invert_cvar="cl_invertController" />
</option>
</options>
<!-- Pad stick input options -->
<optiongroup type="xboxpad">
<option group="pilot_view" />
<!-- currently done directly in PlayerInput code: <option action="v_view_pitch" group="pilot_viewpitch" /> -->
</optiongroup>
</actionmap>
<actionmap name="spaceship_movement" version="10">
<actionmap name="spaceship_movement" version="13" UILabel="@ui_CustomisationGroupSpaceFlight">
<!-- Action map for a spaceship piloting -->
<!-- IFCS (requires avionics) -->
<action name="v_pitch_up" onHold="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="" joystick=""/>
<action name="v_pitch_down" onHold="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="" joystick=""/>
<action name="v_pitch" xboxpad="xi_taxisly" joystick="js1_y"/>
<action name="v_pitch_up" onPress="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="" joystick="" UILabel="@ui_CustomisationInputPitchUp" UIDescription="@ui_CustomisationInputPitchUpDesc" />
<action name="v_pitch_down" onPress="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="" joystick=""/>
<action name="v_pitch" xboxpad="xi_thumbly" joystick="js1_y" UILabel="@ui_CustomisationInputPitch" UIDescription="@ui_CustomisationInputPitchDesc" />
<action name="v_pitch_mouse" keyboard="maxis_y"/>
<action name="v_yaw_left" onHold="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="" joystick="jsx_reserved" />
<action name="v_yaw_right" onHold="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="" joystick="jsx_reserved" />
<action name="v_yaw" xboxpad="xi_taxislx" joystick="js1_rotz"/>
<action name="v_yaw_left" onPress="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="" joystick="jsx_reserved" />
<action name="v_yaw_right" onPress="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="" joystick="jsx_reserved" />
<action name="v_yaw" xboxpad="xi_thumblx" joystick="js1_rotz"/>
<action name="v_yaw_mouse" keyboard="maxis_x"/>
<action name="v_toggle_relative_mouse_mode" onPress="1" onRelease="1" keyboard="lctrl+f" xboxpad="" joystick=""/>
<action name="v_roll_left" onHold="1" onRelease="1" retriggerable="1" keyboard="a" xboxpad="" joystick=""/>
<action name="v_roll_right" onHold="1" onRelease="1" retriggerable="1" keyboard="d" xboxpad="" joystick=""/>
<action name="v_roll" xboxpad="xi_triggerl_btn+xi_taxislx" joystick="js1_x"/>
<action name="v_toggle_relative_mouse_mode" onPress="1" onRelease="1" keyboard="lctrl+c" xboxpad="" joystick=""/>
<action name="v_roll_left" onPress="1" onRelease="1" retriggerable="1" keyboard="a" xboxpad="" joystick=""/>
<action name="v_roll_right" onPress="1" onRelease="1" retriggerable="1" keyboard="d" xboxpad="" joystick=""/>
<action name="v_roll" xboxpad="xi_triggerl_btn+xi_thumblx" joystick="js1_x"/>
<action name="v_throttle_toggle_minmax" onPress="1" keyboard="backspace" xboxpad="" joystick="" />
<action name="v_throttle_zero" onPress="1" keyboard="" joystick="" >
<action name="v_throttle_zero" onPress="1" joystick="" >
<xboxpad multiTap="2" input="xi_shoulderl" />
<keyboard multiTap="2" input="s" />
</action>
<action name="v_throttle_100" onPress="1" keyboard="" xboxpad="" joystick="jsx_reserved" />
<action name="v_throttle_up" onPress="1" onHold="1" onRelease="1" keyboard="w" xboxpad="xi_shoulderr" joystick="" />
<action name="v_throttle_down" onPress="1" onHold="1" onRelease="1" keyboard ="s" xboxpad="xi_shoulderl" joystick=""/>
<action name="v_throttle" keyboard="" xboxpad="" joystick="js1_throttlez" />
<action name="v_throttle_100" onPress="1" joystick="jsx_reserved" >
<xboxpad multiTap="2" input="xi_shoulderr" />
<keyboard multiTap="2" input="w" />
</action>
<action name="v_throttle_up" onPress="1" onRelease="1" keyboard="w" xboxpad="xi_shoulderr" joystick="" />
<action name="v_throttle_down" onPress="1" onRelease="1" keyboard ="s" xboxpad="xi_shoulderl" joystick=""/>
<action name="v_throttle" keyboard="" xboxpad="xi_reserved" joystick="js1_throttlez" />
<action name="v_brake" onPress="1" onHold="1" onRelease="1" keyboard="space" xboxpad="xi_shoulderl+xi_shoulderr" joystick="jsx_reserved" />
<action name="v_target_match_vel" onPress="1" onRelease="1" keyboard="m" joystick="js1_button8" >
<xboxpad multiTap="2" input="xi_shoulderr" />
</action>
<!-- Advanced IFCS on (requires IFCS) -->
<action name="v_ifcs_toggle_vector_decoupling" onPress="1" onRelease="1" keyboard="capslock" xboxpad="xi_thumbl" joystick="jsx_reserved" />
<action name="v_strafe_up" onHold="1" onRelease="1" retriggerable="1" keyboard="e" xboxpad="" joystick="jsx_reserved" />
<action name="v_strafe_down" onHold="1" onRelease="1" retriggerable="1" keyboard="q" xboxpad="" joystick="jsx_reserved" />
<action name="v_strafe_vertical" xboxpad="xi_triggerl_btn+xi_taxisly" joystick="jsx_reserved" />
<action name="v_strafe_left" onHold="1" onRelease="1" retriggerable="1" keyboard="a" xboxpad="" joystick="jsx_reserved" />
<action name="v_strafe_right" onHold="1" onRelease="1" retriggerable="1" keyboard="d" xboxpad="" joystick="jsx_reserved" />
<action name="v_strafe_lateral" xboxpad="xi_triggerl_btn+xi_taxislx" joystick="jsx_reserved" />
<action name="v_strafe_forward" onHold="1" onRelease="1" retriggerable="1" keyboard="w" xboxpad="xi_shoulderr" joystick="jsx_reserved" />
<action name="v_strafe_back" onHold="1" onRelease="1" retriggerable="1" keyboard="s" xboxpad="xi_shoulderl" joystick="jsx_reserved" />
<action name="v_strafe_longitudinal" joystick="jsx_reserved" />
<action name="v_newtonian_yaw" xboxpad="xi_taxislx" joystick="js1_x" />
<action name="v_newtonian_pitch" xboxpad="xi_taxisly" joystick="js1_y" />
<action name="v_newtonian_brake" onPress="1" onRelease="1" keyboard="space" xboxpad="xi_triggerl_btn+xi_shoulderl" joystick="jsx_reserved" />
<action name="v_ifcs_toggle_safety" onPress="1" onRelease="1" keyboard="lctrl+capslock" xboxpad="xi_triggerl_btn+xi_thumbl" joystick="jsx_reserved" />
<action name="v_ifcs_toggle_vector_decoupling" onPress="1" keyboard="capslock" xboxpad="xi_thumbl" joystick="jsx_reserved" />
<action name="v_strafe_up" onPress="1" onRelease="1" retriggerable="1" keyboard="r" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_strafe_down" onPress="1" onRelease="1" retriggerable="1" keyboard="f" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_strafe_vertical" xboxpad="xi_triggerl_btn+xi_thumbry" joystick="jsx_reserved" />
<action name="v_strafe_left" onPress="1" onRelease="1" retriggerable="1" keyboard="q" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_strafe_right" onPress="1" onRelease="1" retriggerable="1" keyboard="e" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_strafe_lateral" xboxpad="xi_triggerl_btn+xi_thumbrx" joystick="jsx_reserved" />
<action name="v_strafe_forward" onPress="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_strafe_back" onPress="1" onRelease="1" retriggerable="1" keyboard=" " xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_strafe_longitudinal" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_ifcs_toggle_safeties" onPress="1" keyboard="lctrl+capslock" xboxpad="xi_triggerl_btn+xi_thumbl" joystick="jsx_reserved" />
<action name="v_ifcs_toggle_gforce_safety" onPress="1" keyboard=" " xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_ifcs_toggle_comstab" onPress="1" keyboard=" " xboxpad="xi_reserved" joystick="jsx_reserved" />
<!-- Decoupled flight mode (requires advanced IFCS) -->
<action name="v_decoupled_strafe_up" onPress="1" onRelease="1" retriggerable="1" keyboard="r" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_decoupled_strafe_down" onPress="1" onRelease="1" retriggerable="1" keyboard="f" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_decoupled_strafe_vertical" xboxpad="xi_triggerl_btn+xi_thumbry" joystick="jsx_reserved" />
<action name="v_decoupled_strafe_left" onPress="1" onRelease="1" retriggerable="1" keyboard="q" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_decoupled_strafe_right" onPress="1" onRelease="1" retriggerable="1" keyboard="e" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_decoupled_strafe_lateral" xboxpad="xi_triggerl_btn+xi_thumbrx" joystick="jsx_reserved" />
<action name="v_decoupled_strafe_forward" onPress="1" onRelease="1" retriggerable="1" keyboard="w" xboxpad="xi_shoulderr" joystick="jsx_reserved" />
<action name="v_decoupled_strafe_back" onPress="1" onRelease="1" retriggerable="1" keyboard="s" xboxpad="xi_shoulderl" joystick="jsx_reserved" />
<action name="v_decoupled_strafe_longitudinal" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_decoupled_yaw" xboxpad="xi_thumblx" joystick="js1_rotz" />
<action name="v_decoupled_yaw_left" onPress="1" onRelease="1" retriggerable="1" keyboard=" " />
<action name="v_decoupled_yaw_right" onPress="1" onRelease="1" retriggerable="1" keyboard=" " />
<action name="v_decoupled_pitch" xboxpad="xi_thumbly" joystick="js1_y" />
<action name="v_decoupled_pitch_up" onPress="1" onRelease="1" retriggerable="1" keyboard=" " />
<action name="v_decoupled_pitch_down" onPress="1" onRelease="1" retriggerable="1" keyboard=" " />
<action name="v_decoupled_roll_left" onPress="1" onRelease="1" retriggerable="1" keyboard="a" />
<action name="v_decoupled_roll_right" onPress="1" onRelease="1" retriggerable="1" keyboard="d" />
<action name="v_decoupled_roll" xboxpad="xi_triggerl_btn+xi_thumblx" joystick="js1_x" />
<action name="v_decoupled_brake" onPress="1" onRelease="1" keyboard="space" xboxpad="xi_shoulderr+xi_shoulderl" joystick="jsx_reserved" />
<!-- Afterburner installed (requires IFCS) -->
<action name="v_afterburner" onPress="1" onRelease="1" onHold="1" keyboard="lshift" xboxpad="xi_b" joystick="js1_button7" />
<!-- Input options -->
<options>
<option invert_cvar="v_mouseInvert">
<optiondata input="maxis_y" />
</option>
<option sensitivity_cvar="v_gamepadSensitivity" nonlinearity_cvar="v_gamepadNonLinearity">
<nonlinearity_curve>
<point in="0.1" out="0.006"/>
<point in="0.25" out="0.04"/>
<point in="0.5" out="0.15"/>
<point in="0.75" out="0.37"/>
<point in="0.85" out="0.5"/>
</nonlinearity_curve>
<optiondata input="xi_taxislx" action="v_yaw" invert_cvar="cl_invertYaw" />
<optiondata input="xi_taxislx" />
<optiondata input="xi_taxisly" invert_cvar="v_gamepadInvert" />
<optiondata input="xi_taxisrx" action="v_newtonian_yaw" invert_cvar="cl_invertYaw" />
<optiondata input="xi_taxisry" invert_cvar="v_gamepadInvert" />
</option>
<option sensitivity_cvar="v_joystickSensitivity" nonlinearity_cvar="v_joystickNonLinearity">
<optiondata input="js1_x" />
<optiondata input="js1_y" action="v_yaw" invert_cvar="cl_invertYaw" />
<optiondata input="js1_y" action="v_newtonian_yaw" invert_cvar="cl_invertYaw" />
<optiondata input="js1_y" />
</option>
<option sensitivity_cvar="v_joystickTwistSensitivity" nonlinearity_cvar="v_joystickTwistNonLinearity">
<optiondata input="js1_rotz" action="v_yaw" invert_cvar="cl_invertYaw" />
<optiondata input="js1_rotz" action="v_newtonian_yaw" invert_cvar="cl_invertYaw" />
<optiondata input="js1_rotz" />
</option>
</options>
<action name="v_toggle_landing_gear" onPress="1" onRelease="1" keyboard="end" joystick="jsx_reserved" />
<!-- Mouse input options -->
<optiongroup type="keyboard">
<option input="_y" group="pilot_movepitch" />
</optiongroup>
<!-- Pad stick input options -->
<optiongroup type="xboxpad">
<option group="pilot_move" />
<option action="v_yaw" group="pilot_moveyaw" />
<option action="v_decoupled_yaw" group="pilot_moveyaw" />
<option action="v_pitch" group="pilot_movepitch" />
<option action="v_decoupled_pitch" group="pilot_movepitch" />
</optiongroup>
<!-- Joystick input options -->
<optiongroup type="joystick">
<!-- main stick -->
<option input="_x" group="pilot_move" />
<option input="_y" group="pilot_move" />
<option input="_y" action="v_yaw" group="pilot_moveyaw" />
<option input="_y" action="v_decoupled_yaw" group="pilot_moveyaw" />
<!-- twist -->
<option input="_rotz" group="pilot_rot_move" />
<option input="_rotz" action="v_yaw" group="pilot_rot_moveyaw" />
<option input="_rotz" action="v_decoupled_yaw" group="pilot_rot_moveyaw" />
<!-- throttle -->
<option action="v_throttle" group="pilot_throttle" />
</optiongroup>
</actionmap>
<actionmap name="spaceship_targeting" version="4">
<actionmap name="spaceship_targeting" version="7">
<!-- Action map for a spaceship targeting controls -->
<!-- Aiming -->
<action name="v_aim_yaw" xboxpad="xi_thumbrx" joystick="jsx_reserved" />
<action name="v_aim_yaw_left" onPress="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_left"/>
<action name="v_aim_yaw_right" onPress="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_right"/>
<action name="v_aim_pitch" xboxpad="xi_thumbry" joystick="jsx_reserved" />
<action name="v_aim_pitch_up" onPress="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_down"/>
<action name="v_aim_pitch_down" onPress="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_up"/>
<action name="v_aim_yaw_mouse" keyboard="maxis_x" />
<action name="v_aim_pitch_mouse" keyboard="maxis_y" />
<action name="v_aim_snap" onPress="1" joystick="jsx_reserved" >
<xboxpad multiTap="2" input="xi_thumbr" />
</action>
<!-- Targeting computer controls (requires avionics) -->
<action name="v_target_toggle_computer_onoff" onPress="1" onRelease="1" keyboard="" xboxpad="" joystick=""/>
<action name="v_target_cycle_all_fwd" onPress="1" onRelease="1" keyboard="y" xboxpad="xi_dpad_up" joystick="js1_hat1_up"/>
<action name="v_target_cycle_all_back" onPress="1" onRelease="1" keyboard="lctrl+y" xboxpad="xi_dpad_down" joystick="js1_hat1_down"/>
<action name="v_target_cycle_friendly_fwd" onPress="1" onRelease="1" keyboard="h" xboxpad="" joystick="jsx_reserved" />
<action name="v_target_cycle_friendly_back" onPress="1" onRelease="1" keyboard="lctrl+h" xboxpad="" joystick="jsx_reserved" />
<action name="v_target_toggle_pinned_focused" onPress="1" onRelease="1" keyboard="g" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_target_missile_lock_focused" onPress="1" onRelease="1" keyboard="mouse3" xboxpad="xi_y" joystick="js1_button4" />
<!--Additional targeting computer controls (requires flight avionics) -->
<action name="v_target_cycle_hostile_fwd" onPress="1" onRelease="1" keyboard="t" xboxpad="xi_dpad_right" joystick="js1_hat1_right"/>
<action name="v_target_cycle_hostile_back" onPress="1" onRelease="1" keyboard="lctrl+t" xboxpad="" joystick="jsx_reserved" />
<action name="v_target_nearest_hostile" onPress="1" onRelease="1" keyboard="c" xboxpad="xi_dpad_left" joystick="js1_hat1_left"/>
<action name="v_target_nearest_landzone" onPress="1" onRelease="1" keyboard="n" xboxpad="" joystick=""/>
<action name="v_target_pin_reticule" onPress="1" onRelease="1" keyboard="lctrl+g" xboxpad="" joystick="jsx_reserved" />
<action name="v_target_cycle_subsystem_fwd" onPress="1" onRelease="1" keyboard="b" xboxpad="" joystick=""/>
<action name="v_target_cycle_subsystem_back" onPress="1" onRelease="1" keyboard="lctrl+b" xboxpad="" joystick=""/>
<optiongroup type="shared">
<!-- Digital buttons input options -->
<option action="v_aim_yaw_left" group="pilot_aim" />
<option action="v_aim_yaw_right" group="pilot_aim" />
<option action="v_aim_pitch_up" group="pilot_aim" />
<option action="v_aim_pitch_down" group="pilot_aim" />
</optiongroup>
<optiongroup type="keyboard">
<!-- Mouse input options -->
<option input="_y" group="pilot_movepitch" />
</optiongroup>
<optiongroup type="xboxpad">
<!-- Pad stick input options -->
<option group="pilot_aim" />
<option action="v_aim_yaw" group="pilot_aim" />
<option action="v_aim_pitch" group="pilot_aimpitch" />
</optiongroup>
</actionmap>
<actionmap name="spaceship_turret" version="1">
<!-- Action map for a spaceship targeting controls -->
<!-- Aiming -->
<action name="v_aim_yaw" xboxpad="xi_thumblx" joystick="jsx_reserved" />
<action name="v_aim_yaw_left" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_left"/>
<action name="v_aim_yaw_right" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_right"/>
<action name="v_aim_pitch" xboxpad="xi_thumbly" joystick="jsx_reserved" />
<action name="v_aim_pitch_up" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_down"/>
<action name="v_aim_pitch_down" onPress="1" onHold ="1" onRelease="1" retriggerable="1" keyboard=" " joystick="js1_hat2_up"/>
<action name="v_aim_yaw_mouse" keyboard="maxis_x" />
<action name="v_aim_pitch_mouse" keyboard="maxis_y" />
<action name="v_aim_snap" onPress="1" joystick="jsx_reserved" >
<xboxpad multiTap="2" input="xi_thumbr" />
</action>
<!-- Targeting computer controls (requires avionics) -->
<action name="v_target_toggle_computer_onoff" onPress="1" onRelease="1" keyboard="" xboxpad="" joystick=""/>
<action name="v_target_cycle_all_fwd" onPress="1" onRelease="1" keyboard="y" xboxpad="xi_dpad_up" joystick="js1_hat1_up"/>
@ -550,6 +572,24 @@
<action name="v_target_pin_reticule" onPress="1" onRelease="1" keyboard="lctrl+g" xboxpad="" joystick="jsx_reserved" />
<action name="v_target_cycle_subsystem_fwd" onPress="1" onRelease="1" keyboard="b" xboxpad="" joystick=""/>
<action name="v_target_cycle_subsystem_back" onPress="1" onRelease="1" keyboard="lctrl+b" xboxpad="" joystick=""/>
<optiongroup type="shared">
<!-- Digital buttons input options -->
<option action="v_aim_yaw_left" group="pilot_aim" />
<option action="v_aim_yaw_right" group="pilot_aim" />
<option action="v_aim_pitch_up" group="pilot_aim" />
<option action="v_aim_pitch_down" group="pilot_aim" />
</optiongroup>
<optiongroup type="keyboard">
<!-- Mouse input options -->
<option input="_y" group="pilot_movepitch" />
</optiongroup>
<optiongroup type="xboxpad">
<!-- Pad stick input options -->
<option group="pilot_aim" />
<option action="v_aim_yaw" group="pilot_aim" />
<option action="v_aim_pitch" group="pilot_aimpitch" />
</optiongroup>
</actionmap>
<actionmap name="spaceship_weapons" version="2">
@ -577,18 +617,18 @@
<!-- Action map for a spaceship countermeasures and shields -->
<!-- Countermeasures installed (requires weapons control on) -->
<action name="v_weapon_launch_countermeasure" onPress="1" keyboard="z" xboxpad="xi_triggerl_btn+xi_y" joystick="js1_button5" />
<action name="v_weapon_launch_countermeasure" onPress="1" onRelease="1" keyboard="z" xboxpad="xi_triggerl_btn+xi_y" joystick="js1_button5" />
<action name="v_weapon_cycle_countermeasure_fwd" onPress="1" keyboard="x" xboxpad="xi_reserved" joystick="js1_button8" />
<action name="v_weapon_cycle_countermeasure_back" onPress="1" keyboard="" xboxpad="" joystick=""/>
<!-- Shields -->
<action name="v_shield_raise_level_forward" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_8"/>
<action name="v_shield_raise_level_back" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_2"/>
<action name="v_shield_raise_level_left" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_4"/>
<action name="v_shield_raise_level_right" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_6"/>
<action name="v_shield_raise_level_up" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_9"/>
<action name="v_shield_raise_level_down" onPress="1" onRelease="1" onHold="1" keyboard="rctrl+np_7"/>
<action name="v_shield_reset_level" onPress="0" onRelease="1" onHold="0" keyboard="rctrl+np_5"/>
<action name="v_shield_raise_level_forward" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="np_8"/>
<action name="v_shield_raise_level_back" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="np_2"/>
<action name="v_shield_raise_level_left" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="np_4"/>
<action name="v_shield_raise_level_right" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="np_6"/>
<action name="v_shield_raise_level_up" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="np_9"/>
<action name="v_shield_raise_level_down" onPress="1" onRelease="1" onHold="1" holdTriggerDelay="0.15" keyboard="np_7"/>
<action name="v_shield_reset_level" onPress="0" onRelease="1" onHold="0" holdTriggerDelay="0.15" keyboard="np_5"/>
<!-- Shields control (requires flight avionics) -->
<action name="v_shield_toggle_generator_onoff" onPress="1" keyboard="" xboxpad="" joystick=""/>
<action name="v_shield_power_up" onPress="1" keyboard="equal" xboxpad="" joystick=""/>
@ -622,12 +662,14 @@
<action name="v_radar_toggle_view_focus" onPress="1" keyboard="" xboxpad="" joystick=""/>
</actionmap>
<actionmap name="spaceship_hud" version="1">
<actionmap name="spaceship_hud" version="2">
<!-- Action map for a spaceship HUD controls-->
<!-- HUD controls (general) -->
<action name="v_hud_cycle_mode_fwd" onPress="1" onRelease="1" keyboard="semicolon" xboxpad="" joystick=""/>
<action name="v_hud_cycle_mode_back" onPress="1" onRelease="1" keyboard="apostrophe" xboxpad="" joystick=""/>
<action name="v_hud_cycle_mode_fwd" onPress="1" onRelease="1" keyboard="semicolon" xboxpad="" joystick="jsx_reserved" />
<action name="v_hud_cycle_mode_back" onPress="1" onRelease="1" keyboard="apostrophe" xboxpad="" joystick="jsx_reserved" />
<action name="v_hud_focused_cycle_mode_fwd" onPress="1" onRelease="1" keyboard="" xboxpad="xi_shoulderr" joystick="" />
<action name="v_hud_focused_cycle_mode_back" onPress="1" onRelease="1" keyboard="" xboxpad="xi_shoulderl" joystick="" />
<action name="v_hud_toggle_cursor_input" onHold="1" onRelease="1" holdTriggerDelay="0.25" holdRepeatDelay="-1" retriggerable="0" keyboard="tab" xboxpad="xi_start" joystick=""/>
<!-- HUD controls (quick keys) -->
<action name="v_hud_open_tab1" onPress="1" onRelease="1" keyboard="f1" xboxpad="" joystick="jsx_reserved" />
@ -640,6 +682,8 @@
<action name="v_hud_open_tab8" onPress="1" onRelease="1" keyboard="f8" xboxpad="" joystick=""/>
<action name="v_hud_open_tab9" onPress="1" onRelease="1" keyboard="f9" xboxpad="" joystick=""/>
<action name="v_hud_open_tab10" onPress="1" onRelease="1" keyboard="f10" xboxpad="" joystick=""/>
<!-- commenting out for GamesCom to avoid conflict with shield management -->
<!--
<action name="v_hud_num_zero" onPress="1" onRelease="1" keyboard="np_0" xboxpad="" joystick=""/>
<action name="v_hud_num_del" onPress="1" onRelease="1" keyboard="np_period" xboxpad="" joystick=""/>
<action name="v_hud_num_1" onPress="1" onRelease="1" keyboard="np_1" xboxpad="" joystick=""/>
@ -651,24 +695,17 @@
<action name="v_hud_num_7" onPress="1" onRelease="1" keyboard="np_7" xboxpad="" joystick=""/>
<action name="v_hud_num_8" onPress="1" onRelease="1" keyboard="np_8" xboxpad="" joystick=""/>
<action name="v_hud_num_9" onPress="1" onRelease="1" keyboard="np_9" xboxpad="" joystick=""/>
-->
<action name="v_hud_open_scoreboard" onPress="1" onRelease="1" keyboard="lalt" xboxpad="xi_reserved" joystick="jsx_reserved" />
<action name="v_hud_toggle_maximised" onPress="1" onRelease="1" keyboard="f11" xboxpad="" joystick=""/>
<!-- HUD controls (interaction) -->
<action name="v_hud_confirm" onPress="1" onRelease="1" xboxpad="xi_triggerL_btn+xi_a" joystick="">
<keyboard>
<inputdata input="enter"/>
</keyboard>
</action>
<action name="v_hud_interact" onPress="1" onRelease="1" keyboard="" xboxpad="xi_triggerl_btn" joystick=""/>
<action name="v_hud_cancel" onPress="1" onRelease="1" keyboard="" xboxpad="xi_triggerl_btn+xi_b" joystick=""/>
<action name="v_hud_left_panel_up" onPress="1" onRelease="1" keyboard="up" xboxpad="xi_triggerl_btn+xi_dpad_up" joystick=""/>
<action name="v_hud_left_panel_down" onPress="1" onRelease="1" keyboard="down" xboxpad="xi_triggerl_btn+xi_dpad_down" joystick=""/>
<action name="v_hud_left_panel_left" onPress="1" onRelease="1" keyboard="left" xboxpad="xi_triggerl_btn+xi_dpad_left" joystick=""/>
<action name="v_hud_left_panel_right" onPress="1" onRelease="1" keyboard="right" xboxpad="xi_triggerl_btn+xi_dpad_right" joystick=""/>
<action name="v_hud_slash" onPress="1" onRelease="1" keyboard="np_divide" xboxpad="p" joystick=""/>
<action name="v_hud_star" onPress="1" onRelease="1" keyboard="np_multiply" xboxpad="" joystick=""/>
<action name="v_hud_minus" onPress="1" onRelease="1" keyboard="np_subtract" xboxpad="" joystick=""/>
<action name="v_hud_plus" onPress="1" onRelease="1" keyboard="np_add" xboxpad="" joystick=""/>
<action name="v_hud_interact_toggle" onPress="1" onRelease="0" keyboard="home" xboxpad="xi_back" joystick="jsx_reserved" />
<action name="v_hud_confirm" onPress="1" onRelease="1" keyboard="enter" xboxpad="xi_a" joystick="jsx_reserved" />
<action name="v_hud_cancel" onPress="1" onRelease="1" keyboard="rctrl" xboxpad="xi_b" joystick="jsx_reserved" />
<action name="v_hud_left_panel_up" onPress="1" onRelease="1" keyboard="up" xboxpad="xi_dpad_up" joystick=""/>
<action name="v_hud_left_panel_down" onPress="1" onRelease="1" keyboard="down" xboxpad="xi_dpad_down" joystick=""/>
<action name="v_hud_left_panel_left" onPress="1" onRelease="1" keyboard="left" xboxpad="xi_dpad_left" joystick=""/>
<action name="v_hud_left_panel_right" onPress="1" onRelease="1" keyboard="right" xboxpad="xi_dpad_right" joystick=""/>
<!-- Comm system controls -->
<action name="v_comm_open_chat" onPress="1" onRelease="1" keyboard="backslash" xboxpad="" joystick=""/>
@ -679,32 +716,50 @@
<action name="v_comm_select_precanned_3" onPress="1" onRelease="1" keyboard="" xboxpad="" joystick=""/>
<action name="v_comm_select_precanned_4" onPress="1" onRelease="1" keyboard="" xboxpad="" joystick=""/>
<action name="v_comm_select_precanned_5" onPress="1" onRelease="1" keyboard="" xboxpad="" joystick=""/>
<!-- Comm system controls -->
<!--
<action name="v_preset_load_current_1" onPress="1" onRelease="0" keyboard="1" xboxpad="" joystick=""/>
<action name="v_preset_load_current_2" onPress="1" onRelease="0" keyboard="2" xboxpad="" joystick=""/>
<action name="v_preset_load_current_3" onPress="1" onRelease="0" keyboard="3" xboxpad="" joystick=""/>
<action name="v_preset_load_current_4" onPress="1" onRelease="0" keyboard="4" xboxpad="" joystick=""/>
<action name="v_preset_load_current_5" onPress="1" onRelease="0" keyboard="5" xboxpad="" joystick=""/>
<action name="v_preset_load_global_1" onPress="1" onRelease="0" keyboard="lctrl+1" xboxpad="" joystick=""/>
<action name="v_preset_load_global_2" onPress="1" onRelease="0" keyboard="lctrl+2" xboxpad="" joystick=""/>
<action name="v_preset_load_global_3" onPress="1" onRelease="0" keyboard="lctrl+3" xboxpad="" joystick=""/>
<action name="v_preset_load_global_4" onPress="1" onRelease="0" keyboard="lctrl+4" xboxpad="" joystick=""/>
<action name="v_preset_load_global_5" onPress="1" onRelease="0" keyboard="lctrl+5" xboxpad="" joystick=""/>
<action name="v_preset_save_current_1" onPress="1" onRelease="0" keyboard="lshift+1" xboxpad="" joystick=""/>
<action name="v_preset_save_current_2" onPress="1" onRelease="0" keyboard="lshift+2" xboxpad="" joystick=""/>
<action name="v_preset_save_current_3" onPress="1" onRelease="0" keyboard="lshift+3" xboxpad="" joystick=""/>
<action name="v_preset_save_current_4" onPress="1" onRelease="0" keyboard="lshift+4" xboxpad="" joystick=""/>
<action name="v_preset_save_current_5" onPress="1" onRelease="0" keyboard="lshift+5" xboxpad="" joystick=""/>
<action name="v_preset_save_global_1" onPress="1" onRelease="0" keyboard="lshift+lctrl+1" xboxpad="" joystick=""/>
<action name="v_preset_save_global_2" onPress="1" onRelease="0" keyboard="lshift+lctrl+2" xboxpad="" joystick=""/>
<action name="v_preset_save_global_3" onPress="1" onRelease="0" keyboard="lshift+lctrl+3" xboxpad="" joystick=""/>
<action name="v_preset_save_global_4" onPress="1" onRelease="0" keyboard="lshift+lctrl+4" xboxpad="" joystick=""/>
<action name="v_preset_save_global_5" onPress="1" onRelease="0" keyboard="lshift+lctrl+5" xboxpad="" joystick=""/>
<action name="v_preset_clear_current_1" onPress="1" onRelease="0" keyboard="lalt+1" xboxpad="" joystick=""/>
<action name="v_preset_clear_current_2" onPress="1" onRelease="0" keyboard="lalt+2" xboxpad="" joystick=""/>
<action name="v_preset_clear_current_3" onPress="1" onRelease="0" keyboard="lalt+3" xboxpad="" joystick=""/>
<action name="v_preset_clear_current_4" onPress="1" onRelease="0" keyboard="lalt+4" xboxpad="" joystick=""/>
<action name="v_preset_clear_current_5" onPress="1" onRelease="0" keyboard="lalt+5" xboxpad="" joystick=""/>
<action name="v_preset_clear_global_1" onPress="1" onRelease="0" keyboard="lalt+lctrl+1" xboxpad="" joystick=""/>
<action name="v_preset_clear_global_2" onPress="1" onRelease="0" keyboard="lalt+lctrl+2" xboxpad="" joystick=""/>
<action name="v_preset_clear_global_3" onPress="1" onRelease="0" keyboard="lalt+lctrl+3" xboxpad="" joystick=""/>
<action name="v_preset_clear_global_4" onPress="1" onRelease="0" keyboard="lalt+lctrl+4" xboxpad="" joystick=""/>
<action name="v_preset_clear_global_5" onPress="1" onRelease="0" keyboard="lalt+lctrl+5" xboxpad="" joystick=""/>
-->
</actionmap>
<actionmap name="zero_gravity_general" version="1">
<!-- general zero-gravity keys, applies to thruster and non-thruster movement -->
<action name="z_brake" onPress="1" onRelease="1" keyboard="lctrl+b" xboxpad="xi_triggerl_btn+xi_x" ps3pad="pad_l2+pad_square" joystick=""/>
<action name="z_override_joystick" onPress="1" onRelease="1" retriggerable="1" xboxpad="xi_triggerl_btn" ps3pad="pad_l2"/>
<action name="z_roll" xboxpad="xi_triggerl_btn+xi_thumblx" ps3pad="pad_l2+pad_sticklx" joystick="js1_x"/>
</actionmap>
<actionmap name="gforce_tuning_mode" version="2">
<action name="v_gforce_save" onPress="1" xboxpad="xi_start"/>
<action name="v_gforce_lock" onPress="1" onRelease="1" xboxpad="xi_thumbr"/>
<action name="v_gforce_movey" xboxpad="xi_thumbly"/>
<action name="v_gforce_movex" xboxpad="xi_thumblx"/>
<action name="v_gforce_toggle" onPress="1" onRelease="1" onHold="" xboxpad="xi_a"/>
<action name="v_gforce_mag_down" onPress="1" onHold="1" xboxpad="xi_shoulderl"/>
<action name="v_gforce_mag_up" onPress="1" onHold="1" xboxpad="xi_shoulderr"/>
<action name="v_gforce_body_toggle" onPress="1" onRelease="1" onHold="" xboxpad="xi_b"/>
<action name="v_gforce_head_toggle" onPress="1" onRelease="1" onHold="" xboxpad="xi_x"/>
<action name="v_gforce_toggle_menu" onPress="1" onRelease="1" onHold="" xboxpad="xi_y"/>
<action name="v_gforce_menu_down" onPress="1" xboxpad="xi_dpad_down"/>
<action name="v_gforce_menu_up" onPress="1" xboxpad="xi_dpad_up"/>
<action name="v_gforce_param_inc" onPress="1" onHold ="1" xboxpad="xi_dpad_left"/>
<action name="v_gforce_param_dec" onPress="1" onHold ="1" xboxpad="xi_dpad_right"/>
</actionmap>
<actionmap name="IFCS_controls" version="2">
<action name="v_IFCS_A" onPress="1" onRelease="1" onHold="" xboxpad="xi_a" keyboard="rctrl+a"/>
<action name="v_IFCS_B" onPress="1" onRelease="1" onHold="" xboxpad="xi_b" keyboard="rctrl+b"/>
@ -712,18 +767,4 @@
<action name="v_IFCS_Y" onPress="1" onRelease="1" onHold="" xboxpad="xi_y" keyboard="rctrl+y"/>
</actionmap>
<actionmap name="vehicle_gforce_tuning" version="2">
<!-- vehicle keys for gforce tuning mode -->
<action name="v_boost" onPress="1" onRelease="1" keyboard="lshift" xboxpad="xi_thumbr" ps3pad="pad_l1"/>
<action name="v_view_option" onPress="1" onRelease="1" keyboard="k" xboxpad="xi_thumbl" ps3pad="pad_l3"/>
<action name="v_view_yaw_mouse" keyboard="maxis_x"/>
<action name="v_view_pitch_mouse" keyboard="maxis_y"/>
<action name="v_view_yaw" xboxpad="xi_thumbrx" ps3pad="pad_stickrx"/>
<action name="v_view_pitch" xboxpad="xi_thumbry" ps3pad="pad_stickry"/>
<action name="v_enable_mouse_input" onPress="1" onRelease="0" retriggerable="0" keyboard="tab"/>
<action name="v_disable_mouse_input" onPress="0" onRelease="1" retriggerable="0" keyboard="tab"/>
<action name="v_target_cycle_all_fwd" onPress="0" onRelease="1" retriggerable="0" keyboard="lshift"/>
<action name="v_target_toggle_lock_selected" onPress="1" onHold="1" onRelease="1" retriggerable="0" keyboard="capslock"/>
</actionmap>
</profile>

@ -1,5 +1,5 @@
SC Joystick Mapper V 2.3
(c) Cassini, StandardToaster - 31-August-2014
SC Joystick Mapper V 2.4
(c) Cassini, StandardToaster - 14-September-2014
Contains 9 files:
@ -11,7 +11,7 @@ Ionic.Zip.Reduced.dll Managed Zip Assembly - MUST be in th
log4net.dll Managed Logging Assembly - MUST be in the same folder as the Exe file
log4net.config.OFF Config file for logging - To use it - rename as log4net.config and run the program
then look for trace.log in the same folder
SCJMapper_QGuide V2.3.pdf Quick Guide
SCJMapper_QGuide V2.4.pdf Quick Guide
ReadMe.txt This file
Read the Guide first RTFM ;-)
@ -24,6 +24,10 @@ Scanned for viruses before packing...
cassini@burri-web.org
Changelog:
V 2.4
- improvement - add new actionmaps for AC 0.9 (flycam, spaceship_turret)
- improvement - supports now assignment of js1 .. js8 - SC may not support all though...
- Update of the Guide for V2.4
V 2.3
- new feature - allow reassignment of the jsN group
- improvement - uniquely identified devices with the same name (use GUID)
@ -31,17 +35,19 @@ V 2.3
- improvement - detection of the SC install path extended to one more Registry entry
- fix - blend unmapped works properly now
- fix - manual entry of SC directory works now
- Update of the Guide for V2.3
V 2.2
- new feature - option to ignore actionmaps in Settings
- improvement - add actionmaps for multiplayer, singleplayer, player
- improvement - GUI layout of Joystick tabs for more than 4 devices
- Update of the Guide for V2.2
V 2.1
- program is maintained at "https://github.com/SCToolsfactory/SCJMapper-V2/releases"
- new feature - option to blend unmapped actions
- improvement - ignore buttons in Settings
- improvement - override the built in detection of the SC folder in Settings
- added - trace log for resolving crash and other issues
- Update of the Guide for V2.0
- Update of the Guide for V2.1
V 2.0
- program is maintained at "https://github.com/bm98/SCJMapper-V2/releases"
- new feature - get defaultProfile.xml from game assets

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save