BMTuneSource/Class11_u.cs

321 lines
9.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Windows.Forms;
internal class Class11_u
{
private bool bool_0;
private bool bool_1;
private bool bool_2;
private Class18 class18_0;
private Class20_u class20_u_0;
private int int_0;
private Stack<Class20_u> class20_u_1;
private Stack<Class20_u> class20_u_2;
private string string_0;
public event Delegate33 delegate33_0;
public event Delegate32 delegate32_0;
internal Class11_u(Class18 class18_1)
{
this.class18_0 = class18_1;
this.class20_u_1 = new Stack<Class20_u>();
this.class20_u_2 = new Stack<Class20_u>();
}
internal void method_0(long long_0, byte byte_0, byte byte_1)
{
if (!this.bool_1)
{
this.int_0++;
}
this.class20_u_0 = new Class20_u();
this.class20_u_0.long_0 = long_0;
this.class20_u_0.byte_0 = byte_0;
this.class20_u_0.byte_1 = byte_1;
if (!this.bool_1)
{
this.class20_u_0.string_0 = "Undefined operation. Contact Dev!";
}
else
{
this.class20_u_0.string_0 = this.string_0;
}
this.class20_u_0.int_0 = this.int_0;
this.class20_u_1.Push(this.class20_u_0);
this.class20_u_2.Clear();
if (this.delegate32_0 != null)
{
this.delegate32_0();
}
}
public bool method_1()
{
return (this.class20_u_1.Count > 0);
}
public void method_10(bool bool_3, string string_1, bool bool_4, bool bool_5)
{
if (bool_5)
{
this.bool_2 = bool_4;
this.bool_1 = false;
this.int_0++;
}
else if (!this.bool_2 || !this.bool_1)
{
if (!bool_3)
{
this.bool_2 = bool_4;
this.bool_1 = false;
this.int_0++;
}
else
{
this.bool_2 = bool_4;
this.bool_1 = bool_3;
this.string_0 = string_1;
}
}
}
public void method_11(string string_1)
{
this.string_0 = string_1;
}
public void method_12()
{
this.class20_u_1.Clear();
this.class20_u_2.Clear();
if (this.delegate32_0 != null)
{
this.delegate32_0();
}
GC.Collect(6);
}
public List<Class20_u> method_13()
{
Class20_u[] class20_u_0 = this.class20_u_1.ToArray();
List<Class20_u> list = new List<Class20_u>();
int num = 0;
int num2 = 0;
for (int i = 0; i < class20_u_0.Length; i++)
{
if (class20_u_0[i] != null)
{
if (num != class20_u_0[i].int_0)
{
num = class20_u_0[i].int_0;
}
if (((i + 1) < class20_u_0.Length) && (num == class20_u_0[i + 1].int_0))
{
class20_u_0[i] = null;
}
}
}
for (int j = 0; j < class20_u_0.Length; j++)
{
if (class20_u_0[j] != null)
{
list.Add(class20_u_0[j]);
num2++;
if (num2 > 3)
{
break;
}
}
}
class20_u_0 = null;
return list;
}
public List<Class20_u> method_14()
{
Class20_u[] class20_u_0 = this.class20_u_2.ToArray();
List<Class20_u> list = new List<Class20_u>();
int num = 0;
int num2 = 0;
for (int i = 0; i < class20_u_0.Length; i++)
{
if (class20_u_0[i] != null)
{
if (num != class20_u_0[i].int_0)
{
num = class20_u_0[i].int_0;
}
if (((i + 1) < class20_u_0.Length) && (num == class20_u_0[i + 1].int_0))
{
class20_u_0[i] = null;
}
}
}
for (int j = 0; j < class20_u_0.Length; j++)
{
if (class20_u_0[j] != null)
{
list.Add(class20_u_0[j]);
num2++;
if (num2 > 3)
{
break;
}
}
}
class20_u_0 = null;
GC.Collect();
return list;
}
public bool method_2()
{
return (this.class20_u_2.Count > 0);
}
public bool method_3()
{
return this.bool_0;
}
public void UndoALL()
{
while (this.class20_u_1.Count > 0)
{
UndoOne();
Application.DoEvents();
}
}
private void UndoOne()
{
try
{
this.bool_0 = true;
this.class20_u_0 = this.class20_u_1.Pop();
this.class18_0.method_149_SetByte(this.class20_u_0.long_0, this.class20_u_0.byte_0);
this.class20_u_2.Push(this.class20_u_0);
while (this.method_6(this.class20_u_0.int_0))
{
this.class20_u_0 = this.class20_u_1.Pop();
this.class18_0.method_149_SetByte(this.class20_u_0.long_0, this.class20_u_0.byte_0);
this.class20_u_2.Push(this.class20_u_0);
}
this.bool_0 = false;
if ((this.class20_u_0.string_0 == "Fuel & Ign Table Settings")
|| (this.class20_u_0.string_0 == "Import Calibration")
|| (this.class20_u_0.string_0 == "Insert Column")
|| (this.class20_u_0.string_0 == "Delete Column")
|| (this.class20_u_0.string_0.Contains("fuel1_hi"))
|| (this.class20_u_0.string_0.Contains("fuel1_lo"))
|| (this.class20_u_0.string_0.Contains("fuel2_hi"))
|| (this.class20_u_0.string_0.Contains("fuel2_lo"))
|| (this.class20_u_0.string_0.Contains("ign1_hi"))
|| (this.class20_u_0.string_0.Contains("ign1_lo"))
|| (this.class20_u_0.string_0.Contains("ign2_hi"))
|| (this.class20_u_0.string_0.Contains("ign2_lo"))
|| (this.class20_u_0.string_0 == "Map Sensor Setting")
|| (this.class20_u_0.string_0 == "Boost Table Setup")
)
{
this.class18_0.method_52();
}
if (this.delegate33_0 != null)
{
this.delegate33_0();
}
if (this.delegate32_0 != null)
{
this.delegate32_0();
}
}
catch { }
}
public void method_4()
{
UndoOne();
}
public void method_5(int int_1)
{
}
public void method_7()
{
//Redo
try
{
this.class20_u_0 = this.class20_u_2.Pop();
this.bool_0 = true;
this.class18_0.method_149_SetByte(this.class20_u_0.long_0, this.class20_u_0.byte_1);
this.class20_u_1.Push(this.class20_u_0);
while (this.method_9(this.class20_u_0.int_0))
{
this.class20_u_0 = this.class20_u_2.Pop();
this.class18_0.method_149_SetByte(this.class20_u_0.long_0, this.class20_u_0.byte_1);
this.class20_u_1.Push(this.class20_u_0);
}
this.bool_0 = false;
if ((this.class20_u_0.string_0 == "Fuel & Ign Table Settings")
|| (this.class20_u_0.string_0 == "Import Calibration")
|| (this.class20_u_0.string_0 == "Insert Column")
|| (this.class20_u_0.string_0 == "Delete Column")
|| (this.class20_u_0.string_0.Contains("fuel1_hi"))
|| (this.class20_u_0.string_0.Contains("fuel1_lo"))
|| (this.class20_u_0.string_0.Contains("fuel2_hi"))
|| (this.class20_u_0.string_0.Contains("fuel2_lo"))
|| (this.class20_u_0.string_0.Contains("ign1_hi"))
|| (this.class20_u_0.string_0.Contains("ign1_lo"))
|| (this.class20_u_0.string_0.Contains("ign2_hi"))
|| (this.class20_u_0.string_0.Contains("ign2_lo"))
|| (this.class20_u_0.string_0 == "Map Sensor Setting")
|| (this.class20_u_0.string_0 == "Boost Table Setup")
)
{
this.class18_0.method_52();
}
if (this.delegate33_0 != null)
{
this.delegate33_0();
}
if (this.delegate32_0 != null)
{
this.delegate32_0();
}
}
catch { }
}
public void method_8(int int_1)
{
}
public bool method_6(int int_1)
{
if (this.class20_u_1.Count <= 0)
{
return false;
}
return (this.class20_u_1.Peek().int_0 == int_1);
}
public bool method_9(int int_1)
{
if (this.class20_u_2.Count <= 0)
{
return false;
}
return (this.class20_u_2.Peek().int_0 == int_1);
}
public delegate void Delegate32();
public delegate void Delegate33();
}