BMTuneSource/parmPopcorn.cs

889 lines
40 KiB
C#

using Data;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
internal class parmPopcorn : UserControl
{
private bool bool_0;
private Class18 class18_0;
private ErrorProvider errorProvider_0;
private GroupBox groupBox1;
private IContainer icontainer_0;
private Label label2;
private Label label6;
private Label label7;
private Label label9;
private IContainer components;
private TrackBar trackBar1;
private Label label3;
private NumericUpDown txtbRpmMin;
private NumericUpDown txtbTps;
private NumericUpDown txtbBoostRetard;
private Label label11;
private Button btnSave;
private ToolTip toolTip1;
private Label label5;
private Label label8;
private GroupBox groupBox_IgnFuel;
private Label label10;
private Button buttonIncrease;
private Button buttonDecrease;
private GroupBox groupBox3;
private Panel panel1;
private NumericUpDown numericAboveRPM;
private Label label1;
private Button buttonADD;
private int MinimumLoad = 0;
private CheckBox checkBoxSecondary;
private CheckBox checkBoxPrimary;
private bool FirstLoad = true;
private Button buttonOpenFCutOnDecel;
private bool HasModInstalled = false;
public parmPopcorn(ref Class18 rm)
{
this.class18_0 = rm;
this.class18_0.delegate55_0 += new Class18.Delegate55(this.method_3);
this.class18_0.delegate58_0 += new Class18.Delegate58(this.method_3);
this.InitializeComponent();
foreach (Control control in base.Controls)
{
float emSize = control.Font.Size * (class18_0.class10_settings_0.scaleRate / 100f);
control.Font = new Font(control.Font.Name, emSize, control.Font.Style, control.Font.Unit);
}
}
protected override void Dispose(bool disposing)
{
if (disposing && (this.icontainer_0 != null))
{
this.icontainer_0.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.buttonOpenFCutOnDecel = new System.Windows.Forms.Button();
this.buttonADD = new System.Windows.Forms.Button();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.label2 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.txtbRpmMin = new System.Windows.Forms.NumericUpDown();
this.label9 = new System.Windows.Forms.Label();
this.txtbTps = new System.Windows.Forms.NumericUpDown();
this.trackBar1 = new System.Windows.Forms.TrackBar();
this.label3 = new System.Windows.Forms.Label();
this.groupBox_IgnFuel = new System.Windows.Forms.GroupBox();
this.checkBoxSecondary = new System.Windows.Forms.CheckBox();
this.checkBoxPrimary = new System.Windows.Forms.CheckBox();
this.numericAboveRPM = new System.Windows.Forms.NumericUpDown();
this.label1 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.buttonIncrease = new System.Windows.Forms.Button();
this.buttonDecrease = new System.Windows.Forms.Button();
this.txtbBoostRetard = new System.Windows.Forms.NumericUpDown();
this.label11 = new System.Windows.Forms.Label();
this.btnSave = new System.Windows.Forms.Button();
this.label8 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.errorProvider_0 = new System.Windows.Forms.ErrorProvider(this.components);
this.panel1 = new System.Windows.Forms.Panel();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.groupBox1.SuspendLayout();
this.groupBox3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.txtbRpmMin)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.txtbTps)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit();
this.groupBox_IgnFuel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericAboveRPM)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.txtbBoostRetard)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.errorProvider_0)).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.buttonOpenFCutOnDecel);
this.groupBox1.Controls.Add(this.buttonADD);
this.groupBox1.Controls.Add(this.groupBox3);
this.groupBox1.Controls.Add(this.groupBox_IgnFuel);
this.groupBox1.Controls.Add(this.label8);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Location = new System.Drawing.Point(3, 3);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(291, 487);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Popcorn MOD Settings:";
//
// buttonOpenFCutOnDecel
//
this.buttonOpenFCutOnDecel.BackColor = System.Drawing.SystemColors.ControlLight;
this.buttonOpenFCutOnDecel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonOpenFCutOnDecel.Location = new System.Drawing.Point(14, 54);
this.buttonOpenFCutOnDecel.Name = "buttonOpenFCutOnDecel";
this.buttonOpenFCutOnDecel.Size = new System.Drawing.Size(256, 25);
this.buttonOpenFCutOnDecel.TabIndex = 129;
this.buttonOpenFCutOnDecel.Text = "Open FuelCut on Decel Parameters";
this.toolTip1.SetToolTip(this.buttonOpenFCutOnDecel, "Open the FuelCut on deceleration parameters page");
this.buttonOpenFCutOnDecel.UseVisualStyleBackColor = false;
this.buttonOpenFCutOnDecel.Click += new System.EventHandler(this.buttonOpenFCutOnDecel_Click);
//
// buttonADD
//
this.buttonADD.BackColor = System.Drawing.SystemColors.ControlLight;
this.buttonADD.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonADD.Location = new System.Drawing.Point(69, 23);
this.buttonADD.Name = "buttonADD";
this.buttonADD.Size = new System.Drawing.Size(156, 25);
this.buttonADD.TabIndex = 128;
this.buttonADD.Text = "ADD MOD";
this.toolTip1.SetToolTip(this.buttonADD, "Apply Ignition to Ignition Tables");
this.buttonADD.UseVisualStyleBackColor = false;
this.buttonADD.Click += new System.EventHandler(this.Button3_Click);
//
// groupBox3
//
this.groupBox3.Controls.Add(this.label2);
this.groupBox3.Controls.Add(this.label7);
this.groupBox3.Controls.Add(this.label6);
this.groupBox3.Controls.Add(this.txtbRpmMin);
this.groupBox3.Controls.Add(this.label9);
this.groupBox3.Controls.Add(this.txtbTps);
this.groupBox3.Controls.Add(this.trackBar1);
this.groupBox3.Controls.Add(this.label3);
this.groupBox3.Location = new System.Drawing.Point(7, 91);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(276, 128);
this.groupBox3.TabIndex = 1;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Fuel Cut on Deceleration Settings:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(9, 23);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(66, 14);
this.label2.TabIndex = 101;
this.label2.Text = "Below TPS:";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(10, 75);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(63, 14);
this.label7.TabIndex = 107;
this.label7.Text = "Cut Delay:";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(181, 97);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(43, 14);
this.label6.TabIndex = 106;
this.label6.Text = "344ms";
//
// txtbRpmMin
//
this.txtbRpmMin.Increment = new decimal(new int[] {
50,
0,
0,
0});
this.txtbRpmMin.Location = new System.Drawing.Point(110, 47);
this.txtbRpmMin.Maximum = new decimal(new int[] {
4000,
0,
0,
0});
this.txtbRpmMin.Name = "txtbRpmMin";
this.txtbRpmMin.Size = new System.Drawing.Size(69, 20);
this.txtbRpmMin.TabIndex = 120;
this.txtbRpmMin.Click += new System.EventHandler(this.txtbMap_Validated);
this.txtbRpmMin.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtbMap_KeyPress);
this.txtbRpmMin.Validating += new System.ComponentModel.CancelEventHandler(this.txtbMap_Validating);
this.txtbRpmMin.Validated += new System.EventHandler(this.txtbMap_Validated);
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(10, 49);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(70, 14);
this.label9.TabIndex = 110;
this.label9.Text = "Above RPM:";
//
// txtbTps
//
this.txtbTps.Location = new System.Drawing.Point(109, 21);
this.txtbTps.Name = "txtbTps";
this.txtbTps.Size = new System.Drawing.Size(69, 20);
this.txtbTps.TabIndex = 118;
this.txtbTps.Click += new System.EventHandler(this.txtbMap_Validated);
this.txtbTps.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtbMap_KeyPress);
this.txtbTps.Validating += new System.ComponentModel.CancelEventHandler(this.txtbMap_Validating);
this.txtbTps.Validated += new System.EventHandler(this.txtbMap_Validated);
//
// trackBar1
//
this.trackBar1.AutoSize = false;
this.trackBar1.Location = new System.Drawing.Point(7, 97);
this.trackBar1.Maximum = 2310;
this.trackBar1.Name = "trackBar1";
this.trackBar1.Size = new System.Drawing.Size(162, 22);
this.trackBar1.TabIndex = 115;
this.trackBar1.TickStyle = System.Windows.Forms.TickStyle.None;
this.trackBar1.Scroll += new System.EventHandler(this.trackBar1_Scroll);
this.trackBar1.Validated += new System.EventHandler(this.txtbMap_Validated);
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(190, 23);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(14, 14);
this.label3.TabIndex = 116;
this.label3.Text = "%";
//
// groupBox_IgnFuel
//
this.groupBox_IgnFuel.Controls.Add(this.checkBoxSecondary);
this.groupBox_IgnFuel.Controls.Add(this.checkBoxPrimary);
this.groupBox_IgnFuel.Controls.Add(this.numericAboveRPM);
this.groupBox_IgnFuel.Controls.Add(this.label1);
this.groupBox_IgnFuel.Controls.Add(this.label10);
this.groupBox_IgnFuel.Controls.Add(this.buttonIncrease);
this.groupBox_IgnFuel.Controls.Add(this.buttonDecrease);
this.groupBox_IgnFuel.Controls.Add(this.txtbBoostRetard);
this.groupBox_IgnFuel.Controls.Add(this.label11);
this.groupBox_IgnFuel.Controls.Add(this.btnSave);
this.groupBox_IgnFuel.Location = new System.Drawing.Point(7, 225);
this.groupBox_IgnFuel.Name = "groupBox_IgnFuel";
this.groupBox_IgnFuel.Size = new System.Drawing.Size(276, 169);
this.groupBox_IgnFuel.TabIndex = 1;
this.groupBox_IgnFuel.TabStop = false;
this.groupBox_IgnFuel.Text = "Fuel/Ignition Tables";
//
// checkBoxSecondary
//
this.checkBoxSecondary.AutoSize = true;
this.checkBoxSecondary.Checked = true;
this.checkBoxSecondary.CheckState = System.Windows.Forms.CheckState.Checked;
this.checkBoxSecondary.Location = new System.Drawing.Point(29, 51);
this.checkBoxSecondary.Name = "checkBoxSecondary";
this.checkBoxSecondary.Size = new System.Drawing.Size(218, 18);
this.checkBoxSecondary.TabIndex = 132;
this.checkBoxSecondary.Text = "Popcorn MOD on Secondary Tables";
this.checkBoxSecondary.UseVisualStyleBackColor = true;
this.checkBoxSecondary.CheckedChanged += new System.EventHandler(this.CheckBoxSecondary_CheckedChanged);
//
// checkBoxPrimary
//
this.checkBoxPrimary.AutoSize = true;
this.checkBoxPrimary.Checked = true;
this.checkBoxPrimary.CheckState = System.Windows.Forms.CheckState.Checked;
this.checkBoxPrimary.Location = new System.Drawing.Point(29, 23);
this.checkBoxPrimary.Name = "checkBoxPrimary";
this.checkBoxPrimary.Size = new System.Drawing.Size(198, 18);
this.checkBoxPrimary.TabIndex = 131;
this.checkBoxPrimary.Text = "Popcorn MOD on Primary Tables";
this.checkBoxPrimary.UseVisualStyleBackColor = true;
this.checkBoxPrimary.CheckedChanged += new System.EventHandler(this.CheckBoxPrimary_CheckedChanged);
//
// numericAboveRPM
//
this.numericAboveRPM.Increment = new decimal(new int[] {
50,
0,
0,
0});
this.numericAboveRPM.Location = new System.Drawing.Point(109, 80);
this.numericAboveRPM.Maximum = new decimal(new int[] {
11050,
0,
0,
0});
this.numericAboveRPM.Name = "numericAboveRPM";
this.numericAboveRPM.Size = new System.Drawing.Size(69, 20);
this.numericAboveRPM.TabIndex = 130;
this.numericAboveRPM.Click += new System.EventHandler(this.txtbMap_Validated);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(9, 82);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(93, 14);
this.label1.TabIndex = 129;
this.label1.Text = "Pop Above RPM:";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(10, 141);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(33, 14);
this.label10.TabIndex = 128;
this.label10.Text = "Fuel:";
//
// buttonIncrease
//
this.buttonIncrease.BackColor = System.Drawing.SystemColors.ControlLight;
this.buttonIncrease.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonIncrease.Location = new System.Drawing.Point(193, 136);
this.buttonIncrease.Name = "buttonIncrease";
this.buttonIncrease.Size = new System.Drawing.Size(70, 25);
this.buttonIncrease.TabIndex = 127;
this.buttonIncrease.Text = "Increase";
this.toolTip1.SetToolTip(this.buttonIncrease, "Apply to Fuel Tables");
this.buttonIncrease.UseVisualStyleBackColor = false;
this.buttonIncrease.Click += new System.EventHandler(this.Button2_Click);
//
// buttonDecrease
//
this.buttonDecrease.BackColor = System.Drawing.SystemColors.ControlLight;
this.buttonDecrease.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonDecrease.Location = new System.Drawing.Point(109, 136);
this.buttonDecrease.Name = "buttonDecrease";
this.buttonDecrease.Size = new System.Drawing.Size(70, 25);
this.buttonDecrease.TabIndex = 126;
this.buttonDecrease.Text = "Decrease";
this.toolTip1.SetToolTip(this.buttonDecrease, "Apply to Fuel Tables");
this.buttonDecrease.UseVisualStyleBackColor = false;
this.buttonDecrease.Click += new System.EventHandler(this.ButtonDecrease_Click);
//
// txtbBoostRetard
//
this.txtbBoostRetard.DecimalPlaces = 2;
this.txtbBoostRetard.Location = new System.Drawing.Point(109, 106);
this.txtbBoostRetard.Maximum = new decimal(new int[] {
2,
0,
0,
0});
this.txtbBoostRetard.Minimum = new decimal(new int[] {
6,
0,
0,
-2147483648});
this.txtbBoostRetard.Name = "txtbBoostRetard";
this.txtbBoostRetard.Size = new System.Drawing.Size(69, 20);
this.txtbBoostRetard.TabIndex = 122;
this.txtbBoostRetard.Value = new decimal(new int[] {
6,
0,
0,
-2147483648});
this.txtbBoostRetard.Click += new System.EventHandler(this.txtbMap_Validated);
this.txtbBoostRetard.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtbMap_KeyPress);
this.txtbBoostRetard.Validating += new System.ComponentModel.CancelEventHandler(this.txtbIgn_Validating);
this.txtbBoostRetard.Validated += new System.EventHandler(this.txtbMap_Validated);
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(9, 108);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(87, 14);
this.label11.TabIndex = 121;
this.label11.Text = "Ignition(static):";
//
// btnSave
//
this.btnSave.BackColor = System.Drawing.SystemColors.ControlLight;
this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnSave.Location = new System.Drawing.Point(193, 103);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(70, 25);
this.btnSave.TabIndex = 125;
this.btnSave.Text = "Apply";
this.toolTip1.SetToolTip(this.btnSave, "Apply Ignition to Ignition Tables");
this.btnSave.UseVisualStyleBackColor = false;
this.btnSave.Click += new System.EventHandler(this.BtnSave_Click);
//
// label8
//
this.label8.AutoSize = true;
this.label8.Font = new System.Drawing.Font("Lucida Sans", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label8.ForeColor = System.Drawing.Color.Red;
this.label8.Location = new System.Drawing.Point(55, 402);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(176, 24);
this.label8.TabIndex = 127;
this.label8.Text = "PORCORN MOD ARE SHARING\r\nTHE SAME PARAMETERS FOR:";
//
// label5
//
this.label5.AutoSize = true;
this.label5.ForeColor = System.Drawing.Color.Red;
this.label5.Location = new System.Drawing.Point(71, 431);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(147, 42);
this.label5.TabIndex = 126;
this.label5.Text = "-Fuel Cut(on deceleration)\r\n-Ignition Tables\r\n-Fuel Tables";
//
// errorProvider_0
//
this.errorProvider_0.ContainerControl = this;
//
// panel1
//
this.panel1.AutoScroll = true;
this.panel1.Controls.Add(this.groupBox1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(313, 473);
this.panel1.TabIndex = 2;
//
// parmPopcorn
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.panel1);
this.Font = new System.Drawing.Font("Lucida Sans", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "parmPopcorn";
this.Size = new System.Drawing.Size(313, 473);
this.Load += new System.EventHandler(this.parmPopcorn_Load);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.txtbRpmMin)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.txtbTps)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit();
this.groupBox_IgnFuel.ResumeLayout(false);
this.groupBox_IgnFuel.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericAboveRPM)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.txtbBoostRetard)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.errorProvider_0)).EndInit();
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
}
private void method_IncreaseFuel(SelectedTable selectedTable_0)
{
for (int j = 0; j < this.class18_0.method_32_GetRPM_RowsNumber(); j++)
{
if (this.class18_0.method_160((byte)j, selectedTable_0) >= (int.Parse(numericAboveRPM.Text) - 25))
{
byte columnIndex = (byte)0;
byte rowIndex = (byte)j;
float num2 = this.class18_0.method_175(columnIndex, rowIndex, selectedTable_0);
if (num2 >= this.class18_0.class10_settings_0.float_3) this.class18_0.method_177(columnIndex, rowIndex, num2 + ((num2 / 100f) * this.class18_0.class10_settings_0.float_1), selectedTable_0);
else this.class18_0.method_177(columnIndex, rowIndex, num2 + this.class18_0.class10_settings_0.float_2, selectedTable_0);
//Check if editing are done correctly
float num2_new = this.class18_0.method_175(columnIndex, rowIndex, selectedTable_0);
float Multiplyer = 1.5f;
int TryCount = 0;
while (num2 == num2_new && TryCount < 3)
{
if (num2 >= this.class18_0.class10_settings_0.float_3) this.class18_0.method_177(columnIndex, rowIndex, num2 + ((num2 / 100f) * (this.class18_0.class10_settings_0.float_1 * Multiplyer)), selectedTable_0);
else this.class18_0.method_177(columnIndex, rowIndex, num2 + (this.class18_0.class10_settings_0.float_2 * Multiplyer), selectedTable_0);
num2_new = this.class18_0.method_175(columnIndex, rowIndex, selectedTable_0);
Multiplyer += 0.5f;
TryCount++;
if (TryCount == 3) this.class18_0.method_155("Cannot increase fuel value for Col:#" + columnIndex + " Row:#" + rowIndex);
}
}
}
}
private void method_DecreaseFuel(SelectedTable selectedTable_0)
{
for (int j = 0; j < this.class18_0.method_32_GetRPM_RowsNumber(); j++)
{
if (this.class18_0.method_160((byte)j, selectedTable_0) >= (int.Parse(numericAboveRPM.Text) - 25))
{
byte columnIndex = (byte)0;
byte rowIndex = (byte)j;
float num2 = this.class18_0.method_175(columnIndex, rowIndex, selectedTable_0);
if (num2 >= this.class18_0.class10_settings_0.float_3)
{
if ((num2 - ((num2 / 100f) * this.class18_0.class10_settings_0.float_1)) >= 0f) this.class18_0.method_177(columnIndex, rowIndex, num2 - ((num2 / 100f) * this.class18_0.class10_settings_0.float_1), selectedTable_0);
else this.class18_0.method_177(columnIndex, rowIndex, 0f, selectedTable_0);
}
else
{
if ((num2 - this.class18_0.class10_settings_0.float_2) >= 0f) this.class18_0.method_177(columnIndex, rowIndex, num2 - this.class18_0.class10_settings_0.float_2, selectedTable_0);
else this.class18_0.method_177(columnIndex, rowIndex, 0f, selectedTable_0);
}
//Check if editing are done correctly
if (num2 > 0f)
{
float num2_new = this.class18_0.method_174(columnIndex, rowIndex);
float Multiplyer = 1.5f;
int TryCount = 0;
while (num2 == num2_new && TryCount < 3)
{
if (num2 >= this.class18_0.class10_settings_0.float_3)
{
if ((num2 - ((num2 / 100f) * (this.class18_0.class10_settings_0.float_1 * Multiplyer))) >= 0f) this.class18_0.method_177(columnIndex, rowIndex, num2 - ((num2 / 100f) * (this.class18_0.class10_settings_0.float_1 * Multiplyer)), selectedTable_0);
else this.class18_0.method_177(columnIndex, rowIndex, 0f, selectedTable_0);
}
else
{
if ((num2 - (this.class18_0.class10_settings_0.float_2 * Multiplyer)) >= 0f) this.class18_0.method_177(columnIndex, rowIndex, num2 - (this.class18_0.class10_settings_0.float_2 * Multiplyer), selectedTable_0);
else this.class18_0.method_177(columnIndex, rowIndex, 0f, selectedTable_0);
}
num2_new = this.class18_0.method_175(columnIndex, rowIndex, selectedTable_0);
Multiplyer += 0.5f;
TryCount++;
if (TryCount == 3) this.class18_0.method_155("Cannot decrease fuel value for Col:#" + columnIndex + " Row:#" + rowIndex);
}
}
}
}
}
private void method_ApplyIgn(SelectedTable selectedTable_0)
{
//Reset before settting
method_ResetIgn(selectedTable_0);
//Set
for (int j = 0; j < this.class18_0.method_32_GetRPM_RowsNumber(); j++)
{
if (this.class18_0.method_160((byte)j, selectedTable_0) >= (int.Parse(numericAboveRPM.Text) - 5))
{
this.class18_0.method_177((byte)0, (byte)j, float.Parse(txtbBoostRetard.Text), selectedTable_0);
}
}
}
private void method_ResetIgn(SelectedTable selectedTable_0)
{
//reset all rpm rows, only reset Col0
for (int j = 0; j < this.class18_0.method_32_GetRPM_RowsNumber(); j++)
{
this.class18_0.method_177((byte)0, (byte)j, this.class18_0.method_175((byte)1, (byte)j, selectedTable_0), selectedTable_0);
}
}
private bool HasPopcornMod()
{
bool Hasmod = false;
SelectedTable selectedTable_0 = SelectedTable.ign1_lo;
if (checkBoxPrimary.Checked)
{
for (int j = 0; j < this.class18_0.method_32_GetRPM_RowsNumber(); j++) if (this.class18_0.method_175((byte)0, (byte)j, selectedTable_0) <= 2) Hasmod = true;
if (!Hasmod)
{
selectedTable_0 = SelectedTable.ign1_hi;
for (int j = 0; j < this.class18_0.method_32_GetRPM_RowsNumber(); j++) if (this.class18_0.method_175((byte)0, (byte)j, selectedTable_0) <= 2) Hasmod = true;
}
}
if (checkBoxSecondary.Checked)
{
if (!Hasmod)
{
selectedTable_0 = SelectedTable.ign2_lo;
for (int j = 0; j < this.class18_0.method_32_GetRPM_RowsNumber(); j++) if (this.class18_0.method_175((byte)0, (byte)j, selectedTable_0) <= 2) Hasmod = true;
}
if (!Hasmod)
{
selectedTable_0 = SelectedTable.ign2_hi;
for (int j = 0; j < this.class18_0.method_32_GetRPM_RowsNumber(); j++) if (this.class18_0.method_175((byte)0, (byte)j, selectedTable_0) <= 2) Hasmod = true;
}
}
HasModInstalled = Hasmod;
if (HasModInstalled)
{
buttonADD.Text = "REMOVE MOD";
buttonADD.ForeColor = Color.Red;
}
else
{
buttonADD.Text = "ADD MOD";
buttonADD.ForeColor = SystemColors.ControlText;
}
return Hasmod;
}
private void method_3()
{
if (this.class18_0.method_30_HasFileLoadedInBMTune())
{
this.parmPopcorn_Load(null, null);
}
}
private void method_5()
{
if (!this.bool_0)
{
this.class18_0.method_155("Popcorn Mod Settings");
this.class18_0.method_149_SetByte(this.class18_0.class13_u_0.long_58, (byte) (trackBar1.Value / 10));
this.class18_0.method_149_SetByte(this.class18_0.class13_u_0.long_56, this.class18_0.method_228(int.Parse(this.txtbTps.Text)));
this.class18_0.method_149_SetByte(this.class18_0.class13_u_0.long_54, this.class18_0.method_216(int.Parse(this.txtbRpmMin.Text)));
this.class18_0.method_149_SetByte(this.class18_0.class13_u_0.long_55, this.class18_0.method_216(int.Parse(this.txtbRpmMin.Text) - 200));
this.class18_0.method_153();
}
}
private void parmPopcorn_Load(object sender, EventArgs e)
{
this.bool_0 = true;
this.trackBar1.Value = (this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_58) * 10);
this.label6.Text = this.trackBar1.Value + "ms";
this.txtbTps.Text = this.class18_0.method_198(this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_56)).ToString("0");
this.txtbRpmMin.Text = this.class18_0.method_186(this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_54)).ToString();
MinimumLoad = this.class18_0.method_164((byte)0, SelectedTable.fuel1_lo);
if (FirstLoad)
{
this.numericAboveRPM.Text = (this.class18_0.method_186(this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_54)) + 250).ToString();
}
HasPopcornMod();
this.bool_0 = false;
this.FirstLoad = false;
}
private void txtbMap_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
NumericUpDown control = (NumericUpDown) sender;
this.groupBox1.Focus();
if (this.errorProvider_0.GetError(control) == string.Empty)
{
this.method_5();
}
control.Focus();
}
}
private void txtbMap_Validated(object sender, EventArgs e)
{
this.method_5();
this.parmPopcorn_Load(null, null);
}
private void txtbMap_Validating(object sender, CancelEventArgs e)
{
NumericUpDown control = (NumericUpDown) sender;
if (!this.class18_0.method_255(control.Text.ToString()))
{
this.errorProvider_0.SetError(control, "Invalid input, integer required");
e.Cancel = true;
}
else
{
this.errorProvider_0.SetError(control, "");
}
}
private void txtbIgn_Validating(object sender, CancelEventArgs e)
{
NumericUpDown control = (NumericUpDown)sender;
if (!this.class18_0.method_252(control.Text.ToString()))
{
this.errorProvider_0.SetError(control, "Invalid input, double required");
e.Cancel = true;
}
else
{
this.errorProvider_0.SetError(control, "");
}
}
private void trackBar1_Scroll(object sender, EventArgs e)
{
this.method_5();
this.parmPopcorn_Load(null, null);
}
private void BtnSave_Click(object sender, EventArgs e)
{
this.class18_0.method_155("Popcorn Mod Settings");
if (checkBoxPrimary.Checked || checkBoxPrimary.Checked)
{
try
{
if (MessageBox.Show(Form.ActiveForm, "Do you want to set the Ignition Table for popcorn mod?\n\nThis will set ignition at " + double.Parse(txtbBoostRetard.Text) + "\nAbove " + int.Parse(numericAboveRPM.Text) + "rpm\nBellow " + MinimumLoad + "mBar", "BMTune", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.class18_0.method_149_SetByte(this.class18_0.class13_u_0.long_59, 0xff); //set fuel cut enabled
if (checkBoxPrimary.Checked)
{
this.method_ApplyIgn(SelectedTable.ign1_hi);
this.method_ApplyIgn(SelectedTable.ign1_lo);
}
if (checkBoxPrimary.Checked)
{
this.method_ApplyIgn(SelectedTable.ign2_hi);
this.method_ApplyIgn(SelectedTable.ign2_lo);
}
}
}
catch (Exception message)
{
MessageBox.Show(Form.ActiveForm, "Error when setting Ignition Table! Error:\n\n" + message, "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
this.method_5();
this.parmPopcorn_Load(null, null);
this.class18_0.method_53();
}
else
{
MessageBox.Show(Form.ActiveForm, "Cant set Ignition Table because you didn't selected\nwhich map to work with(primary or secondary)", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void Button3_Click(object sender, EventArgs e)
{
this.class18_0.method_155("Popcorn Mod Settings");
if (!HasModInstalled)
{
//add mod
this.method_5();
this.BtnSave_Click(null, null);
this.parmPopcorn_Load(null, null);
}
else
{
if (checkBoxPrimary.Checked || checkBoxPrimary.Checked)
{
//remove mod
try
{
if (MessageBox.Show(Form.ActiveForm, "Do you want to remove popcorn mod\nfrom the Ignition Table?", "BMTune", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
if (checkBoxPrimary.Checked)
{
this.method_ResetIgn(SelectedTable.ign1_hi);
this.method_ResetIgn(SelectedTable.ign1_lo);
}
if (checkBoxPrimary.Checked)
{
this.method_ResetIgn(SelectedTable.ign2_hi);
this.method_ResetIgn(SelectedTable.ign2_lo);
}
}
}
catch (Exception message)
{
MessageBox.Show(Form.ActiveForm, "Error when setting Ignition Table! Error:\n\n" + message, "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
this.method_5();
this.parmPopcorn_Load(null, null);
this.class18_0.method_53();
}
else
{
MessageBox.Show(Form.ActiveForm, "Cant reset Ignition Table because you didn't selected\nwhich map to work with(primary or secondary)", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void Button2_Click(object sender, EventArgs e)
{
this.class18_0.method_155("Popcorn Mod Settings");
if (checkBoxPrimary.Checked || checkBoxPrimary.Checked)
{
try
{
if (checkBoxPrimary.Checked)
{
this.method_IncreaseFuel(SelectedTable.fuel1_hi);
this.method_IncreaseFuel(SelectedTable.fuel1_lo);
}
if (checkBoxPrimary.Checked)
{
this.method_IncreaseFuel(SelectedTable.fuel2_hi);
this.method_IncreaseFuel(SelectedTable.fuel2_lo);
}
}
catch (Exception message)
{
MessageBox.Show(Form.ActiveForm, "Error when setting Fuel Table! Error:\n\n" + message, "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
this.method_5();
this.parmPopcorn_Load(null, null);
this.class18_0.method_53();
}
else
{
MessageBox.Show(Form.ActiveForm, "Cant increase Fuel Table because you didn't selected\nwhich map to work with(primary or secondary)", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void ButtonDecrease_Click(object sender, EventArgs e)
{
this.class18_0.method_155("Popcorn Mod Settings");
if (checkBoxPrimary.Checked || checkBoxPrimary.Checked)
{
try
{
if (checkBoxPrimary.Checked)
{
this.method_DecreaseFuel(SelectedTable.fuel1_hi);
this.method_DecreaseFuel(SelectedTable.fuel1_lo);
}
if (checkBoxPrimary.Checked)
{
this.method_DecreaseFuel(SelectedTable.fuel2_hi);
this.method_DecreaseFuel(SelectedTable.fuel2_lo);
}
}
catch (Exception message)
{
MessageBox.Show(Form.ActiveForm, "Error when setting Fuel Table! Error:\n\n" + message, "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
this.method_5();
this.parmPopcorn_Load(null, null);
this.class18_0.method_53();
}
else
{
MessageBox.Show(Form.ActiveForm, "Cant decrease Fuel Table because you didn't selected\nwhich map to work with(primary or secondary)", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void CheckBoxPrimary_CheckedChanged(object sender, EventArgs e)
{
HasPopcornMod();
}
private void CheckBoxSecondary_CheckedChanged(object sender, EventArgs e)
{
HasPopcornMod();
}
private void buttonOpenFCutOnDecel_Click(object sender, EventArgs e)
{
this.class18_0.class17_0.frmMain_0.frmParameters_0.SelectPage("nFuelCut", "Fuel Cut Decel");
}
}