V 2.43 - BETA Build 78

- added About / Splash Screen while loading Game resources
- update checkbox "Forced write" for Invert items in Options (writes the invert tag in any case to disable CIG invert defaults) #90
pull/104/head v2.43beta
bm98 4 years ago
parent 1af32c701c
commit 384f2c9986

192
AboutBox1.Designer.cs generated

@ -0,0 +1,192 @@
namespace SCJMapper_V2
{
partial class AboutBox
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if ( disposing && ( components != null ) ) {
components.Dispose( );
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox));
this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
this.logoPictureBox = new System.Windows.Forms.PictureBox();
this.labelProductName = new System.Windows.Forms.Label();
this.labelVersion = new System.Windows.Forms.Label();
this.labelCopyright = new System.Windows.Forms.Label();
this.labelCompanyName = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.tableLayoutPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel
//
this.tableLayoutPanel.ColumnCount = 2;
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
this.tableLayoutPanel.Controls.Add(this.label1, 1, 4);
this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel.Location = new System.Drawing.Point(9, 9);
this.tableLayoutPanel.Name = "tableLayoutPanel";
this.tableLayoutPanel.RowCount = 6;
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.Size = new System.Drawing.Size(754, 265);
this.tableLayoutPanel.TabIndex = 0;
this.tableLayoutPanel.UseWaitCursor = true;
//
// logoPictureBox
//
this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.logoPictureBox.Image = global::SCJMapper_V2.Properties.Resources.Cassini_Logo2_s;
this.logoPictureBox.Location = new System.Drawing.Point(3, 3);
this.logoPictureBox.Name = "logoPictureBox";
this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
this.logoPictureBox.Size = new System.Drawing.Size(371, 259);
this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.logoPictureBox.TabIndex = 12;
this.logoPictureBox.TabStop = false;
this.logoPictureBox.UseWaitCursor = true;
//
// labelProductName
//
this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelProductName.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelProductName.Location = new System.Drawing.Point(383, 0);
this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
this.labelProductName.MaximumSize = new System.Drawing.Size(0, 17);
this.labelProductName.Name = "labelProductName";
this.labelProductName.Size = new System.Drawing.Size(368, 17);
this.labelProductName.TabIndex = 19;
this.labelProductName.Text = "Product Name";
this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.labelProductName.UseWaitCursor = true;
//
// labelVersion
//
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelVersion.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelVersion.Location = new System.Drawing.Point(383, 26);
this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
this.labelVersion.MaximumSize = new System.Drawing.Size(0, 17);
this.labelVersion.Name = "labelVersion";
this.labelVersion.Size = new System.Drawing.Size(368, 17);
this.labelVersion.TabIndex = 0;
this.labelVersion.Text = "Version";
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.labelVersion.UseWaitCursor = true;
//
// labelCopyright
//
this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelCopyright.Location = new System.Drawing.Point(383, 52);
this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 17);
this.labelCopyright.Name = "labelCopyright";
this.labelCopyright.Size = new System.Drawing.Size(368, 17);
this.labelCopyright.TabIndex = 21;
this.labelCopyright.Text = "Copyright";
this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.labelCopyright.UseWaitCursor = true;
//
// labelCompanyName
//
this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelCompanyName.Location = new System.Drawing.Point(383, 78);
this.labelCompanyName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 17);
this.labelCompanyName.Name = "labelCompanyName";
this.labelCompanyName.Size = new System.Drawing.Size(368, 17);
this.labelCompanyName.TabIndex = 22;
this.labelCompanyName.Text = "Company Name";
this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.labelCompanyName.UseWaitCursor = true;
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(380, 104);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(371, 132);
this.label1.TabIndex = 23;
this.label1.Text = "Loading Game Resources ...";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// timer1
//
this.timer1.Enabled = true;
//
// AboutBox
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(772, 283);
this.ControlBox = false;
this.Controls.Add(this.tableLayoutPanel);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "AboutBox";
this.Padding = new System.Windows.Forms.Padding(9);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "About ...";
this.TopMost = true;
this.UseWaitCursor = true;
this.tableLayoutPanel.ResumeLayout(false);
this.tableLayoutPanel.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
private System.Windows.Forms.PictureBox logoPictureBox;
private System.Windows.Forms.Label labelProductName;
private System.Windows.Forms.Label labelVersion;
private System.Windows.Forms.Label labelCopyright;
private System.Windows.Forms.Label labelCompanyName;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Timer timer1;
}
}

@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SCJMapper_V2
{
partial class AboutBox : Form
{
public AboutBox()
{
InitializeComponent( );
this.Text = String.Format( "About {0}", AssemblyTitle );
this.labelProductName.Text = AssemblyProduct;
this.labelVersion.Text = String.Format( "Version {0}", AssemblyVersion );
this.labelCopyright.Text = AssemblyCopyright;
this.labelCompanyName.Text = AssemblyCompany;
}
#region Assembly Attribute Accessors
public string AssemblyTitle
{
get {
object[] attributes = Assembly.GetExecutingAssembly( ).GetCustomAttributes( typeof( AssemblyTitleAttribute ), false );
if ( attributes.Length > 0 ) {
AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
if ( titleAttribute.Title != "" ) {
return titleAttribute.Title;
}
}
return System.IO.Path.GetFileNameWithoutExtension( Assembly.GetExecutingAssembly( ).CodeBase );
}
}
public string AssemblyVersion
{
get {
return Assembly.GetExecutingAssembly( ).GetName( ).Version.ToString( );
}
}
public string AssemblyDescription
{
get {
object[] attributes = Assembly.GetExecutingAssembly( ).GetCustomAttributes( typeof( AssemblyDescriptionAttribute ), false );
if ( attributes.Length == 0 ) {
return "";
}
return ( (AssemblyDescriptionAttribute)attributes[0] ).Description;
}
}
public string AssemblyProduct
{
get {
object[] attributes = Assembly.GetExecutingAssembly( ).GetCustomAttributes( typeof( AssemblyProductAttribute ), false );
if ( attributes.Length == 0 ) {
return "";
}
return ( (AssemblyProductAttribute)attributes[0] ).Product;
}
}
public string AssemblyCopyright
{
get {
object[] attributes = Assembly.GetExecutingAssembly( ).GetCustomAttributes( typeof( AssemblyCopyrightAttribute ), false );
if ( attributes.Length == 0 ) {
return "";
}
return ( (AssemblyCopyrightAttribute)attributes[0] ).Copyright;
}
}
public string AssemblyCompany
{
get {
object[] attributes = Assembly.GetExecutingAssembly( ).GetCustomAttributes( typeof( AssemblyCompanyAttribute ), false );
if ( attributes.Length == 0 ) {
return "";
}
return ( (AssemblyCompanyAttribute)attributes[0] ).Company;
}
}
#endregion
}
}

@ -0,0 +1,411 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAD4AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANvc
3yTb2+Ak29viJNvb4iTb2+Mk29rlJNvb5iTb3OYk29zmJNvd5yTb3uck293nJNvd5yTb3egk29vgJNvb
3STb2+Ak29vhJNvb4STb2+Ak29vhJNvb4CTb298k29vgJNvb3yTb294k29vfJNvb3STb290k29veJNvb
3STb298k29vhJNvb5CTb2+Yk29vmJNvb5CTb2+Ik29viJNvb4STb294k29vbJNvb2yTb29sk29vbJNvb
2yTb29sk29vbJNvb3STb294k29vcJNvb3iTb294k29vfJNvb3yTb298k29vfJNvb3STb29sk29vbJNvb
2yTb29sk29vbJNvb3CQHCDn6BQU/+gUFRvoFBE36BQlW+gUTYfoFHGj6BR1q+gUjbvoFKnX6BSp0+gUp
cvoFKXP6BSh0+gUWVPoFBDD6BQU7+gUFQfoFBUn6BQVE+gUFR/oFBUP6BQU7+gUFP/oFBTz6BQU4+gUF
NvoFBS36BQUv+gUFM/oFBTb6BQVB+gUFUvoFBWL6BQdx+gUGcfoFBVv6BQVO+gUFTPoFBUb6BQU1+gUF
KPoFBRr6BQUQ+gUFDvoFBQj6BQUG+gUFDfoFBSH6BQUw+gUFK/oFBTP6BQU4+gUFOfoFBT36BQU++gUF
NvoFBSX6BQUR+gUFCPoFBQX6BQUF+gUFBfoFBQb6AABE/wAASv8AAFH/AApZ/wAWZv8AI2//ACh2/wAn
dv8AL33/ADWD/wA1gv8AMX7/ADN//wAwfP8AKHT/AANI/wAAP/8AAEf/AABR/wAATf8AAEr/AABM/wAA
T/8AAE3/AABD/wAAQf8AAD7/AAA9/wAAOv8AADz/AABC/wAAUP8AAGX/AAB2/wAOhP8ACYD/AABj/wAA
Vv8AAFH/AABM/wAAQv8AADP/AAAg/wAAD/8AAAb/AAAH/wAADP8AABP/AAAj/wAALP8AADH/AAA4/wAA
P/8AAEL/AABE/wAAP/8AAB//AAAF/wAABP8AAAD/AAAA/wAAAP8AAAD/AAAA/wIDU/8AA1b/ABRh/wAk
bv8AMHj/ADR9/wA1gf8ANYH/ADiF/wA/if8AQor/AD2G/wA+h/8AOoT/ADaA/wAcZv8AAEz/AABU/wAA
Vv8AAFP/AABS/wAAVP8AAF3/AABZ/wAAT/8AAEr/AABK/wAAUP8AAEz/AABL/wAAVP8AAGX/AAB0/wAO
g/8AIJL/ABiL/wADcf8AAF7/AABV/wAATv8AAEj/AAA5/wAAI/8AABH/AAAH/wAADP8AABX/AAAk/wAA
Lv8AADb/AAA4/wAAOf8AADf/AAA5/wAAN/8AAC3/AAAM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
Af8CC13/AA5f/wAhbP8ALXn/ADWA/wA5hP8AOob/AD6K/wBCjP8ASI//AEqS/wBFjf8AQIn/ADqD/wA3
gP8AMXv/AAZX/wAAVv8AAFP/AABS/wAAVP8AAFf/AABc/wAAW/8AAFj/AABX/wAAW/8AAGL/AABd/wAA
X/8AAmn/AAZ5/wAMgv8AHI7/AC2e/wAnl/8ACnv/AABl/wAAW/8AAFH/AABK/wAAPf8AACn/AAAd/wAA
Ev8AABH/AAAY/wAAKv8AADf/AAA8/wAAOP8AAC7/AAAe/wAAFv8AABD/AAAI/wAAAv8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAH/Ahln/wAYaP8AHmz/AC55/wA2gv8AOIX/ADqG/wBBi/8AR5D/AEuS/wBM
lP8ASpP/AEKL/wA6hP8AN4L/ADeB/wAaY/8AAEz/AABW/wAAUf8AAFT/AABa/wAAXf8AAFz/AABe/wAG
bf8ABG7/AAZv/wAGbv8AB3P/ABaB/wAaiv8AH5L/AC2e/wBArf8AOan/AByM/wAHc/8AAWr/AABg/wAA
Wf8AAFb/AABG/wAAL/8AACP/AAAn/wAAM/8AADX/AAA5/wAAOP8AADr/AAA2/wAAH/8AAA//AAAC/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAB/wIYZ/8AFmn/ABlo/wAjb/8AMHv/ADSB/wA8
hv8ARI3/AEqT/wBNlf8ATZb/AEyT/wBEi/8APYb/ADuE/wA+hv8AM33/AAJJ/wAATv8AAFP/AABU/wAA
XP8AAF3/AABj/wAAZ/8ADHX/AA95/wATfP8AGIH/ABuE/wAmlP8ALJz/ADGi/wBArv8AVL3/AFC5/wAy
n/8AHIb/ABV//wAQev8AA2//AABn/wAAXv8AAEv/AABE/wAARf8AAEj/AAA//wAAPf8AADz/AABD/wAA
Pv8AACf/AAAW/wAACv8AAAf/AAAQ/wAADP8AAAP/AAAA/wAAAP8AAAD/AAAA/wAAAf8CHGv/AB1r/wAh
bf8AJ3D/ADF4/wAzfP8AOYD/AEKJ/wBJkv8AS5P/AE2U/wBNk/8ASY//AESM/wBGjP8ASI7/AESM/wAT
W/8AAEj/AABS/wAAXf8AAGH/AABn/wAAb/8AAnL/AAt8/wAQfv8AIYn/ACyV/wA1m/8AO6T/AESt/wBM
tf8AWL//AG3K/wBuyP8AULT/ADyd/wA3lv8ALpP/AByH/wAPe/8ACnX/AAlt/wAIZ/8ABGH/AAJb/wAB
WP8AAFb/AABQ/wAARf8AADb/AAAn/wAAH/8AABf/AAAV/wAAG/8AAAv/AAAB/wAAAP8AAAD/AAAA/wAA
AP8AAAH/Ai13/wAod/8AKXf/AC54/wA1fP8AO4H/ADuC/wBFif8AUJX/AFWX/wBZmf8AXJr/AFyY/wBZ
mP8AV5j/AFWY/wBRlv8AMHz/AABS/wAAXv8AAGf/AABt/wAAc/8ABXj/AA5+/wAUhf8AGoj/AC2V/wA7
of8ARKj/AFK0/wBjwf8Ab8v/AHnT/wCR3P8Ak9z/AHrN/wBmuv8AWrH/AE2p/wBAov8AO5v/ADiX/wA1
k/8ALYr/ACSA/wAVeP8ABnD/AAFi/wAAU/8AAEX/AAAw/wAAKv8AACf/AAAi/wAAGv8AABX/AAAE/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAB/wITQf8AEUD/ABRH/wAUTv8AGlX/ACJh/wAnav8AOHj/AFCK/wVj
mf8QcKL/EnWn/wxzpv8Gbab/AGSi/wBhoP8AXqD/AFWZ/wARc/8ACXT/ABF7/wATgP8AFYH/AB2K/wAg
jv8AI5H/ACeU/wA2nv8AQqb/AFWw/wBuxv8AUrv/ADKs/wBDs/8AcM//BJLb/wCD0/8AaMH/AHXF/wBw
wf8Abb3/AGu7/wBkuP8AWbD/AEql/wA2lf8AIYH/AA1z/wABZf8AAFL/AABE/wAAM/8AACz/AAAm/wAA
Jf8AACf/AAAv/wAAHf8AAAj/AAAA/wAAAP8AAAD/AAAA/wAAAf8BABP/AAAP/wAAF/8AACL/AAAt/wAA
PP8ADE//AClm/wBEfP8BWIz/BGOW/wRlmv8CWpf/AU2R/wBHk/8APY//AEaV/wBUnf8AUJz/AFWh/wBi
q/8AZq//AF6s/wBarP8AWK3/AFCq/wBQq/8AUq//AF60/wBww/8AQ63/ABaM/wEnmf8AP6r/Ale8/xOG
0v8KbsH/B2q1/wKZ0/8AoNr/AJrY/wCO0/8AgMr/AGq//wBSrv8APZz/ACqK/wAXeP8ABWf/AABZ/wAA
Tf8AAD7/AAA1/wAALf8AACn/AAAf/wAAG/8AABD/AAAE/wAAAP8AAAD/AAAA/wAAAP8AAAH/AQIH/wAA
B/8AAAz/AAAT/wAAHv8AATf/ABJR/wAmYf8AN3L/ADt4/wA1d/8AMHf/ADF6/wAtef8AMoD/ADaG/wBB
k/8ATJv/AF6n/wBys/8CicP/CpfO/w2Z0P8Jlc7/BZHN/wKNzf8Aicv/AIvM/wCOz/8AUKf/ADWS/wBi
tP8Hh87/AIjU/zW75/+Q7vv/auH3/1bZ9f9Kz/D/Ncft/xm36P8Fotz/AIrR/wB1xf8AXrb/AEyn/wA7
mf8AJ4j/ABZ3/wADa/8AAF3/AABQ/wAAQP8AAC//AAAj/wAAFP8AAA7/AAAF/wAADP8AABj/AAAK/wAA
AP8AAAD/AAAB/wICHP8AABz/AAAp/wABM/8ACj7/ABhS/wAgWv8AJGH/ACZn/wAhZP8AIWP/ACtt/wA7
ff8AQ4X/AFCP/wBbmv8AWZz/AFuf/wBco/8AVKL/AGWu/wN5u/8Ih8T/CpTL/w+e0/8Podb/CaDW/w+l
2/8Bcrv/AFWh/wBwt/8Ag8j/AJrZ/wKx5/9S2fT/5v7//8D1/v+g7Pv/geT5/2DX8/87xez/GLLj/wKg
2v8AjdL/AHzE/wBsuf8AW67/AEqf/wA5kv8AJYP/ABZz/wASbv8AClz/AAVG/wACOf8AASX/AAAQ/wAA
F/8AACT/AAAe/wAABf8AAAD/AAAA/wAAAf8BAiP/AAAo/wAAOv8AC0n/ABxZ/wAqZP8ALmf/ACNj/wAd
Yf8AJmX/ADFt/wA/ev8ATIj/AE2O/wBRkv8AYJ7/AnGr/wd7s/8MgLn/D4O9/wyFv/8Dg7//BonD/xmZ
zv8jpNb/KKnZ/yWs2/8Fi8v/BHm6/wuUy/8Qo9f/Hq3e/xm45/820/T/w/T8///////p/v7/sO/8/37g
9v9X0PD/Nb/o/xuv4f8En9j/AI/O/wB7wv8Aa7j/AF+w/wBVpv8ASZv/ADuR/wAxiP8AJnz/ABtx/wAQ
Zf8AB1f/AARN/wAAP/8AAkn/AAFC/wAALP8AABP/AAAC/wAAAf8AAAP/AQIZ/wAAKv8ABEL/ABtX/wAo
Y/8ALmf/AChh/wAeWv8AE1P/ABFV/wATWv8AFWH/ABpn/wAca/8AIXH/ADCA/wBNl/8BaKr/Bn65/xaR
xf8hmsz/HJvO/xyczv81rNj/R7je/1fB4/8tr9v/IaLQ/0G43f9BwOX/YdHu/4zo+f9x5fj/uvX9////
////////9v///7vy/P+C4Pb/Vc3u/zK85f8Tqdz/BZTS/wGGxv8AdL7/AGW0/wBdrv8ATqL/AESY/wA+
j/8ANoj/AC5+/wAldP8AGmn/AAxd/wAEVP8AAVL/AABM/wAAQP8AADP/AAAi/wAADP8AAAb/AgIM/wEB
Cv8AAB3/AAQ9/wAMS/8AFlL/ABlT/wASTP8ADkb/AA9J/wAOTf8ABkf/AAA7/wAARP8ABlj/ABhs/wAp
e/8APov/AFCb/wBfp/8AcbL/BoO9/xaSx/8uodD/SrHa/2PA4v9Etd7/PK/X/1m93/9vyuf/Ycjo/4XZ
8f9g1PH/feD2//b9/////////////+7+///B9P3/kOX5/2nW8v9Ox+v/Lrbk/xOm3P8Jntb/AI3N/wB6
v/8AbLX/AFWk/wBHmP8AOo7/ACyC/wAgdf8AFmr/AA5g/wAJVv8AA0j/AANK/wABRP8AADn/AAAx/wAA
K/8AACP/AAAZ/wICGf8BAB//AAA1/wAUU/8AHlv/AB9c/wAYVv8ABUX/AAE+/wABPv8AADb/AAAo/wAD
MP8ABUv/AApf/wAOZv8AEGj/ABxz/wAuhP8AQpL/AFSd/wBqq/8Lgrn/NJvJ/0+s1f8+p9P/QqfQ/3TC
4P+Ayub/gc7p/3/M5/990u3/XMrr/7zs+P/9////+v////T////Y+f7/sO/8/4ji9/9m1PL/SMXr/yay
4v8IoNf/ApXS/wCIy/8AfML/AG+5/wBeqP8AVJ7/AEuW/wBAif8ANHz/ACZv/wAbZf8AFlr/AAtH/wAH
O/8AAy//AAEn/wAAHv8AACD/AAAp/wAAMP8CAzX/Aixn/wAybP8AQHf/AEl//wBIgf8AN3P/ACFe/wAb
WP8AE1X/AAxP/wANUf8AEFz/AA5g/wAKX/8AC2H/ABxw/wAyhf8APo//AEqW/wBgov8OerL/LJDA/zCT
xv8pksP/UabP/3/B3/+Ozef/gszn/3TF4/+Z1uz/e87r/5TZ8P/p/P7/8v///+/////c+v7/wvP9/6Ho
+P932fP/Scbr/y+45f8Uq93/AJrU/wCJyv8AecD/AGu0/wBZpv8ATJj/AEWQ/wBAjP8AOIP/ADF5/wAs
cP8AKG3/ACRn/wAaYP8ADU//AAM//wABOP8AAjP/AAU7/wAIPf8AAi7/AQMe/wJYkP8AX5T/AGaX/wBr
nf8Ab6H/AGue/wBjlv8DZ5f/C2uc/wFPjP8ANnn/ACZv/wAfa/8AIW//ACNw/wAsdP8AO4D/AEaJ/wBa
mP8Jcaj/JYW3/zeWxP85k8L/Z6/P/4DB3/9qutz/OaHO/yyZyf+Ax+L/i9Tr/1jA5P9JvOT/WsHn/6fh
8v+m4PT/xvP8/7rw/f+T4fX/Zs3u/ze35P8TpNn/AJXQ/wCMzP8Ahcb/AH3B/wBos/8AVaL/AEaT/wA3
hP8ALnn/ACVv/wAgZv8AHGD/ACNm/wAhZv8AF1z/AApJ/wAEPv8AAz3/AANC/wACQ/8AA0D/AAI+/wIE
Nv8CVov/AFuP/wBhlv8AYZj/AGGY/wBil/8FaJr/HHqp/xlonP8CSon/AEqI/wBSj/8AWJP/AFuV/wBa
k/8AVo7/AFqR/wBHgf8AMGv/AlOI/x56qf9Mm8L/dLPT/4TC3f9Op87/EHiy/wBZnv8AXaD/F4i//xuM
xf8QgsL/AHG7/wBgt/8Aa7z/AG/B/ziZ0v+b3PL/jN/2/1HB5/8jqtz/CprS/wCBxP8Ab7n/AGaw/wBm
r/8AXav/AFWi/wBKl/8AOIX/ACly/wAeZv8AFFv/AA1S/wAPU/8ADVL/AAVH/wACQP8AATz/AAI6/wAC
Of8AADT/AAAw/wAAMv8CAzP/AluP/wBjkv8AbJr/AGyd/wBnmv8BYJT/GmmW/y5/p/8ocpr/JWiS/x5g
jv8XXYv/EF2L/wdcjP8GXoz/CGqV/wBEcv8ADDf/AClc/xpsmP9DkLb/cK/O/3O31P8/nMf/BVub/wAv
eP8AR4z/Bmqp/wBNmf8ARJP/ADuR/wAtif8AN5b/AE+o/wBetP8AW7L/E2qz/1as1f9Vv+T/KKjY/wiT
zf8Aer7/AFyp/wBHlf8AQI7/ADyM/wA+i/8APIf/ADV//wArdP8AHmb/ABFY/wAITP8ABkf/AApK/wAL
Sv8ACEX/AAI//wABNv8AAC7/AAAr/wAAKf8AACv/AgMu/wJck/8AZ5j/AHGd/wByn/8Abp//AGea/w5h
lf8cZpX/JWqS/zZ6mv9Ii6P/V5mp/2Kjr/9hoq3/hbK3/2+arf8AABD/ABRA/wFBb/8wf6H/Wp29/1yl
xv8lgrL/AEOC/wAVXP8AIGb/AC52/wpgov8BLn7/ABZp/wAIYf8AGnb/ADGF/wBYp/8AZrL/AGCy/wBF
mf8AQ5D/Qp/L/ziw2v8OlMv/AHy7/wBhp/8ASpP/ADOA/wAjcv8AGmb/ABpj/wAeZv8AHmP/ABpc/wAT
Vv8AC07/AAhL/wALTv8ACEj/AAlF/wAGQ/8ABD3/AAAw/wAAKP8AACL/AAAi/wIDKf8CWJL/AGeb/wBv
nv8AdKP/AXGi/w5qnP8acKD/G26f/xZfkv8PToP/DEp+/wxNf/8XXoj/PICa/4a1v/87U2P/AAAJ/wAZ
Rf8HUHj/MXqf/y2Bp/8HWo3/ACNh/wABPP8AAz3/ABVW/wAsdv8AE1D/AAlB/wAAN/8AAEb/AAZg/wAa
cP8APY//Alun/wFVpv8AMYX/BDB6/0ijy/83rNj/Do7G/wB1tP8AZKf/AFGZ/wA9if8AJHP/ABJe/wAG
Uf8AAkX/AAZH/wALSf8ACkf/AAtL/wAPVf8AD1X/AAVJ/wAGR/8AB0X/AAI9/wAANv8AACv/AAAg/wAA
HP8CAx//AVeQ/whpm/8ui7T/M4+4/yB9qv8aapz/GWeY/xhqmf8XZpX/FVuN/xZakf8SVI3/CU2G/wpU
iv8LVIf/AAQN/wAAB/8AHEX/DFt//xRpkP8BQXX/ABFE/wAAGf8AABv/AAAO/wAJL/8ACUD/AAAV/wAA
Cv8AABb/AAAo/wAAPP8ABFH/ABJt/wAjfv8ANoz/AAth/wIITf9JnMP/RbLd/yKbzf8LicL/A3u4/wBt
r/8AX6j/AEiW/wA9if8AI3D/ABJY/wAJTP8AB0f/AAZH/wAFR/8ACk//AApS/wAFTf8ABEn/AAJE/wAC
Q/8AADz/AAAu/wAAIv8AABv/AgMd/wVTj/8cbJz/VqLG/ziNuP8ieKP/FWWU/xNhk/8VY5L/FF6M/xBQ
gP8QS37/E1OJ/xRTiP8QVIb/BEZ+/wAACf8AAA//AB9L/wFNd/8BSHX/ABxR/wABKf8AAAH/AAAA/wAA
AP8AAAr/AAAC/wAAAP8AAAD/AAAF/wAGMv8AATf/AABF/wABV/8AEmv/ABZw/wAAQv8ZMGX/UbLa/0Kt
2P8wptP/HpzP/wuQyP8AgcD/AG6v/wBgp/8AWqH/AFOb/wBGjf8AMnz/ACl2/wATXP8ACVH/AAtT/wAQ
Wf8AGmD/ABhf/wARWP8ADFH/AABA/wAAOP8AADX/AAAv/wICL/8HUIr/FGCU/zqNtv8ziLb/Kn2m/xxy
nf8TYZD/FV6I/xVhjP8VXYz/EUx//w9Fef8IPnD/AjZg/wAWKv8AAAb/AAEa/wATQf8AGkn/ABM//wAm
U/8AF0f/AAAD/wAAAP8AAAP/AAAC/wAAAP8AAAD/AAAA/wAAB/8AAxb/AAEX/wAALf8AAED/AAJX/wAA
VP8IFFj/O5C8/z6o0/8zo8//HpbI/w2Oxf8Ci8T/AIC+/wBxr/8AaKr/AGut/wBprP8AYKf/AGCm/wBW
nv8AKnX/ABVe/wAUYP8AGWL/ACRp/wAqcv8AHGT/AAtQ/wAGS/8ADlP/AAxQ/wAITf8CC0//AkV+/whG
eP8aaZX/KoCs/yp8pP8oeqD/F2WO/xFSef8SVnz/F2CH/xdii/8OWYX/AS9R/wAFDf8AAAD/AAAA/wAA
Bv8AAA7/Aw8v/wI5Yv8AKVr/AAQr/wAAA/8AAAL/AAEG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAX/AAgz/wMGVv8UMHj/KYKz/x+Nuv8Nfa//BXet/wBzq/8AdK3/AH64/wB0rf8AZKL/AGCi/wBu
rv8AcK//AGus/wBmp/8AX6D/AFab/wBIjv8ARY3/AC12/wAtcv8AIGb/ABJX/wAKSf8ABUP/AAxM/wAJ
S/8ACU3/AhNV/wJKif8AOW3/BUpz/xppk/8gc53/InKZ/xttkv8UWYD/EUx0/xFTd/8LV3v/Ai5F/wAB
A/8AAAD/AAAA/wAAAP8AAAD/BRIg/yttkf8CKVv/AAAg/wAACP8AAAD/AAcO/wAECv8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAK/wADMv8GM3X/LpfC/y2YxP8Sfq7/AHGk/wBsov8AbqX/AG6m/wBp
pP8AZZ//AGGf/wBamv8AVZP/AFSO/wBSjv8AU5T/AE6P/wBMjf8AV5j/AEiJ/wA5ff8AMnP/ACNk/wAY
WP8ADEn/AAQ7/wACNv8ABDL/AAQp/wIFJv8CWJn/ADp2/wA6af8QU3z/F2CL/xVdh/8WYIT/F2SI/xFa
g/8DOVn/AA0X/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAUJ/x5kff9HncD/GkRz/wAAAP8AAAD/AAAA/wIS
IP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8AAAD/AAAC/wAPNf8AIF//KoO0/zqjz/8njLz/DXir/wBr
nv8AZpv/AGmh/wBrpf8AaaP/AGOc/wBdmf8AW5X/AFeQ/wBVjv8AVo//AFiW/wBbm/8AW5r/AFWW/wBQ
jv8AR4L/ADV3/wAlaf8AFlb/AAtA/wAGMP8ABDD/AAIv/wAAKv8CAi3/Aj96/wAuZf8AJ1f/BDhi/w9M
df8RT3j/Dkty/w9UeP8ENU7/AAQI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAB/wcNEf8OLDr/L3mZ/zuI
ov8eUG3/Bhov/wIJEP8CERv/AAML/wAAAP8AAAD/AAAA/wAAAP8AAAX/AQkP/wIcNf8VSHj/NI27/z2g
zP8okcL/FICx/wRuov8AZpn/AGSY/wBnnf8AaqP/AGym/wBnn/8AZJv/AGOa/wBimP8BXpb/AVyW/wBa
lv8AV5P/AFKM/wBOh/8ATIb/AEiD/wA/ff8ANHT/ACtn/wAhXP8AGFj/AAxS/wACSv8AADz/AgMx/wIi
WP8AHE//AB9O/wAmVv8BOmT/Bj1o/wQsV/8AFCX/AAAA/wAAAP8AAAD/AAMJ/wABCP8GAgH/BgoL/wAD
CP8KJS3/ByU3/xYzSf8waoH/LnOW/0aMrv9Nian/OWuI/yJPbv8TLUL/Chgm/wkZIv8hQVb/O3CO/0aL
r/8+irH/P5O9/zWTvv8ki7v/GYK2/whwo/8AXpL/AFWK/wBPhv8AU4r/AFiR/wFYk/8AUo7/AE6I/wBN
h/8ATYn/AE+M/wBUjf8AVpL/AFaS/wBWjP8AVov/AFeM/wBTif8ASIH/ADt0/wApZf8AGFX/AA1E/wAE
NP8AACf/AAAa/wEBEv8CHlX/ABpR/wAeU/8AH1L/AB9I/wAaPv8ABhT/AAAA/wAAAP8DCxP/ABkv/wBE
b/8AQHL/Ay5X/wMLGP8AAAD/AAAA/wALFf8TRWP/JWqM/y54mf82fJ3/OH2c/z2Bof8+g6b/PYWp/zuB
p/87g6f/RpC1/0GMs/8ygqn/J3un/xpyo/8QbaP/CW2k/wVnoP8BU4z/AER7/wBCd/8AQXn/AEaB/wBR
iv8AWI7/AFiP/wBVjf8AU4v/AFOL/wBOiP8ASoX/AEmG/wBCgP8AN3P/AC9q/wAmX/8AHlX/ABNH/wAK
Pv8ABC//AAEY/wAABP8AAAD/AAAA/wAAAP8AAAD/AhlY/wAVT/8AEUL/AAg2/wACFv8AAAP/AAAA/wAA
AP8AAQH/CDha/wA8cf8APWT/ADJN/wAXIf8AAAD/AAMJ/wAZLv8ANlr/Bkxv/wtFaf8HPmb/BkJp/wNB
Z/8ERmz/B091/wxagf8WZYr/G2qP/xhskf8WbJX/D2qW/wdpl/8DZZn/AGGW/wBgmf8AWpf/AEeB/wA5
b/8ANGr/AC9o/wAuav8AL27/ACxq/wAmZP8AIF3/ABlW/wATUP8ADUX/AAhE/wAFRf8AA0X/AAA7/wAA
Mv8AACX/AAAd/wAAGf8AABv/AAAR/wAAAf8AAAD/AAAA/wAAAP8AAAD/AAAB/wIZYf8ACEf/AAEx/wAB
Nv8AACb/AAAM/wAAAP8ACSj/AAs6/wAIGf8AECn/AAYJ/wAAAP8AAAL/AA4k/wAiRP8ALlP/AC1R/wAr
Tf8AHz//ACBA/wAjRf8AJkf/ACtK/wAvUv8BNFn/AjRb/wIxXP8BL1//ASxg/wAqY/8AJWL/AB5b/wAY
W/8AFmX/ABFk/wAHRf8AAi//AAEn/wAALP8AAC//AAAz/wAANP8AADH/AAAu/wAAJ/8AACP/AAAe/wAA
Hv8AACD/AAAe/wAAGP8AABb/AAAU/wAADP8AAAb/AAAC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
Af8CJ3X/AA5c/wAGTP8ADlb/AApS/wAAHv8AAAD/AAYQ/wAJJf8AAAD/AAAA/wAABf8ACSb/ABVD/wAe
SP8AIUb/ACNK/wAkTP8AHT//AAAG/wAAAv8AAAL/AAAC/wAAAf8AAAT/AAAK/wAADv8AABP/AAAb/wAA
If8AACf/AAAl/wAAJ/8AADH/AABG/wAASP8AACv/AAAX/wAAFv8AABz/AAAh/wAAJv8AACj/AAAl/wAA
If8AAB3/AAAa/wAAGv8AABr/AAAX/wAAD/8AAAf/AAAB/wAABP8AAAL/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAH/AiJy/wAZa/8AF2f/ABdo/wAGOP8AAAD/AAED/wADGP8AAAD/AAAH/wAI
Kv8AE0n/ABxT/wAeUP8AHk//ACBN/wAiTf8AI1H/ABYz/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAv8AAAn/AAAN/wAADP8AABH/AAAf/wAANv8AADn/AAAg/wAAE/8AABf/AAAc/wAA
HP8AAB7/AAAf/wAAHv8AABz/AAAa/wAAHf8AAB7/AAAf/wAAIv8AAB7/AAAV/wAAC/8AAAb/AAAB/wAA
Af8AAAX/AAAC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAB/wIcbv8AFmn/ABFf/wATYv8DD0n/ChIe/wAB
AP8AEEH/AAtD/wAVUf8AGlz/ABpX/wAcUv8AH1T/AB9W/wAiV/8AI1X/ACFV/wALIP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAC/wAAEf8AACn/AAAu/wAA
Gf8AAA//AAAW/wAAIP8AAB//AAAa/wAAGv8AAB3/AAAb/wAAHf8AACr/AAAs/wAALP8AAC//AAAk/wAA
Hv8AABj/AAAN/wAAB/8AAAT/AAAE/wAAAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8CEWf/AAlf/wAI
WP8AC1j/AxVc/wgZXP8AACL/AAYl/wAVXv8AG13/ABdY/wAVVP8AF1H/ABtT/wAdVP8AHlT/ABxQ/wAX
Sf8AAgv/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAv/AAAf/wAAI/8AAA//AAAG/wAAD/8AABn/AAAh/wAAGf8AABH/AAAQ/wAAEf8AAB7/AAAt/wAA
Lv8AADH/AAAn/wAAG/8AABT/AAAQ/wAAC/8AAAz/AAAJ/wAAB/8AAAH/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAH/AgRc/wAAU/8AAFD/AABN/wACTf8AAEX/AABC/wADQv8ADlL/ABFS/wAPUP8ADlD/ABFM/wAW
Tv8AF0z/ABZK/wAVSf8ACzH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAF/wAAGP8AABn/AAAD/wAAAP8AAAX/AAAN/wAAGP8AAA3/AAAD/wAA
AP8AAAr/AAAb/wAAFP8AABf/AAAk/wAAGP8AAAz/AAAJ/wAAB/8AAAb/AAAL/wAACP8AAAb/AAAD/wAA
Af8AAAD/AAAA/wAAAP8AAAD/AAAB/wAAQ/8AADv/AAAy/wAALv8AACr/AAAl/wAAKv8AADj/AABA/wAA
QP8AAEH/AABA/wAEQP8ABD//AAM7/wACOv8AAjX/AAAM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAb/AAAG/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAv8AAAD/AAAA/wAACf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
Af8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8fIUnlHR9D5R0fPOUdHznlHR855R0f
PuUdH0blHR9M5R0fVOUdH1XlHR9S5R0fUuUeIVXlHiJU5R4gTuUeH0zlHR495RoaHOUaGhvlGhob5Roa
G+UaGhvlGhob5RoaG+UaGhvlGhob5RoaG+UaGhvlGhsc5RobHOUaGxzlGhsc5RobHOUaGxzlGhse5Rob
IeUaGxzlGhsb5RobHOUaGxvlGhsb5RobG+UaGxzlGhsc5RobG+UaGxvlGhob5R0hJuUbHB7lGhsb5Rob
HOUaGxzlGhsc5RobHOUaGx3lGhsc5RobHeUaGxzlGhsc5RobHOUaGxzlGhob5RoaG+UaGhvl9fb3DPX2
9wz19vcM9fb3DPX29wz19vgM9fb4DPX2+Az19vgM9fb4DPX2+Az19vgM9fb4DPX2+Az19vcM9fb3DPX1
9Qzz8/MM8/PzDPPz8wzz8/MM8/P0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/P0DPPz
9Azz8/QM8/P0DPP09Azz9PQM8/P0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/T0DPPz
9Az19/gM8/T1DPPz9Azz8/QM8/P0DPPz9Azz9PQM8/T0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/P0DPPz
9Azz8/QM8/PzDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////8=
</value>
</data>
</root>

@ -36,6 +36,7 @@ namespace SCJMapper_V2.Devices.Options
private List<string> m_PtsIn = new List<string>( );
private List<string> m_PtsOut = new List<string>( );
private bool m_invertForced = false; // default (forced writing)
private bool m_invertEnabled = false; // default
private DeviceCls m_deviceRef = null; // Ref
@ -80,6 +81,7 @@ namespace SCJMapper_V2.Devices.Options
ret &= ( this.m_PtsIn == clone.m_PtsIn );
ret &= ( this.m_PtsOut == clone.m_PtsOut );
ret &= ( this.m_invertEnabled == clone.m_invertEnabled );
ret &= ( this.m_invertForced == clone.m_invertForced );
ret &= ( this.m_deviceRef == clone.m_deviceRef );
// check m_deviceoptionRef
@ -174,6 +176,15 @@ namespace SCJMapper_V2.Devices.Options
set { m_invertEnabled = value; }
}
/// <summary>
/// Force writing of Inverted
/// </summary>
public bool InvertForced
{
get { return m_invertForced; }
set { m_invertForced = value;}
}
public bool ExponentUsed
{
get { return m_expEnabled; }
@ -299,7 +310,7 @@ namespace SCJMapper_V2.Devices.Options
/// <returns>The XML string or an empty string</returns>
public string Options_toXML()
{
if ( ( /*SensitivityUsed ||*/ ExponentUsed || InvertUsed || NonLinCurveUsed ) == false ) return ""; // not used
if ( ( /*SensitivityUsed ||*/ ExponentUsed || InvertForced || NonLinCurveUsed ) == false ) return ""; // not used
if ( DevInstanceNo < 1 ) return ""; // no device to assign it to..
string tmp = "";
@ -312,7 +323,9 @@ namespace SCJMapper_V2.Devices.Options
tmp += string.Format( "\t\t<{0} ", m_option );
if ( InvertUsed ) {
tmp += string.Format( "invert=\"1\" " );
tmp += string.Format( "invert=\"1\" " ); // if used write it in all the times
} else if ( InvertForced ) {
tmp += string.Format( "invert=\"0\" " ); // disable only if requested
}
/*
if ( SensitivityUsed ) {
@ -374,6 +387,10 @@ namespace SCJMapper_V2.Devices.Options
if ( !string.IsNullOrEmpty(invert) ) {
InvertUsed = false;
if ( invert == "1" ) InvertUsed = true;
if ( invert == "0" ) {
InvertUsed = false;
InvertForced = true;
}
}
string exponent = (string)option.Attribute( "exponent" );

@ -39,6 +39,8 @@
this.rbUseExpo = new System.Windows.Forms.RadioButton();
this.rbUseNone = new System.Windows.Forms.RadioButton();
this.panel2 = new System.Windows.Forms.Panel();
this.lblInverted = new System.Windows.Forms.Label();
this.cbxLiveInvertForced = new System.Windows.Forms.CheckBox();
this.rbLivePtExponent = new System.Windows.Forms.RadioButton();
this.lblLiveOutExponent = new System.Windows.Forms.Label();
this.lblLiveIn1 = new System.Windows.Forms.Label();
@ -134,6 +136,7 @@
// lvOptionTree
//
this.lvOptionTree.Dock = System.Windows.Forms.DockStyle.Fill;
this.lvOptionTree.HideSelection = false;
this.lvOptionTree.Location = new System.Drawing.Point(3, 3);
this.lvOptionTree.Name = "lvOptionTree";
this.lvOptionTree.Size = new System.Drawing.Size(624, 638);
@ -211,6 +214,8 @@
// panel2
//
this.panel2.BackColor = System.Drawing.Color.Gainsboro;
this.panel2.Controls.Add(this.lblInverted);
this.panel2.Controls.Add(this.cbxLiveInvertForced);
this.panel2.Controls.Add(this.rbLivePtExponent);
this.panel2.Controls.Add(this.lblLiveOutExponent);
this.panel2.Controls.Add(this.lblLiveIn1);
@ -227,9 +232,33 @@
this.panel2.Controls.Add(this.label33);
this.panel2.Location = new System.Drawing.Point(103, 345);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(220, 144);
this.panel2.Size = new System.Drawing.Size(220, 162);
this.panel2.TabIndex = 55;
//
// lblInverted
//
this.lblInverted.AutoSize = true;
this.lblInverted.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblInverted.Location = new System.Drawing.Point(6, 123);
this.lblInverted.Name = "lblInverted";
this.lblInverted.Size = new System.Drawing.Size(45, 15);
this.lblInverted.TabIndex = 56;
this.lblInverted.Tag = "§";
this.lblInverted.Text = "Invert:";
//
// cbxLiveInvertForced
//
this.cbxLiveInvertForced.AutoSize = true;
this.cbxLiveInvertForced.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbxLiveInvertForced.Location = new System.Drawing.Point(87, 141);
this.cbxLiveInvertForced.Name = "cbxLiveInvertForced";
this.cbxLiveInvertForced.Size = new System.Drawing.Size(65, 17);
this.cbxLiveInvertForced.TabIndex = 55;
this.cbxLiveInvertForced.Tag = "§";
this.cbxLiveInvertForced.Text = "Forced";
this.cbxLiveInvertForced.UseVisualStyleBackColor = true;
this.cbxLiveInvertForced.CheckedChanged += new System.EventHandler(this.cbxLiveInvertForced_CheckedChanged);
//
// rbLivePtExponent
//
this.rbLivePtExponent.AutoSize = true;
@ -279,12 +308,12 @@
//
this.cbxLiveInvert.AutoSize = true;
this.cbxLiveInvert.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbxLiveInvert.Location = new System.Drawing.Point(9, 120);
this.cbxLiveInvert.Location = new System.Drawing.Point(9, 141);
this.cbxLiveInvert.Name = "cbxLiveInvert";
this.cbxLiveInvert.Size = new System.Drawing.Size(59, 17);
this.cbxLiveInvert.Size = new System.Drawing.Size(50, 17);
this.cbxLiveInvert.TabIndex = 54;
this.cbxLiveInvert.Tag = "§";
this.cbxLiveInvert.Text = "Invert";
this.cbxLiveInvert.Text = "YES";
this.cbxLiveInvert.UseVisualStyleBackColor = true;
this.cbxLiveInvert.CheckedChanged += new System.EventHandler(this.cbxInvert_CheckedChanged);
//
@ -682,5 +711,7 @@
private System.Windows.Forms.Panel pnlPreview;
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.Button btDone;
private System.Windows.Forms.Label lblInverted;
private System.Windows.Forms.CheckBox cbxLiveInvertForced;
}
}

@ -153,7 +153,9 @@ namespace SCJMapper_V2.Devices.Options
// localization with generic IDs
cbxUseDeadzone.Text = Tx.Translate( "xDeadzone" );
cbxUseSaturation.Text = Tx.Translate( "xSaturation" );
cbxLiveInvert.Text = Tx.Translate( "xInvert" );
lblInverted.Text = Tx.Translate( "xInvert" );
cbxLiveInvert.Text = Tx.Translate( "xYes" );
cbxLiveInvertForced.Text = Tx.Translate( "xForced" );
rbUseExpo.Text = Tx.Translate( "xExponent" );
rbUsePts.Text = Tx.Translate( "xCurve" );
rbUseNone.Text = Tx.Translate( "xNone" );
@ -432,6 +434,7 @@ namespace SCJMapper_V2.Devices.Options
}
// the tuning data
invertForced = dp.InvertForced;
invertUsed = dp.InvertUsed;
exponentUsed = dp.ExponentUsed;
exponentS = dp.Exponent;
@ -470,7 +473,8 @@ namespace SCJMapper_V2.Devices.Options
saturationUsed = dp.SaturationUsed;
saturationS = dp.Saturation;
// tuning data us not used here
// tuning data is not used here
invertForced = false;
invertUsed = false;
exponentUsed = false;
nonLinCurveUsed = false;
@ -487,6 +491,7 @@ namespace SCJMapper_V2.Devices.Options
dp.GameDevice = gameDeviceRef;
}
*/
dp.InvertForced = invertForced;
dp.InvertUsed = invertUsed;
// update device options
@ -535,7 +540,7 @@ namespace SCJMapper_V2.Devices.Options
used = false;
nodetext = ""; control = ""; command = "";
m_range = 1000.0; m_sign = 1.0;
invertUsed = false;
invertForced = false; invertUsed = false;
deadzoneUsed = false; deadzone = 0.0;
saturationSupported = false; saturationUsed = false; saturation = 1000.0;
exponentUsed = false; exponent = 1.0;
@ -564,6 +569,8 @@ namespace SCJMapper_V2.Devices.Options
// set values
public bool m_invertForced = false;
public bool invertForced { get { return m_invertForced; } set { m_invertForced = value; } }
public bool m_invertUsed = false;
public bool invertUsed { get { return m_invertUsed; } set { m_invertUsed = value; m_sign = m_invertUsed ? -1.0 : 1.0; } }
public string invertS
@ -747,6 +754,8 @@ namespace SCJMapper_V2.Devices.Options
cbxLiveInvert.Enabled = true;
cbxLiveInvert.Checked = lv.invertUsed;
cbxLiveInvertForced.Enabled = true;
cbxLiveInvertForced.Checked = lv.invertForced;
rbUseNone.Checked = true; // init - we will see later if it changes (guarded - so no sideeffects from Checked Events)
if ( lv.exponentUsed ) lblLiveOutExponent.Text = lv.exponentS;
@ -1144,6 +1153,14 @@ namespace SCJMapper_V2.Devices.Options
}
}
private void cbxLiveInvertForced_CheckedChanged( object sender, EventArgs e )
{
m_live.invertForced = false;
if ( cbxLiveInvertForced.Checked == true ) {
m_live.invertForced = true;
}
}
#endregion
#region Checked Deadzone Changed

@ -22,6 +22,7 @@ using SCJMapper_V2.Devices.Joystick;
using SCJMapper_V2.Devices.Options;
using SCJMapper_V2.Devices.Monitor;
using SCJMapper_V2.Translation;
using System.Threading;
namespace SCJMapper_V2
{
@ -239,19 +240,29 @@ namespace SCJMapper_V2
#endregion
#region Main Form Handling
public void splash()
{
Application.Run( new AboutBox( ) );
}
private Thread SplashT = null;
public MainForm()
{
try {
// Load the icon from our resources
System.Resources.ResourceManager resources = new System.Resources.ResourceManager( this.GetType( ) );
var resources = new System.Resources.ResourceManager( this.GetType( ) );
this.Icon = ( (Icon)( resources.GetObject( "$this.Icon" ) ) );
}
catch {
; // well...
}
// Splash screen
SplashT = new Thread( new ThreadStart( splash ) );
SplashT.Start( );
InitializeComponent( );
}
@ -414,7 +425,7 @@ namespace SCJMapper_V2
// load Mouse menu strip
if ( DeviceInst.MouseRef != null ) {
for ( int i = 0; i < DeviceInst.MouseRef.NumberOfButtons; i++ ) {
ToolStripMenuItem ts = new ToolStripMenuItem( "Button " + ( i + 1 ).ToString( ), null, new EventHandler( tmeItem_Click ) );
var ts = new ToolStripMenuItem( "Button " + ( i + 1 ).ToString( ), null, new EventHandler( tmeItem_Click ) );
ts.Tag = ( i + 1 ).ToString( );
cmMouseEntry.Items.Add( ts );
}
@ -446,6 +457,8 @@ namespace SCJMapper_V2
AutoTabXML_Assignment( EATabXML.Tab_XML );
m_appLoading = false; // no longer
SplashT.Abort( );
}

@ -98,6 +98,9 @@ namespace SCJMapper_V2.OGL
private void CalcCurve( float[] cout )
{
// fix issue #26 don't calc if we have no _bezierPoints
if ( _bezierPoints.Count == 0 ) return; // the input as initialized
Vector2[] ptList = new Vector2[_bezierPoints.Count];
//convert bezier points to flat list
int pIdx = 0;

@ -173,6 +173,9 @@
this.panel10 = new System.Windows.Forms.Panel();
this.rbTuneStrafe = new System.Windows.Forms.RadioButton();
this.rbTuneYPR = new System.Windows.Forms.RadioButton();
this.cbxYinvertForced = new System.Windows.Forms.CheckBox();
this.cbxPinvertForced = new System.Windows.Forms.CheckBox();
this.cbxRinvertForced = new System.Windows.Forms.CheckBox();
this.tlp.SuspendLayout();
this.tlpData.SuspendLayout();
this.pnlYaw.SuspendLayout();
@ -265,6 +268,7 @@
//
this.pnlYaw.BackColor = System.Drawing.Color.PowderBlue;
this.pnlYaw.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.pnlYaw.Controls.Add(this.cbxYinvertForced);
this.pnlYaw.Controls.Add(this.lblYnt);
this.pnlYaw.Controls.Add(this.cbxYinvert);
this.pnlYaw.Controls.Add(this.cbxYpts);
@ -297,7 +301,7 @@
this.lblYnt.AutoSize = true;
this.lblYnt.Location = new System.Drawing.Point(107, 17);
this.lblYnt.Name = "lblYnt";
this.lblYnt.Size = new System.Drawing.Size(20, 13);
this.lblYnt.Size = new System.Drawing.Size(21, 13);
this.lblYnt.TabIndex = 23;
this.lblYnt.Text = "NT";
this.lblYnt.Visible = false;
@ -488,6 +492,7 @@
//
this.pnlPitch.BackColor = System.Drawing.Color.Salmon;
this.pnlPitch.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.pnlPitch.Controls.Add(this.cbxPinvertForced);
this.pnlPitch.Controls.Add(this.lblPnt);
this.pnlPitch.Controls.Add(this.cbxPinvert);
this.pnlPitch.Controls.Add(this.cbxPpts);
@ -520,7 +525,7 @@
this.lblPnt.AutoSize = true;
this.lblPnt.Location = new System.Drawing.Point(107, 17);
this.lblPnt.Name = "lblPnt";
this.lblPnt.Size = new System.Drawing.Size(20, 13);
this.lblPnt.Size = new System.Drawing.Size(21, 13);
this.lblPnt.TabIndex = 34;
this.lblPnt.Text = "NT";
this.lblPnt.Visible = false;
@ -711,6 +716,7 @@
//
this.pnlRoll.BackColor = System.Drawing.Color.LightGreen;
this.pnlRoll.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.pnlRoll.Controls.Add(this.cbxRinvertForced);
this.pnlRoll.Controls.Add(this.lblRnt);
this.pnlRoll.Controls.Add(this.cbxRinvert);
this.pnlRoll.Controls.Add(this.cbxRpts);
@ -743,7 +749,7 @@
this.lblRnt.AutoSize = true;
this.lblRnt.Location = new System.Drawing.Point(107, 17);
this.lblRnt.Name = "lblRnt";
this.lblRnt.Size = new System.Drawing.Size(20, 13);
this.lblRnt.Size = new System.Drawing.Size(21, 13);
this.lblRnt.TabIndex = 38;
this.lblRnt.Text = "NT";
this.lblRnt.Visible = false;
@ -1107,7 +1113,7 @@
//
this.rbPtDeadzone.AutoSize = true;
this.rbPtDeadzone.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rbPtDeadzone.Location = new System.Drawing.Point(14, 72);
this.rbPtDeadzone.Location = new System.Drawing.Point(14, 78);
this.rbPtDeadzone.Name = "rbPtDeadzone";
this.rbPtDeadzone.Size = new System.Drawing.Size(81, 19);
this.rbPtDeadzone.TabIndex = 54;
@ -1265,9 +1271,9 @@
//
// btCopyToAllAxis
//
this.btCopyToAllAxis.Location = new System.Drawing.Point(192, 130);
this.btCopyToAllAxis.Location = new System.Drawing.Point(195, 148);
this.btCopyToAllAxis.Name = "btCopyToAllAxis";
this.btCopyToAllAxis.Size = new System.Drawing.Size(57, 73);
this.btCopyToAllAxis.Size = new System.Drawing.Size(57, 63);
this.btCopyToAllAxis.TabIndex = 38;
this.btCopyToAllAxis.Tag = "§";
this.btCopyToAllAxis.Text = "Copy to all axis";
@ -1319,7 +1325,7 @@
//
this.rbPtExponent.AutoSize = true;
this.rbPtExponent.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rbPtExponent.Location = new System.Drawing.Point(14, 108);
this.rbPtExponent.Location = new System.Drawing.Point(14, 104);
this.rbPtExponent.Name = "rbPtExponent";
this.rbPtExponent.Size = new System.Drawing.Size(81, 19);
this.rbPtExponent.TabIndex = 33;
@ -1332,7 +1338,7 @@
this.rbPtSaturation.AutoSize = true;
this.rbPtSaturation.Checked = true;
this.rbPtSaturation.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rbPtSaturation.Location = new System.Drawing.Point(125, 72);
this.rbPtSaturation.Location = new System.Drawing.Point(125, 78);
this.rbPtSaturation.Name = "rbPtSaturation";
this.rbPtSaturation.Size = new System.Drawing.Size(83, 19);
this.rbPtSaturation.TabIndex = 32;
@ -1357,7 +1363,7 @@
//
this.rbPt2.AutoSize = true;
this.rbPt2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rbPt2.Location = new System.Drawing.Point(14, 171);
this.rbPt2.Location = new System.Drawing.Point(14, 172);
this.rbPt2.Name = "rbPt2";
this.rbPt2.Size = new System.Drawing.Size(67, 19);
this.rbPt2.TabIndex = 30;
@ -1381,7 +1387,7 @@
//
this.label33.AutoSize = true;
this.label33.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label33.Location = new System.Drawing.Point(135, 130);
this.label33.Location = new System.Drawing.Point(135, 129);
this.label33.Name = "label33";
this.label33.Size = new System.Drawing.Size(46, 15);
this.label33.TabIndex = 28;
@ -1391,7 +1397,7 @@
//
this.label32.AutoSize = true;
this.label32.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label32.Location = new System.Drawing.Point(89, 130);
this.label32.Location = new System.Drawing.Point(89, 129);
this.label32.Name = "label32";
this.label32.Size = new System.Drawing.Size(35, 15);
this.label32.TabIndex = 27;
@ -1421,7 +1427,7 @@
//
this.lblOut2.AutoSize = true;
this.lblOut2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblOut2.Location = new System.Drawing.Point(142, 173);
this.lblOut2.Location = new System.Drawing.Point(142, 174);
this.lblOut2.Name = "lblOut2";
this.lblOut2.Size = new System.Drawing.Size(22, 15);
this.lblOut2.TabIndex = 21;
@ -1431,7 +1437,7 @@
//
this.lblIn2.AutoSize = true;
this.lblIn2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblIn2.Location = new System.Drawing.Point(89, 173);
this.lblIn2.Location = new System.Drawing.Point(89, 174);
this.lblIn2.Name = "lblIn2";
this.lblIn2.Size = new System.Drawing.Size(22, 15);
this.lblIn2.TabIndex = 20;
@ -1503,7 +1509,7 @@
//
this.lblOutSlider.AutoSize = true;
this.lblOutSlider.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblOutSlider.Location = new System.Drawing.Point(174, 34);
this.lblOutSlider.Location = new System.Drawing.Point(174, 55);
this.lblOutSlider.Name = "lblOutSlider";
this.lblOutSlider.Size = new System.Drawing.Size(34, 15);
this.lblOutSlider.TabIndex = 13;
@ -1513,7 +1519,7 @@
//
this.lblOutExponent.AutoSize = true;
this.lblOutExponent.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblOutExponent.Location = new System.Drawing.Point(112, 110);
this.lblOutExponent.Location = new System.Drawing.Point(112, 106);
this.lblOutExponent.Name = "lblOutExponent";
this.lblOutExponent.Size = new System.Drawing.Size(34, 15);
this.lblOutExponent.TabIndex = 9;
@ -1521,7 +1527,7 @@
//
// tbSlider
//
this.tbSlider.Location = new System.Drawing.Point(3, 21);
this.tbSlider.Location = new System.Drawing.Point(3, 27);
this.tbSlider.Maximum = 40;
this.tbSlider.Name = "tbSlider";
this.tbSlider.Size = new System.Drawing.Size(165, 45);
@ -1657,7 +1663,7 @@
this.rbBrokenMoon.Checked = true;
this.rbBrokenMoon.Location = new System.Drawing.Point(27, 3);
this.rbBrokenMoon.Name = "rbBrokenMoon";
this.rbBrokenMoon.Size = new System.Drawing.Size(96, 17);
this.rbBrokenMoon.Size = new System.Drawing.Size(95, 17);
this.rbBrokenMoon.TabIndex = 9;
this.rbBrokenMoon.TabStop = true;
this.rbBrokenMoon.Text = "Broken Moon";
@ -1724,7 +1730,7 @@
this.rbBigSight.AutoSize = true;
this.rbBigSight.Location = new System.Drawing.Point(200, 54);
this.rbBigSight.Name = "rbBigSight";
this.rbBigSight.Size = new System.Drawing.Size(72, 17);
this.rbBigSight.Size = new System.Drawing.Size(71, 17);
this.rbBigSight.TabIndex = 3;
this.rbBigSight.Text = "Big Sight";
this.rbBigSight.UseVisualStyleBackColor = true;
@ -1873,6 +1879,39 @@
this.rbTuneYPR.UseVisualStyleBackColor = false;
this.rbTuneYPR.CheckedChanged += new System.EventHandler(this.rbTuneYPR_CheckedChanged);
//
// cbxYinvertForced
//
this.cbxYinvertForced.AutoSize = true;
this.cbxYinvertForced.Location = new System.Drawing.Point(6, 123);
this.cbxYinvertForced.Name = "cbxYinvertForced";
this.cbxYinvertForced.Size = new System.Drawing.Size(55, 17);
this.cbxYinvertForced.TabIndex = 24;
this.cbxYinvertForced.Text = "Invert";
this.cbxYinvertForced.UseVisualStyleBackColor = true;
this.cbxYinvertForced.Visible = false;
//
// cbxPinvertForced
//
this.cbxPinvertForced.AutoSize = true;
this.cbxPinvertForced.Location = new System.Drawing.Point(6, 122);
this.cbxPinvertForced.Name = "cbxPinvertForced";
this.cbxPinvertForced.Size = new System.Drawing.Size(55, 17);
this.cbxPinvertForced.TabIndex = 35;
this.cbxPinvertForced.Text = "Invert";
this.cbxPinvertForced.UseVisualStyleBackColor = true;
this.cbxPinvertForced.Visible = false;
//
// cbxRinvertForced
//
this.cbxRinvertForced.AutoSize = true;
this.cbxRinvertForced.Location = new System.Drawing.Point(6, 124);
this.cbxRinvertForced.Name = "cbxRinvertForced";
this.cbxRinvertForced.Size = new System.Drawing.Size(55, 17);
this.cbxRinvertForced.TabIndex = 39;
this.cbxRinvertForced.Text = "Invert";
this.cbxRinvertForced.UseVisualStyleBackColor = true;
this.cbxRinvertForced.Visible = false;
//
// FormJSCalCurve
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@ -2068,5 +2107,8 @@
private System.Windows.Forms.RadioButton rbBrokenMoon;
private System.Windows.Forms.RadioButton rbDyingStar;
private System.Windows.Forms.Button btZeroCoords;
private System.Windows.Forms.CheckBox cbxYinvertForced;
private System.Windows.Forms.CheckBox cbxPinvertForced;
private System.Windows.Forms.CheckBox cbxRinvertForced;
}
}

@ -225,6 +225,7 @@ namespace SCJMapper_V2.OGL
saturationUsed = dp.DeviceoptionRef.SaturationUsed;
saturationS = dp.DeviceoptionRef.Saturation;
}
invertForced = dp.InvertForced;
invertUsed = dp.InvertUsed;
exponentUsed = dp.ExponentUsed;
exponentS = dp.Exponent;
@ -255,6 +256,7 @@ namespace SCJMapper_V2.OGL
dp.DeviceoptionRef.SaturationUsed = saturationUsed;
dp.DeviceoptionRef.Saturation = saturationS;
}
dp.InvertForced = invertForced;
dp.InvertUsed = invertUsed;
dp.ExponentUsed = exponentUsed;
dp.Exponent = exponentS;
@ -316,6 +318,8 @@ namespace SCJMapper_V2.OGL
}
// set values
public bool m_invertForced = false;
public bool invertForced { get { return m_invertForced; } set { m_invertForced = value; } }
public bool m_invertUsed = false;
public bool invertUsed { get { return m_invertUsed; } set { m_invertUsed = value; m_sign = m_invertUsed ? -1.0 : 1.0; } }
@ -448,6 +452,7 @@ namespace SCJMapper_V2.OGL
lblYCmd.Text = lv.control;
lblYnt.Text = lv.nodetext;
cbxYinvertForced.Checked = lv.invertForced;
cbxYinvert.Checked = lv.invertUsed;
lblYdeadzone.Text = lv.deadzoneS;
cbxYdeadzone.Checked = lv.deadzoneUsed;
@ -514,6 +519,7 @@ namespace SCJMapper_V2.OGL
lblPCmd.Text = lv.control;
lblPnt.Text = lv.nodetext;
cbxPinvertForced.Checked = lv.invertForced;
cbxPinvert.Checked = lv.invertUsed;
lblPdeadzone.Text = lv.deadzoneS;
cbxPdeadzone.Checked = lv.deadzoneUsed;
@ -580,6 +586,7 @@ namespace SCJMapper_V2.OGL
lblRCmd.Text = lv.control;
lblRnt.Text = lv.nodetext;
cbxRinvertForced.Checked = lv.invertForced;
cbxRinvert.Checked = lv.invertUsed;
lblRdeadzone.Text = lv.deadzoneS;
cbxRdeadzone.Checked = lv.deadzoneUsed;
@ -647,6 +654,7 @@ namespace SCJMapper_V2.OGL
lblYCmd.Text = lv.control;
lblYnt.Text = lv.nodetext;
cbxYinvertForced.Checked = lv.invertForced;
cbxYinvert.Checked = lv.invertUsed;
lblYdeadzone.Text = lv.deadzoneS;
cbxYdeadzone.Checked = lv.deadzoneUsed;
@ -711,6 +719,7 @@ namespace SCJMapper_V2.OGL
lblPCmd.Text = lv.control;
lblPnt.Text = lv.nodetext;
cbxPinvertForced.Checked = lv.invertForced;
cbxPinvert.Checked = lv.invertUsed;
lblPdeadzone.Text = lv.deadzoneS;
cbxPdeadzone.Checked = lv.deadzoneUsed;
@ -775,6 +784,7 @@ namespace SCJMapper_V2.OGL
lblRCmd.Text = lv.control;
lblRnt.Text = lv.nodetext;
cbxRinvertForced.Checked = lv.invertForced;
cbxRinvert.Checked = lv.invertUsed;
lblRdeadzone.Text = lv.deadzoneS;
cbxRdeadzone.Checked = lv.deadzoneUsed;
@ -1508,7 +1518,7 @@ namespace SCJMapper_V2.OGL
int mX = 0; int mY = 0;
/// <summary>
/// Update the graph from changes of acitve label values
/// Update the graph from changes of active label values
/// </summary>
private void UpdateChartItems()
{

@ -83,7 +83,7 @@ namespace SCJMapper_V2
log.InfoFormat( "SCJMapper_V2 - Started" );
CultureInfo current = CultureInfo.CurrentCulture;
CultureInfo modded = new CultureInfo( current.Name ); // that is the users locale
var modded = new CultureInfo( current.Name ); // that is the users locale
log.InfoFormat( "SCJMapper_V2 - using current culture : {0}", modded.Name );
if ( ! string.IsNullOrEmpty( AppConfiguration.AppConfig.culture ) ) {
try {
@ -94,7 +94,7 @@ namespace SCJMapper_V2
log.ErrorFormat( "SCJMapper_V2 - Error in culture name from config file: {0}", AppConfiguration.AppConfig.culture );
}
}
CultureInfo us = new CultureInfo( "en-US" );
var us = new CultureInfo( "en-US" );
modded.NumberFormat = us.NumberFormat; // change the whole number format to US - should be safe ...
// change the applications formatting to US (the dec point is essential here)
SetDefaultCulture( modded ); // have to maintain number formats without tracking every piece of code with locales

@ -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.42.0.77" )]
[assembly: AssemblyFileVersion( "2.42.0.77" )]
[assembly: AssemblyVersion( "2.43.0.78" )]
[assembly: AssemblyFileVersion( "2.43.0.78" )]

@ -1,12 +1,12 @@
SC Joystick Mapper V 2.42 - Build 77 BETA
(c) Cassini, StandardToaster - 11-Jul-2019
SC Joystick Mapper V 2.43 - Build 78 BETA
(c) Cassini, StandardToaster - 29-Feb-2020
Contains 14 files + graphics:
SCJMapper.exe The program (V2.42)
SCJMapper.exe.config Program config (V2.42) - MUST be in the same folder as the Exe file
de\SCJMapper.resources.dll German language (V2.42) - MUST be in the same folder as the Exe file
fr\SCJMapper.resources.dll French language (V2.42) - MUST be in the same folder as the Exe file
SCJMapper.exe The program (V2.43)
SCJMapper.exe.config Program config (V2.43) - MUST be in the same folder as the Exe file
de\SCJMapper.resources.dll German language (V2.43) - MUST be in the same folder as the Exe file
fr\SCJMapper.resources.dll French language (V2.43) - MUST be in the same folder as the Exe file
Storage\*.scj Folder for collected assets (V2.35) - MUST be in the same folder as the Exe file
PTU_Storage\*.scj Folder for collected PTU (V2.37) - MUST be in the same folder as the Exe file
SharpDX.DirectInput.dll Managed DirectInput Assembly - MUST be in the same folder as the Exe file
@ -46,6 +46,9 @@ Scanned for viruses before packing...
cassini@burri-web.org
Changelog:
V 2.43 - BETA Build 78
- added About / Splash Screen while loading Game resources
- update checkbox "Forced write" for Invert items in Options (writes the invert tag in any case to disable CIG invert defaults) #90
V 2.42 - BETA Build 77
- fix for not using the proper PTU cache when pulling data from gamepack (#87)
NOTE: please delete .scj files in <installDir>\Storage\*.scj (as they have been overwritten with PTU content)

@ -27,8 +27,8 @@
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>77</ApplicationRevision>
<ApplicationVersion>2.42.0.%2a</ApplicationVersion>
<ApplicationRevision>78</ApplicationRevision>
<ApplicationVersion>2.43.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
@ -124,6 +124,12 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AboutBox1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AboutBox1.Designer.cs">
<DependentUpon>AboutBox1.cs</DependentUpon>
</Compile>
<Compile Include="Actions\ActionCommandCls.cs" />
<Compile Include="Actions\Act.cs" />
<Compile Include="Actions\ActionTreeEventArgs.cs" />
@ -298,6 +304,9 @@
<DependentUpon>Strings.fr.resx</DependentUpon>
</Compile>
<Compile Include="Translation\Tx.cs" />
<EmbeddedResource Include="AboutBox1.resx">
<DependentUpon>AboutBox1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Devices\Monitor\FormDeviceMonitor.resx">
<DependentUpon>FormDeviceMonitor.cs</DependentUpon>
</EmbeddedResource>

@ -1411,6 +1411,15 @@ namespace SCJMapper_V2.Translation {
}
}
/// <summary>
/// Looks up a localized string similar to Forced write.
/// </summary>
public static string xForced {
get {
return ResourceManager.GetString("xForced", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Gamepad.
/// </summary>
@ -1518,5 +1527,14 @@ namespace SCJMapper_V2.Translation {
return ResourceManager.GetString("xSaturation", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Yes.
/// </summary>
public static string xYes {
get {
return ResourceManager.GetString("xYes", resourceCulture);
}
}
}
}

@ -766,4 +766,12 @@ benutzen sie Abbrechen um die Arbeit erst zu speichern.</value>
<value>Ausblenden</value>
<comment>2-Settings</comment>
</data>
<data name="xForced" xml:space="preserve">
<value>Immer ausgeben</value>
<comment>0-General</comment>
</data>
<data name="xYes" xml:space="preserve">
<value>Ja</value>
<comment>0-General</comment>
</data>
</root>

@ -766,4 +766,12 @@ Annulez maintenant si vous voulez d'abord enregistrer votre travail.</value>
<value>Chacher</value>
<comment>2-Settings</comment>
</data>
<data name="xForced" xml:space="preserve">
<value>Écriture forcée</value>
<comment>0-General</comment>
</data>
<data name="xYes" xml:space="preserve">
<value>Oui</value>
<comment>0-General</comment>
</data>
</root>

@ -766,4 +766,12 @@ Cancel now if you want to save your work first.</value>
<value>Hide</value>
<comment>2-Settings</comment>
</data>
<data name="xForced" xml:space="preserve">
<value>Forced write</value>
<comment>0-General</comment>
</data>
<data name="xYes" xml:space="preserve">
<value>Yes</value>
<comment>0-General</comment>
</data>
</root>
Loading…
Cancel
Save