diff --git a/ClassEditor.cs b/ClassEditor.cs new file mode 100644 index 0000000..858153b --- /dev/null +++ b/ClassEditor.cs @@ -0,0 +1,1921 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using DarkUI.Controls; +using DarkUI.Forms; + +internal class ClassEditor +{ + + private Editortable Editortable_0; + + internal ClassEditor(ref Editortable Editortable_1) + { + Editortable_0 = Editortable_1; + } + + /*public string smethod_0(ZipArchiveEntry zipArchiveEntry_0) + { + string text = ""; + using (Stream stream = zipArchiveEntry_0.Open()) + { + using (StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("iso-8859-1"))) + { + text += streamReader.ReadToEnd(); + } + } + return text; + }*/ + + public float smethod_1() + { + return Editortable.float_0; + } + + public string smethod_2(int int_232, int int_233, bool bool_5, bool bool_6) + { + float num = this.smethod_1(); + string format = "0"; + string text = Editortable_0.dataGridView_0.Rows[int_232].Cells[int_233].Value.ToString(); + if (text.Contains(".")) + { + format = "0.000"; + } + if (bool_6) + { + num *= 4f; + } + if (bool_5) + { + return (float.Parse(text) + num).ToString(format); + } + return (float.Parse(text) - num).ToString(format); + } + + public void smethod_3(KeyEventArgs keyEventArgs_0, int int_232) + { + bool bool_ = false; + if (Control.ModifierKeys == Keys.Shift) + { + bool_ = true; + } + if (keyEventArgs_0.KeyCode == Keys.Delete || int_232 == 1) + { + int num = 0; + int num2 = 0; + int i = 0; + //if (Editortable_0.frmOBD2Scan_0 != null) + //{ + while (i < Editortable_0.dataGridView_0.Rows.Count) + { + if (Editortable_0.dataGridView_0.Rows[i].Cells[num2].Selected) + { + Editortable_0.dataGridView_0.Rows[i].Cells[num2].Value = 0; + } + if (num2 == Editortable_0.dataGridView_0.Columns.Count - 1) + { + num2 = 0; + i++; + } + else + { + num2++; + } + num++; + } + //} + } + if (keyEventArgs_0.KeyCode == Keys.W || int_232 == 2) + { + int num3 = 0; + int num4 = 0; + int j = 0; + while (j < Editortable_0.dataGridView_0.Rows.Count) + { + if (Editortable_0.dataGridView_0.Rows[j].Cells[num4].Selected) + { + Editortable_0.dataGridView_0.Rows[j].Cells[num4].Value = this.smethod_2(j, num4, true, bool_); + } + if (num4 == Editortable_0.dataGridView_0.Columns.Count - 1) + { + num4 = 0; + j++; + } + else + { + num4++; + } + num3++; + } + } + if (keyEventArgs_0.KeyCode == Keys.S || int_232 == 3) + { + int num5 = 0; + int num6 = 0; + int k = 0; + while (k < Editortable_0.dataGridView_0.Rows.Count) + { + if (Editortable_0.dataGridView_0.Rows[k].Cells[num6].Selected) + { + Editortable_0.dataGridView_0.Rows[k].Cells[num6].Value = this.smethod_2(k, num6, false, bool_); + } + if (num6 == Editortable_0.dataGridView_0.Columns.Count - 1) + { + num6 = 0; + k++; + } + else + { + num6++; + } + num5++; + } + } + Class40 class40_0 = new Class40(); + //this.smethod_4(200).ContinueWith(new Action(this.<> c.<> 9.method_0)); + this.smethod_4(200, class40_0).ContinueWith(new Action(class40_0.method_0)); + } + + private Task smethod_4(int int_232, Class40 class40_0) + { + //Class40 class40_0 = new Class40(); + class40_0.taskCompletionSource_0 = new TaskCompletionSource(); + new System.Threading.Timer(new TimerCallback(class40_0.method_0)).Change(int_232, -1); + return class40_0.taskCompletionSource_0.Task; + } + + public void smethod_5(string TableSize) + { + int[] array = new int[0]; + int[] tablearray = new int[0]; + bool Is1x20Table = false; + + if (TableSize == "10X20") + { + int num = 2; + if (this.bool_3) num = 1; + int num2 = this.int_0; + array = new int[this.int_1 * num]; + for (int i = 0; i < this.int_1 * num; i++) + { + array[i] = (int)this.byte_0[num2]; + this.byte_0[num2] = (byte)this.int_219[i]; + num2++; + } + tablearray = this.int_219; + Is1x20Table = true; + } + else + { + int num = this.int_0; + array = new int[this.int_1 * 2]; + for (int i = 0; i < this.int_1 * 2; i++) + { + array[i] = (int)this.byte_0[num]; + if (TableSize == "1X64") this.byte_0[num] = (byte)this.int_220[i]; + if (TableSize == "1X15") this.byte_0[num] = (byte)this.int_221[i]; + if (TableSize == "1X8") this.byte_0[num] = (byte)this.int_222[i]; + if (TableSize == "1X7") this.byte_0[num] = (byte)this.int_223[i]; + if (TableSize == "1X6") this.byte_0[num] = (byte)this.int_224[i]; + if (TableSize == "1X5") this.byte_0[num] = (byte)this.int_225[i]; + if (TableSize == "1X4") this.byte_0[num] = (byte)this.int_226[i]; + if (TableSize == "1X2") this.byte_0[num] = (byte)this.int_231[i]; + if (TableSize == "1X1") this.byte_0[num] = (byte)this.int_231[i]; + num++; + } + if (TableSize == "1X64") tablearray = this.int_220; + if (TableSize == "1X15") tablearray = this.int_221; + if (TableSize == "1X8") tablearray = this.int_222; + if (TableSize == "1X7") tablearray = this.int_223; + if (TableSize == "1X6") tablearray = this.int_224; + if (TableSize == "1X5") tablearray = this.int_225; + if (TableSize == "1X4") tablearray = this.int_226; + if (TableSize == "1X2") tablearray = this.int_231; + if (TableSize == "1X1") tablearray = this.int_231; + } + + + int num3 = 0; + string text = null; + foreach (int num4 in tablearray) + { + //if ((!this.bool_3 || num3 < 200) && num4.ToString() != array[num3].ToString()) + if (((Is1x20Table && (!this.bool_3 || num3 < 200)) || (!Is1x20Table)) && num4.ToString() != array[num3].ToString()) + { + text = string.Concat(new string[] + { + text, + "Change at line: ", + num3.ToString(), + "[", + array[num3].ToString(), + " : ", + num4.ToString(), + "]", + Environment.NewLine + }); + Editortable_0.GForm_Main_0.method_1(string.Concat(new string[] + { + "Change at line: ", + num3.ToString(), + "[", + array[num3].ToString(), + " : ", + num4.ToString(), + "]" + })); + } + num3++; + } + this.string_3 = string.Concat(new string[] + { + this.string_3, + "Table: ", + TableSize, + Environment.NewLine, + "Address: ", + this.int_0.ToString(), + Environment.NewLine, + text + }); + } + + public void smethod_15(string string_4) + { + try + { + if (this.bool_2 && this.int_1 != 0 && this.int_0 != 0) + { + if (this.int_1 == 200) + { + this.smethod_5("10X20"); + } + else if (this.int_1 == 64) + { + this.smethod_5("1X64"); + } + else if (this.int_1 == 15) + { + this.smethod_5("1X15"); + } + else if (this.int_1 == 8) + { + this.smethod_5("1X8"); + } + else if (this.int_1 == 7) + { + this.smethod_5("1X7"); + //this.smethod_5("1X5"); + } + else if (this.int_1 == 6) + { + this.smethod_5("1X6"); + //this.smethod_5("1X5"); + } + else if (this.int_1 == 5) + { + this.smethod_5("1X5"); + } + else if (this.int_1 == 4) + { + this.smethod_5("1X4"); + } + else if (this.int_1 == 2) + { + this.smethod_5("1X2"); + } + else if (this.int_1 == 1) + { + this.smethod_5("1X1"); + } + this.string_2 = this.string_2 + this.string_3 + Environment.NewLine; + } + this.bool_2 = false; + + //################################################ + byte[] SavingBytes = this.byte_0; + + //Remove fake bootloader section + if (!this.Editortable_0.IsFullBinary) + { + byte[] BufferBytes = new byte[SavingBytes.Length - 0x8000]; + for (int i = 0; i < SavingBytes.Length; i++) BufferBytes[i] = SavingBytes[i + 0x8000]; + + SavingBytes = BufferBytes; + } + + //Fix Checksums + if (!this.Editortable_0.IsFullBinary) SavingBytes = this.Editortable_0.GForm_Main_0.VerifyChecksumFWBin(SavingBytes); + if (this.Editortable_0.IsFullBinary) SavingBytes = this.Editortable_0.GForm_Main_0.VerifyChecksumFullBin(SavingBytes); + + File.Create(string_4).Dispose(); + File.WriteAllBytes(string_4, SavingBytes); + //################################################ + //string text = string_4 + "~temp"; + //string text2 = string_4 + "~temp2"; + /*File.WriteAllBytes(text, this.byte_0); + File.WriteAllText(text2, this.string_2); + using (FileStream fileStream = new FileStream(string_4, FileMode.OpenOrCreate)) + { + FlashGUI.smethod_1(this.string_0 + Environment.NewLine + this.string_1, fileStream); + } + using (ZipArchive zipArchive = ZipFile.Open(string_4, ZipArchiveMode.Update)) + { + zipArchive.CreateEntryFromFile(text, this.string_1); + zipArchive.CreateEntryFromFile(text2, "CLOG"); + } + File.Delete(text); + File.Delete(text2);*/ + DarkMessageBox.Show("Successfully Saved File!.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + } + catch + { + DarkMessageBox.Show("Failed to save file!.", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + } + + public void smethod_16(int[] int_232, int int_233, string string_4, string string_5, string[] string_6, Editortable.GEnum2 genum2_0, bool bool_5) + { + try + { + this.int_1 = int_232[0] * int_232[1]; + this.int_0 = int_233; + Editortable_0.dataGridView_0.Rows.Clear(); + Editortable_0.dataGridView_0.Columns.Clear(); + Editortable_0.dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + Editortable_0.dataGridView_0.TopLeftHeaderCell.Value = string_4; + if (bool_5) + { + Editortable_0.dataGridView_0.ColumnCount = int_232[0]; + for (int i = 0; i < int_232[1]; i++) + { + Editortable_0.dataGridView_0.Rows.Add(new object[] + { + this.smethod_18(int_233 + i * 2).ToString() + }); + Editortable_0.dataGridView_0.Rows[i].HeaderCell.Value = string_6[i].ToString(); + } + } + else + { + for (int j = 0; j < int_232[0]; j++) + { + Editortable_0.dataGridView_0.Columns.Add(string_6[j].ToString(), string_6[j].ToString()); + } + List list = new List(); + if (genum2_0 == Editortable.GEnum2.LAF_VOLTAGE) + { + for (int k = 0; k < int_232[0]; k++) + { + ushort num = (ushort)this.smethod_18(int_233 + k * 2); + list.Add((32767f / (float)num).ToString("0.00")); + } + } + else + { + if (genum2_0 != Editortable.GEnum2.INJ_DEADTIME) + { + if (genum2_0 != Editortable.GEnum2.MIN_IPW) + { + if (genum2_0 == Editortable.GEnum2.WOT_MAP) + { + for (int l = 0; l < int_232[0]; l++) + { + ushort num2 = (ushort)this.smethod_18(int_233 + l * 2); + list.Add(((double)num2 * 0.01).ToString("0.00")); + } + goto IL_258; + } + if (genum2_0 == Editortable.GEnum2.THROTTLE_REQ) + { + for (int m = 0; m < int_232[0]; m++) + { + ushort num3 = (ushort)this.smethod_18(int_233 + m * 2); + list.Add(((double)num3 * 0.005).ToString("0.00")); + } + goto IL_258; + } + for (int n = 0; n < int_232[0]; n++) + { + list.Add(this.smethod_18(int_233 + n * 2).ToString()); + } + goto IL_258; + } + } + for (int num4 = 0; num4 < int_232[0]; num4++) + { + ushort num5 = (ushort)this.smethod_18(int_233 + num4 * 2); + list.Add(((double)num5 * 0.002).ToString("0.000")); + } + } + IL_258: + Editortable_0.dataGridView_0.Rows.Add(); + for (int num6 = 0; num6 < int_232[0]; num6++) + { + DataGridViewRow dataGridViewRow = Editortable_0.dataGridView_0.Rows[0]; + dataGridViewRow.Cells[num6].Value = list[num6]; + } + Editortable_0.dataGridView_0.Rows[0].HeaderCell.Value = string_5; + } + Editortable_0.dataGridView_0.AllowUserToAddRows = false; + foreach (object obj in Editortable_0.dataGridView_0.Columns) + { + DataGridViewColumn dataGridViewColumn = (DataGridViewColumn)obj; + dataGridViewColumn.SortMode = DataGridViewColumnSortMode.NotSortable; + dataGridViewColumn.Width = 50; + } + if (!bool_5) + { + foreach (object obj2 in ((IEnumerable)Editortable_0.dataGridView_0.Rows)) + { + DataGridViewRow dataGridViewRow2 = (DataGridViewRow)obj2; + dataGridViewRow2.Height = 20; + } + } + this.smethod_33(int_232[0], Editortable.float_1[0], Editortable.float_1[1]); + this.bool_0 = true; + } + catch (Exception ex) + { + this.bool_0 = false; + DarkMessageBox.Show("Failed to load table. " + ex.ToString()); + } + } + + public bool smethod_17(string string_4) + { + if (File.Exists(string_4)) + { + try + { + this.byte_0 = File.ReadAllBytes(string_4); + + //Create a fake bootloader section + if (!Editortable_0.IsFullBinary) + { + byte[] BufferBytes = new byte[0x8000 + this.byte_0.Length]; + for (int i = 0; i < 0x8000; i++) BufferBytes[i] = 0xff; + for (int i = 0; i < this.byte_0.Length; i++) BufferBytes[0x8000 + i] = this.byte_0[i]; + + this.byte_0 = BufferBytes; + } + + //Get ECU filename (33 37 38 30 35 2D -> 37805- 'in ASCII chars') (37805-RRB-A140) + this.string_0 = ""; + for (int i = 0; i < this.byte_0.Length; i++) + { + if (this.byte_0[i] == 0x33 && + this.byte_0[i + 1] == 0x37 && + this.byte_0[i + 2] == 0x38 && + this.byte_0[i + 3] == 0x30 && + (this.byte_0[i + 4] == 0x35 || this.byte_0[i + 4] == 0x36) && + this.byte_0[i + 5] == 0x2D) + { + for (int i2 = 0; i2 < 14; i2++) + { + this.string_0 += (char)this.byte_0[i + i2]; + } + break; + } + } + return true; + + /*this.string_0 = array[0]; //37805-RRB-A140 + this.string_1 = array[1]; //Unused + + using (FileStream fileStream = new FileStream(string_4, FileMode.Open)) + { + using (ZipArchive zipArchive = new ZipArchive(fileStream, ZipArchiveMode.Read)) + { + foreach (ZipArchiveEntry zipArchiveEntry in zipArchive.Entries) + { + if (zipArchiveEntry.Name == "CALID") + { + //string[] array = File.ReadAllLines(Application.StartupPath + @"\CALID\" + string_4); + string[] array = this.smethod_0(zipArchiveEntry).Split(new string[] + { + Environment.NewLine + }, StringSplitOptions.None); + this.string_0 = array[0]; + this.string_1 = array[1]; + foreach (ZipArchiveEntry zipArchiveEntry2 in zipArchive.Entries) + { + if (zipArchiveEntry2.Name == "CLOG") + { + this.string_2 = this.smethod_0(zipArchiveEntry2); + } + if (zipArchiveEntry2.Name == array[1]) + { + using (Stream stream = zipArchiveEntry2.Open()) + { + using (BinaryReader binaryReader = new BinaryReader(stream)) + { + this.byte_0 = binaryReader.ReadBytes((int)zipArchiveEntry2.Length); + return true; + } + } + break; + } + } + } + } + } + } + Editortable_0.GForm_Main_0.method_1("Cannot load Error#1"); + return false;*/ + } + catch + { + return false; + } + } + return false; + } + + public int smethod_18(int int_232) + { + return (int)((short)((int)this.byte_0[int_232] << 8 | (int)this.byte_0[int_232 + 1])); + } + + public int smethod_19(int int_232) + { + return (int)this.byte_0[int_232]; + } + + public bool smethod_21() + { + int num = 0; + int num2 = 2; + bool flag = false; + string[] array = new string[200]; + if (this.bool_3) + { + num2 = 1; + } + if (Editortable_0.dataGridView_0.ColumnCount == 20) + { + flag = true; + int num3 = 0; + for (int i = 0; i < Editortable_0.dataGridView_0.RowCount; i++) + { + array[num3] = Editortable_0.dataGridView_0.Rows[i].Cells[0].Value.ToString(); + array[num3 + 1] = Editortable_0.dataGridView_0.Rows[i].Cells[1].Value.ToString(); + array[num3 + 2] = Editortable_0.dataGridView_0.Rows[i].Cells[2].Value.ToString(); + array[num3 + 3] = Editortable_0.dataGridView_0.Rows[i].Cells[3].Value.ToString(); + array[num3 + 4] = Editortable_0.dataGridView_0.Rows[i].Cells[4].Value.ToString(); + array[num3 + 5] = Editortable_0.dataGridView_0.Rows[i].Cells[5].Value.ToString(); + array[num3 + 6] = Editortable_0.dataGridView_0.Rows[i].Cells[6].Value.ToString(); + array[num3 + 7] = Editortable_0.dataGridView_0.Rows[i].Cells[7].Value.ToString(); + array[num3 + 8] = Editortable_0.dataGridView_0.Rows[i].Cells[8].Value.ToString(); + array[num3 + 9] = Editortable_0.dataGridView_0.Rows[i].Cells[9].Value.ToString(); + array[num3 + 10] = Editortable_0.dataGridView_0.Rows[i].Cells[10].Value.ToString(); + array[num3 + 11] = Editortable_0.dataGridView_0.Rows[i].Cells[11].Value.ToString(); + array[num3 + 12] = Editortable_0.dataGridView_0.Rows[i].Cells[12].Value.ToString(); + array[num3 + 13] = Editortable_0.dataGridView_0.Rows[i].Cells[13].Value.ToString(); + array[num3 + 14] = Editortable_0.dataGridView_0.Rows[i].Cells[14].Value.ToString(); + array[num3 + 15] = Editortable_0.dataGridView_0.Rows[i].Cells[15].Value.ToString(); + array[num3 + 16] = Editortable_0.dataGridView_0.Rows[i].Cells[16].Value.ToString(); + array[num3 + 17] = Editortable_0.dataGridView_0.Rows[i].Cells[17].Value.ToString(); + array[num3 + 18] = Editortable_0.dataGridView_0.Rows[i].Cells[18].Value.ToString(); + array[num3 + 19] = Editortable_0.dataGridView_0.Rows[i].Cells[19].Value.ToString(); + num3 += 20; + } + } + else if (Editortable_0.dataGridView_0.ColumnCount == 10) + { + object[,] array2 = new object[Editortable_0.dataGridView_0.ColumnCount, Editortable_0.dataGridView_0.RowCount]; + for (int j = 0; j < Editortable_0.dataGridView_0.RowCount; j++) + { + array2[0, j] = Editortable_0.dataGridView_0.Rows[j].Cells[0].Value.ToString(); + array2[1, j] = Editortable_0.dataGridView_0.Rows[j].Cells[1].Value.ToString(); + array2[2, j] = Editortable_0.dataGridView_0.Rows[j].Cells[2].Value.ToString(); + array2[3, j] = Editortable_0.dataGridView_0.Rows[j].Cells[3].Value.ToString(); + array2[4, j] = Editortable_0.dataGridView_0.Rows[j].Cells[4].Value.ToString(); + array2[5, j] = Editortable_0.dataGridView_0.Rows[j].Cells[5].Value.ToString(); + array2[6, j] = Editortable_0.dataGridView_0.Rows[j].Cells[6].Value.ToString(); + array2[7, j] = Editortable_0.dataGridView_0.Rows[j].Cells[7].Value.ToString(); + array2[8, j] = Editortable_0.dataGridView_0.Rows[j].Cells[8].Value.ToString(); + array2[9, j] = Editortable_0.dataGridView_0.Rows[j].Cells[9].Value.ToString(); + } + array = array2.Cast().ToArray(); + } + foreach (string s in array) + { + try + { + if (!this.bool_3) + { + int num4 = (int)(float.Parse(s, CultureInfo.InvariantCulture) * 10f); + this.int_219[num + 1] = (int)((byte)num4); + this.int_219[num] = (int)((byte)(num4 >> 8)); + num += 2; + } + else + { + int num5; + if (flag) + { + num5 = (int)(128f / (float.Parse(s, CultureInfo.InvariantCulture) / 14.7f)); + } + else + { + num5 = (int)(float.Parse(s, CultureInfo.InvariantCulture) * 10f); + } + this.int_219[num] = (int)((byte)num5); + num++; + } + } + catch + { + return false; + } + } + int num6 = this.int_0; + int[] array4 = new int[this.int_1 * num2]; + for (int l = 0; l < this.int_1 * num2; l++) + { + array4[l] = (int)this.byte_0[num6]; + num6++; + } + int num7 = 0; + foreach (int num8 in this.int_219) + { + if ((!this.bool_3 || num7 < 200) && num8.ToString() != array4[num7].ToString()) + { + this.bool_2 = true; + } + num7++; + } + return true; + } + + public bool smethod_22(string TableSize) + { + int[] arraytableint = new int[0]; + if (TableSize == "1X64") arraytableint = this.int_220; + if (TableSize == "1X15") arraytableint = this.int_221; + if (TableSize == "1X8") arraytableint = this.int_222; + if (TableSize == "1X7") arraytableint = this.int_223; + if (TableSize == "1X6") arraytableint = this.int_224; + if (TableSize == "1X5") arraytableint = this.int_225; + if (TableSize == "1X4") arraytableint = this.int_226; + if (TableSize == "1X2") arraytableint = this.int_230; + if (TableSize == "1X1") arraytableint = this.int_231; + + int num = 0; + int num2 = 0; + for (int i = 0; i < Editortable_0.dataGridView_0.ColumnCount; i++) + { + try + { + if (TableSize == "1X64") num2 = (int)float.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[i].Value.ToString(), CultureInfo.InvariantCulture); + if (TableSize == "1X15") num2 = (int)(32767f / float.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[i].Value.ToString(), CultureInfo.InvariantCulture)); + if (TableSize == "1X8") num2 = (int)(float.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[i].Value.ToString(), CultureInfo.InvariantCulture) / 0.002f); + if (TableSize == "1X7") num2 = (int)(float.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[i].Value.ToString(), CultureInfo.InvariantCulture) / 0.01f); + if (TableSize == "1X6") num2 = (int)(float.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[i].Value.ToString(), CultureInfo.InvariantCulture) / 0.005f); + if (TableSize == "1X5") + { + if (Editortable.genum2_0 == Editortable.GEnum2.INJ_DEADTIME) + { + num2 = (int)((double)float.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[i].Value.ToString(), CultureInfo.InvariantCulture) / 0.002); + } + else + { + num2 = (int)float.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[i].Value.ToString(), CultureInfo.InvariantCulture); + } + } + if (TableSize == "1X4") + { + if (Editortable.genum2_0 == Editortable.GEnum2.VTEC_PARAMS) + { + num2 = (int)float.Parse(Editortable_0.dataGridView_0.Rows[i].Cells[0].Value.ToString(), CultureInfo.InvariantCulture); + } + else + { + num2 = (int)float.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[i].Value.ToString(), CultureInfo.InvariantCulture); + } + } + if (TableSize == "1X2") + { + double numBuf = double.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[0].Value.ToString(), CultureInfo.InvariantCulture); + if (Editortable_0.dataGridView_0.Columns[0].HeaderText == "MPH") numBuf = Math.Floor(numBuf * 1.609344); + num2 = (int)numBuf; + } + if (TableSize == "1X1") + { + if (Editortable.genum2_0 == Editortable.GEnum2.MIN_IPW) + { + double numBuf = double.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[0].Value.ToString(), CultureInfo.InvariantCulture) / 0.002; + num2 = (int)numBuf; + } + else + { + double numBuf = double.Parse(Editortable_0.dataGridView_0.Rows[0].Cells[0].Value.ToString(), CultureInfo.InvariantCulture); + if (Editortable_0.dataGridView_0.Columns[0].HeaderText == "MPH") numBuf = Math.Floor(num * 1.609344); + num2 = (int)num; + } + } + + if (TableSize == "1X2" || TableSize == "1X1") num = 0; + + arraytableint[num + 1] = (int)((byte) num2); + arraytableint[num] = (int)((byte)(num2 >> 8)); + + num += 2; + } + catch + { + return false; + } + } + + int num3 = this.int_0; + int[] array = new int[this.int_1 * 2]; + for (int j = 0; j < this.int_1 * 2; j++) + { + array[j] = (int)this.byte_0[num3]; + num3++; + } + + int num4 = 0; + foreach (int num5 in arraytableint) + { + if (num5.ToString() != array[num4].ToString()) this.bool_2 = true; + num4++; + } + return true; + } + + public bool smethod_31() + { + if (this.int_1 != 0 && this.int_0 != 0) + { + if (this.int_1 == 200) + { + return this.smethod_21(); + } + if (this.int_1 == 64) + { + return this.smethod_22("1X64"); + } + if (this.int_1 == 15) + { + return this.smethod_22("1X15"); + } + if (this.int_1 == 8) + { + return this.smethod_22("1X8"); + } + if (this.int_1 == 7) + { + return this.smethod_22("1X7"); + } + if (this.int_1 == 6) + { + return this.smethod_22("1X6"); + } + if (this.int_1 == 5) + { + return this.smethod_22("1X5"); + } + if (this.int_1 == 4) + { + return this.smethod_22("1X4"); + } + if (this.int_1 == 2) + { + return this.smethod_22("1X2"); + } + if (this.int_1 == 1) + { + return this.smethod_22("1X1"); + } + } + return false; + } + + public void smethod_32() + { + Editortable_0.dataGridView_0.ReadOnly = true; + if (this.bool_0) + { + if (this.string_0.Contains("RRB")) + { + if (!this.smethod_31()) + { + this.bool_2 = false; + DarkMessageBox.Show("Table changes fail"); + return; + } + } + else if (this.string_0.Contains("S2K") && !this.smethod_31()) + { + this.bool_2 = false; + DarkMessageBox.Show("Table changes fail"); + } + } + } + + public void smethod_33(int int_232, float float_0, float float_1) + { + for (int i = 0; i < int_232; i++) + { + foreach (object obj in ((IEnumerable)Editortable_0.dataGridView_0.Rows)) + { + DataGridViewRow dataGridViewRow = (DataGridViewRow)obj; + try + { + float float_2 = float.Parse(dataGridViewRow.Cells[i].Value.ToString()); + dataGridViewRow.Cells[i].Style.BackColor = this.smethod_34(float_2, float_1, float_0); + } + catch + { + dataGridViewRow.Cells[i].Style.BackColor = System.Drawing.SystemColors.ControlLight; + //dataGridViewRow.Cells[i].Style.BackColor = Color.White; + } + } + } + } + + public Color smethod_34(float float_0, float float_1, float float_2) + { + Color result; + try + { + int num = (int)(1023f * (float_0 - float_1) / (float_2 - float_1)); + if (num < 256) + { + result = Color.FromArgb(255, num, 0); + } + else if (num < 512) + { + num -= 256; + result = Color.FromArgb(255 - num, 255, 0); + } + else if (num < 768) + { + num -= 512; + result = Color.FromArgb(0, 255, num); + } + else + { + num -= 768; + result = Color.FromArgb(0, 255 - num, 255); + } + } + catch + { + result = Color.White; + } + return result; + } + + public T[,] smethod_35(T[] gparam_0, int int_232, int int_233) + { + T[,] array = new T[int_232, int_233]; + for (int i = 0; i < int_232; i++) + { + for (int j = 0; j < int_233; j++) + { + array[i, j] = gparam_0[i * int_233 + j]; + } + } + return array; + } + + public void smethod_36() + { + this.int_2 = 47458; + this.int_3 = 0; + this.int_4 = 0; + this.int_5 = new int[] + { + 1, + 4 + }; + this.int_6 = 85312; + this.int_25 = 0; + this.int_26 = 0; + this.int_27 = new int[] + { + 2, + 1 + }; + this.int_30 = 90452; + this.int_31 = 0; + this.int_32 = 0; + this.int_33 = new int[] + { + 5, + 1 + }; + this.int_99 = 94604; + this.int_100 = 78380; + this.int_101 = 96212; + this.int_102 = new int[] + { + 10, + 20 + }; + this.int_103 = 94164; + this.int_104 = 78380; + this.int_105 = 94104; + this.int_106 = new int[] + { + 10, + 20 + }; + this.int_107 = 89972; + this.int_108 = 78380; + this.int_109 = 96212; + this.int_110 = new int[] + { + 10, + 20 + }; + this.int_111 = 89572; + this.int_112 = 78380; + this.int_113 = 94104; + this.int_114 = new int[] + { + 10, + 20 + }; + } + + public void smethod_37() + { + //Load RRB ROM + this.int_2 = 46530; //vtec engagement?? + this.int_3 = 0; + this.int_4 = 0; + this.int_5 = new int[] + { + 1, + 4 + }; + this.int_6 = 71296; + this.int_7 = 71304; + this.int_8 = 71312; + this.int_9 = 71320; + this.int_10 = 71328; + this.int_11 = 71332; + this.int_12 = 71348; + this.int_13 = 71356; + this.int_14 = 46216; + this.int_23 = 46216; + this.int_24 = 46218; + this.int_25 = 0; + this.int_26 = 0; + this.int_27 = new int[] + { + 2, + 1 + }; + this.int_28 = 47690; + this.int_29 = new int[] + { + 1, + 1 + }; + this.int_30 = 76020; + this.int_31 = 0; + this.int_32 = 0; + this.int_33 = new int[] + { + 5, + 1 + }; + this.int_34 = 66002; + this.int_35 = 0; + this.int_36 = 66258; + this.int_37 = new int[] + { + 64, + 1 + }; + this.int_38 = 101836; + this.int_39 = 87668; + this.int_40 = 87628; + this.int_41 = new int[] + { + 10, + 20 + }; + this.int_42 = 102236; + this.int_43 = 87668; + this.int_44 = 87588; + this.int_45 = new int[] + { + 10, + 20 + }; + this.int_46 = 102636; + this.int_47 = 0; + this.int_48 = 102716; + this.int_49 = new int[] + { + 10, + 20 + }; + this.int_50 = 102676; + this.int_51 = 0; + this.int_52 = 102756; + this.int_53 = new int[] + { + 10, + 20 + }; + this.int_54 = 85588; + this.int_55 = 87668; + this.int_56 = 102716; + this.int_57 = new int[] + { + 10, + 20 + }; + this.int_58 = 85988; + this.int_59 = 87668; + this.int_60 = 102716; + this.int_61 = new int[] + { + 10, + 20 + }; + this.int_62 = 86388; + this.int_63 = 87668; + this.int_64 = 102716; + this.int_65 = new int[] + { + 10, + 20 + }; + this.int_66 = 86788; + this.int_67 = 87668; + this.int_68 = 102716; + this.int_69 = new int[] + { + 10, + 20 + }; + this.int_70 = 87188; + this.int_71 = 87668; + this.int_72 = 102716; + this.int_73 = new int[] + { + 10, + 20 + }; + this.int_74 = 83588; + this.int_75 = 87668; + this.int_76 = 102756; + this.int_77 = new int[] + { + 10, + 20 + }; + this.int_78 = 83988; + this.int_79 = 87668; + this.int_80 = 102756; + this.int_81 = new int[] + { + 10, + 20 + }; + this.int_82 = 84388; + this.int_83 = 87668; + this.int_84 = 102756; + this.int_85 = new int[] + { + 10, + 20 + }; + this.int_86 = 84788; + this.int_87 = 87668; + this.int_88 = 102756; + this.int_89 = new int[] + { + 10, + 20 + }; + this.int_90 = 85188; + this.int_91 = 87668; + this.int_92 = 102756; + this.int_93 = new int[] + { + 10, + 20 + }; + this.int_115 = 0; + this.int_116 = 72672; + this.int_119 = 0; + this.int_120 = 75908; + this.int_117 = 72688; + this.int_118 = new int[] + { + 8, + 1 + }; + this.int_121 = 75924; + this.int_122 = new int[] + { + 8, + 1 + }; + this.int_123 = 102756; + this.int_124 = 87668; + this.int_125 = 102716; + this.int_126 = 87668; + this.int_127 = 74034; + this.int_128 = new int[] + { + 20, + 10 + }; + this.int_129 = 74434; + this.int_130 = new int[] + { + 20, + 10 + }; + this.int_131 = 75034; + this.int_132 = new int[] + { + 20, + 10 + }; + this.int_133 = 74234; + this.int_134 = new int[] + { + 20, + 10 + }; + this.int_135 = 74634; + this.int_136 = new int[] + { + 20, + 10 + }; + this.int_137 = 74834; + this.int_138 = new int[] + { + 20, + 10 + }; + this.int_139 = 71540; + this.int_140 = new int[] + { + 15, + 1 + }; + this.int_141 = 79456; + this.int_142 = 87668; + this.int_143 = 102716; + this.int_144 = new int[] + { + 10, + 20 + }; + this.int_145 = 79856; + this.int_146 = 87668; + this.int_147 = 102716; + this.int_148 = new int[] + { + 10, + 20 + }; + this.int_149 = 80256; + this.int_150 = 87668; + this.int_151 = 102716; + this.int_152 = new int[] + { + 10, + 20 + }; + this.int_153 = 80656; + this.int_154 = 87668; + this.int_155 = 102716; + this.int_156 = new int[] + { + 10, + 20 + }; + this.int_157 = 81056; + this.int_158 = 87668; + this.int_159 = 102716; + this.int_160 = new int[] + { + 10, + 20 + }; + this.int_161 = 77456; + this.int_162 = 87668; + this.int_163 = 102756; + this.int_164 = new int[] + { + 10, + 20 + }; + this.int_165 = 77856; + this.int_166 = 87668; + this.int_167 = 102756; + this.int_168 = new int[] + { + 10, + 20 + }; + this.int_169 = 78256; + this.int_170 = 87668; + this.int_171 = 102756; + this.int_172 = new int[] + { + 10, + 20 + }; + this.int_173 = 78656; + this.int_174 = 87668; + this.int_175 = 102756; + this.int_176 = new int[] + { + 10, + 20 + }; + this.int_177 = 79056; + this.int_178 = 87668; + this.int_179 = 102756; + this.int_180 = new int[] + { + 10, + 20 + }; + this.int_189 = 89604; + this.int_190 = 87668; + this.int_191 = 102716; + this.int_192 = new int[] + { + 10, + 20 + }; + this.int_193 = 89204; + this.int_194 = 87668; + this.int_195 = 102756; + this.int_196 = new int[] + { + 10, + 20 + }; + this.int_181 = 77056; + this.int_182 = 87668; + this.int_183 = 102716; + this.int_184 = new int[] + { + 10, + 20 + }; + this.int_185 = 77256; + this.int_186 = 87668; + this.int_187 = 102756; + this.int_188 = new int[] + { + 10, + 20 + }; + this.int_197 = 64620; + this.int_199 = 64636; + this.int_201 = 65076; + this.int_203 = 65100; + this.int_205 = 65636; + this.int_207 = 68956; + this.int_211 = 69056; + this.int_198 = new int[] + { + 8, + 1 + }; + this.int_200 = new int[] + { + 8, + 1 + }; + this.int_202 = new int[] + { + 6, + 1 + }; + this.int_204 = new int[] + { + 6, + 1 + }; + this.int_206 = new int[] + { + 7, + 1 + }; + this.int_208 = new int[] + { + 10, + 5 + }; + this.int_207 = 68956; + this.int_209 = 69506; + this.int_210 = 69556; + this.int_214 = new int[] + { + 15, + 15 + }; + this.int_211 = 69056; + this.int_212 = 69526; + this.int_213 = 69566; + this.int_215 = 70982; + this.int_216 = 44674; + this.int_217 = 49780; + } + + public int int_0; + public int int_1; + public bool bool_0 = false; + public bool bool_1 = false; + public string string_0; + public string string_1; + public byte[] byte_0; + public string string_2; + public string string_3; + public bool bool_2 = false; + public bool bool_3 = false; + public int int_2; + public int int_3; + public int int_4; + public int[] int_5; + public int int_6; + public int int_7; + public int int_8; + public int int_9; + public int int_10; + public int int_11; + public int int_12; + public int int_13; + public int int_14; + public int int_15; + public int int_16; + public int int_17; + public int int_18; + public int int_19; + public int int_20; + public int int_21; + public int int_22; + public int int_23; + public int int_24; + public int int_25; + public int int_26; + public int[] int_27; + public int int_28; + public int[] int_29; + public int int_30; + public int int_31; + public int int_32; + public int[] int_33; + public int int_34; + public int int_35; + public int int_36; + public int[] int_37; + public int int_38; + public int int_39; + public int int_40; + public int[] int_41; + public int int_42; + public int int_43; + public int int_44; + public int[] int_45; + public int int_46; + public int int_47; + public int int_48; + public int[] int_49; + public int int_50; + public int int_51; + public int int_52; + public int[] int_53; + public int int_54; + public int int_55; + public int int_56; + public int[] int_57; + public int int_58; + public int int_59; + public int int_60; + public int[] int_61; + public int int_62; + public int int_63; + public int int_64; + public int[] int_65; + public int int_66; + public int int_67; + public int int_68; + public int[] int_69; + public int int_70; + public int int_71; + public int int_72; + public int[] int_73; + public int int_74; + public int int_75; + + // Token: 0x040016A7 RID: 5799 + public int int_76; + + // Token: 0x040016A8 RID: 5800 + public int[] int_77; + + // Token: 0x040016A9 RID: 5801 + public int int_78; + + // Token: 0x040016AA RID: 5802 + public int int_79; + + // Token: 0x040016AB RID: 5803 + public int int_80; + + // Token: 0x040016AC RID: 5804 + public int[] int_81; + + // Token: 0x040016AD RID: 5805 + public int int_82; + + // Token: 0x040016AE RID: 5806 + public int int_83; + + // Token: 0x040016AF RID: 5807 + public int int_84; + + // Token: 0x040016B0 RID: 5808 + public int[] int_85; + + // Token: 0x040016B1 RID: 5809 + public int int_86; + + // Token: 0x040016B2 RID: 5810 + public int int_87; + + // Token: 0x040016B3 RID: 5811 + public int int_88; + + // Token: 0x040016B4 RID: 5812 + public int[] int_89; + + // Token: 0x040016B5 RID: 5813 + public int int_90; + + // Token: 0x040016B6 RID: 5814 + public int int_91; + + // Token: 0x040016B7 RID: 5815 + public int int_92; + + // Token: 0x040016B8 RID: 5816 + public int[] int_93; + + // Token: 0x040016B9 RID: 5817 + public int[] int_94 = new int[200]; + + // Token: 0x040016BA RID: 5818 + public int[] int_95 = new int[200]; + + // Token: 0x040016BB RID: 5819 + public int[] int_96 = new int[200]; + + // Token: 0x040016BC RID: 5820 + public int[] int_97 = new int[50]; + + // Token: 0x040016BD RID: 5821 + public int[] int_98 = new int[225]; + + // Token: 0x040016BE RID: 5822 + public int int_99; + + // Token: 0x040016BF RID: 5823 + public int int_100; + + // Token: 0x040016C0 RID: 5824 + public int int_101; + + // Token: 0x040016C1 RID: 5825 + public int[] int_102; + + // Token: 0x040016C2 RID: 5826 + public int int_103; + + // Token: 0x040016C3 RID: 5827 + public int int_104; + + // Token: 0x040016C4 RID: 5828 + public int int_105; + + // Token: 0x040016C5 RID: 5829 + public int[] int_106; + + // Token: 0x040016C6 RID: 5830 + public int int_107; + + // Token: 0x040016C7 RID: 5831 + public int int_108; + + // Token: 0x040016C8 RID: 5832 + public int int_109; + + // Token: 0x040016C9 RID: 5833 + public int[] int_110; + + // Token: 0x040016CA RID: 5834 + public int int_111; + + // Token: 0x040016CB RID: 5835 + public int int_112; + + // Token: 0x040016CC RID: 5836 + public int int_113; + + // Token: 0x040016CD RID: 5837 + public int[] int_114; + + // Token: 0x040016CE RID: 5838 + public int int_115; + + // Token: 0x040016CF RID: 5839 + public int int_116; + + // Token: 0x040016D0 RID: 5840 + public int int_117; + + // Token: 0x040016D1 RID: 5841 + public int[] int_118; + + // Token: 0x040016D2 RID: 5842 + public int int_119; + + // Token: 0x040016D3 RID: 5843 + public int int_120; + + // Token: 0x040016D4 RID: 5844 + public int int_121; + + // Token: 0x040016D5 RID: 5845 + public int[] int_122; + + // Token: 0x040016D6 RID: 5846 + public int int_123; + + // Token: 0x040016D7 RID: 5847 + public int int_124; + + // Token: 0x040016D8 RID: 5848 + public int int_125; + + // Token: 0x040016D9 RID: 5849 + public int int_126; + + // Token: 0x040016DA RID: 5850 + public int int_127; + + // Token: 0x040016DB RID: 5851 + public int[] int_128; + + // Token: 0x040016DC RID: 5852 + public int int_129; + + // Token: 0x040016DD RID: 5853 + public int[] int_130; + + // Token: 0x040016DE RID: 5854 + public int int_131; + + // Token: 0x040016DF RID: 5855 + public int[] int_132; + + // Token: 0x040016E0 RID: 5856 + public int int_133; + + // Token: 0x040016E1 RID: 5857 + public int[] int_134; + + // Token: 0x040016E2 RID: 5858 + public int int_135; + + // Token: 0x040016E3 RID: 5859 + public int[] int_136; + + // Token: 0x040016E4 RID: 5860 + public int int_137; + + // Token: 0x040016E5 RID: 5861 + public int[] int_138; + + // Token: 0x040016E6 RID: 5862 + public int int_139; + + // Token: 0x040016E7 RID: 5863 + public int[] int_140; + + // Token: 0x040016E8 RID: 5864 + public int int_141; + + // Token: 0x040016E9 RID: 5865 + public int int_142; + + // Token: 0x040016EA RID: 5866 + public int int_143; + + // Token: 0x040016EB RID: 5867 + public int[] int_144; + + // Token: 0x040016EC RID: 5868 + public int int_145; + + // Token: 0x040016ED RID: 5869 + public int int_146; + + // Token: 0x040016EE RID: 5870 + public int int_147; + + // Token: 0x040016EF RID: 5871 + public int[] int_148; + + // Token: 0x040016F0 RID: 5872 + public int int_149; + + // Token: 0x040016F1 RID: 5873 + public int int_150; + + // Token: 0x040016F2 RID: 5874 + public int int_151; + + // Token: 0x040016F3 RID: 5875 + public int[] int_152; + + // Token: 0x040016F4 RID: 5876 + public int int_153; + + // Token: 0x040016F5 RID: 5877 + public int int_154; + + // Token: 0x040016F6 RID: 5878 + public int int_155; + + // Token: 0x040016F7 RID: 5879 + public int[] int_156; + + // Token: 0x040016F8 RID: 5880 + public int int_157; + + // Token: 0x040016F9 RID: 5881 + public int int_158; + + // Token: 0x040016FA RID: 5882 + public int int_159; + + // Token: 0x040016FB RID: 5883 + public int[] int_160; + + // Token: 0x040016FC RID: 5884 + public int int_161; + + // Token: 0x040016FD RID: 5885 + public int int_162; + + // Token: 0x040016FE RID: 5886 + public int int_163; + + // Token: 0x040016FF RID: 5887 + public int[] int_164; + + // Token: 0x04001700 RID: 5888 + public int int_165; + + // Token: 0x04001701 RID: 5889 + public int int_166; + + // Token: 0x04001702 RID: 5890 + public int int_167; + + // Token: 0x04001703 RID: 5891 + public int[] int_168; + + // Token: 0x04001704 RID: 5892 + public int int_169; + + // Token: 0x04001705 RID: 5893 + public int int_170; + + // Token: 0x04001706 RID: 5894 + public int int_171; + + // Token: 0x04001707 RID: 5895 + public int[] int_172; + + // Token: 0x04001708 RID: 5896 + public int int_173; + + // Token: 0x04001709 RID: 5897 + public int int_174; + + // Token: 0x0400170A RID: 5898 + public int int_175; + + // Token: 0x0400170B RID: 5899 + public int[] int_176; + + // Token: 0x0400170C RID: 5900 + public int int_177; + + // Token: 0x0400170D RID: 5901 + public int int_178; + + // Token: 0x0400170E RID: 5902 + public int int_179; + + // Token: 0x0400170F RID: 5903 + public int[] int_180; + + // Token: 0x04001710 RID: 5904 + public int int_181; + + // Token: 0x04001711 RID: 5905 + public int int_182; + + // Token: 0x04001712 RID: 5906 + public int int_183; + + // Token: 0x04001713 RID: 5907 + public int[] int_184; + + // Token: 0x04001714 RID: 5908 + public int int_185; + + // Token: 0x04001715 RID: 5909 + public int int_186; + + // Token: 0x04001716 RID: 5910 + public int int_187; + + // Token: 0x04001717 RID: 5911 + public int[] int_188; + + // Token: 0x04001718 RID: 5912 + public int int_189; + + // Token: 0x04001719 RID: 5913 + public int int_190; + + // Token: 0x0400171A RID: 5914 + public int int_191; + + // Token: 0x0400171B RID: 5915 + public int[] int_192; + + // Token: 0x0400171C RID: 5916 + public int int_193; + + // Token: 0x0400171D RID: 5917 + public int int_194; + + // Token: 0x0400171E RID: 5918 + public int int_195; + + // Token: 0x0400171F RID: 5919 + public int[] int_196; + + // Token: 0x04001720 RID: 5920 + public int int_197; + + // Token: 0x04001721 RID: 5921 + public int[] int_198; + + // Token: 0x04001722 RID: 5922 + public int int_199; + + // Token: 0x04001723 RID: 5923 + public int[] int_200; + + // Token: 0x04001724 RID: 5924 + public int int_201; + + // Token: 0x04001725 RID: 5925 + public int[] int_202; + + // Token: 0x04001726 RID: 5926 + public int int_203; + + // Token: 0x04001727 RID: 5927 + public int[] int_204; + + // Token: 0x04001728 RID: 5928 + public int int_205; + + // Token: 0x04001729 RID: 5929 + public int[] int_206; + + // Token: 0x0400172A RID: 5930 + public int int_207; + + // Token: 0x0400172B RID: 5931 + public int[] int_208; + + // Token: 0x0400172C RID: 5932 + public int int_209; + + // Token: 0x0400172D RID: 5933 + public int int_210; + + // Token: 0x0400172E RID: 5934 + public int int_211; + + // Token: 0x0400172F RID: 5935 + public int int_212; + + // Token: 0x04001730 RID: 5936 + public int int_213; + + // Token: 0x04001731 RID: 5937 + public int[] int_214; + + // Token: 0x04001732 RID: 5938 + public int int_215; + + // Token: 0x04001733 RID: 5939 + public int int_216; + + // Token: 0x04001734 RID: 5940 + public int int_217; + + // Token: 0x04001735 RID: 5941 + public bool bool_4 = false; + + // Token: 0x04001736 RID: 5942 + public int[] int_218 = new int[450]; + + // Token: 0x04001737 RID: 5943 + public int[] int_219 = new int[400]; + + // Token: 0x04001738 RID: 5944 + public int[] int_220 = new int[128]; + + // Token: 0x04001739 RID: 5945 + public int[] int_221 = new int[30]; + + // Token: 0x0400173A RID: 5946 + public int[] int_222 = new int[16]; + + // Token: 0x0400173B RID: 5947 + public int[] int_223 = new int[14]; + + // Token: 0x0400173C RID: 5948 + public int[] int_224 = new int[12]; + + // Token: 0x0400173D RID: 5949 + public int[] int_225 = new int[10]; + + // Token: 0x0400173E RID: 5950 + public int[] int_226 = new int[8]; + + // Token: 0x0400173F RID: 5951 + public int[] int_227 = new int[7]; + + // Token: 0x04001740 RID: 5952 + public int[] int_228 = new int[6]; + + // Token: 0x04001741 RID: 5953 + public int[] int_229 = new int[5]; + + // Token: 0x04001742 RID: 5954 + public int[] int_230 = new int[4]; + + // Token: 0x04001743 RID: 5955 + public int[] int_231 = new int[2]; + + // Token: 0x020000F8 RID: 248 + [CompilerGenerated] + private sealed class Class40 + { + // Token: 0x06000F06 RID: 3846 RVA: 0x00004E37 File Offset: 0x00003037 + internal Class40() + { + } + + // Token: 0x06000F07 RID: 3847 RVA: 0x0000B4B5 File Offset: 0x000096B5 + internal void method_0(object object_0) + { + this.taskCompletionSource_0.SetResult(null); + } + + // Token: 0x04001746 RID: 5958 + public TaskCompletionSource taskCompletionSource_0; + } +} diff --git a/Class_RWD.cs b/Class_RWD.cs index b2dc946..fff7636 100644 --- a/Class_RWD.cs +++ b/Class_RWD.cs @@ -141,7 +141,6 @@ static class Class_RWD { GForm_Main_0.method_1("Checksum is not 4bytes long!"); } - //Console.WriteLine(Get_rwd_checksum(dataEncrypted, 0, (uint)dataEncrypted.Length).ToString("X8")); //Save Encrypted rwd firmware string ThisPath = Path.GetDirectoryName(f_name) + @"\" + Path.GetFileNameWithoutExtension(f_name) + ".rwd"; @@ -153,10 +152,6 @@ static class Class_RWD CompressFile(ThisPath, ThisPath + ".gz"); } - /*'39990-TLA-A030': { #CR-V thanks to joe1 - 'checksum-offsets': [(0, 0x6bf80), (1, 0x6bffe)] #original bin checksums are 0x419b at offset 0x6FF80 and 0x24ef at 0x6FFFE, but since we start the bin from 0x4000 after bootloader, we offset the checksum accordingly - },*/ - //###################################################################################################### //###################################################################################################### public static void LoadRWD(string f_name, bool FullDecrypt, bool Saving) @@ -691,8 +686,7 @@ static class Class_RWD string search_exact = search_value.ToUpper(); string search_padded = search_value_padded.ToUpper(); GForm_Main_0.method_1("Searching:"); - GForm_Main_0.method_1(search_exact); - GForm_Main_0.method_1(search_padded); + GForm_Main_0.method_1("'" + search_exact + "' and '" + search_padded + "'"); string[] operators = new string[8] { "fn:^", //XOR @@ -740,7 +734,6 @@ static class Class_RWD int CurrentDone = 0; foreach (string Line in key_perms) { - //Console.WriteLine(Line); string k1 = ""; string k2 = ""; string k3 = ""; @@ -842,7 +835,6 @@ static class Class_RWD GForm_Main_0.ResetProgressBar(); - GForm_Main_0.method_1(Environment.NewLine); foreach (string cipher in display_ciphers) { GForm_Main_0.method_1(String.Format("cipher: {0}", cipher)); } diff --git a/Editortable.cs b/Editortable.cs new file mode 100644 index 0000000..43d8a32 --- /dev/null +++ b/Editortable.cs @@ -0,0 +1,3520 @@ +using System; +using System.IO; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; +using DarkUI.Controls; +using DarkUI.Forms; + +public class Editortable : DarkForm +{ + private string vssUnits_0 = "KPH"; + private Editortable Editortable_0; + private IContainer icontainer_0; + private IContainer icontainer_1; + public bool bool_0 = true; + public static float float_0 = 1f; + private Timer timer_0 = new Timer(); + private List list_0 = new List(); + public string[] string_0 = new string[] { "6.00", "8.00", "12.00", "14.00", "16.00" }; + public string[] string_1; + public string[] string_2; + public string string_3; + public string[] string_4; + public string[] string_5; + private string[] string_6; + private string[] string_7; + public static float[] float_1 = new float[2]; + private TableLayoutPanel tableLayoutPanel1; + private DarkTreeView treeView1; + private DarkGroupBox groupBox1; + private DarkGroupBox groupBox2; + public DataGridView dataGridView_0; + internal ClassEditor ClassEditor_0; + public string string_8; + public bool IsFullBinary = true; + public static ImageList imageList_0; + public static GEnum2 genum2_0 = GEnum2.TIMING_LOW; + public int int_0; + public int int_1; + public int LastPackageChecksum; + private SplitContainer splitContainer1; + private DarkButton button2; + private DarkButton button1; + private OpenFileDialog openFileDialog1; + private SaveFileDialog saveFileDialog1; + public GForm_Main GForm_Main_0; + public System.Windows.Forms.Timer timer_1 = new System.Windows.Forms.Timer(); + + //internal Editortable(ref Class10_settings class10_1, ref Class39 Class39_1) + internal Editortable(ref GForm_Main GForm_Main_1) + { + GForm_Main_0 = GForm_Main_1; + + this.timer_1.Interval = 0xbb8; + this.timer_1.Tick += new EventHandler(this.timer_1_Tick); + + string[] textArray2 = new string[15]; + textArray2[0] = "1233"; + textArray2[1] = "1669"; + textArray2[2] = "2037"; + textArray2[3] = "2495"; + textArray2[4] = "2750"; + textArray2[5] = "2890"; + textArray2[6] = "3015"; + textArray2[7] = "3126"; + textArray2[8] = "3225"; + textArray2[9] = "3356"; + textArray2[10] = "3505"; + textArray2[11] = "3629"; + textArray2[12] = "3736"; + textArray2[13] = "4009"; + textArray2[14] = "4188"; + this.string_1 = textArray2; + this.string_2 = new string[] { "1", "2", "3", "4", "5-6" }; + this.string_3 = "Speed Limiter"; + this.string_4 = new string[] { "Enable Low", "Disable Low", "Enable High", "Disable High" }; + this.string_5 = new string[] { "Rev Limit" }; + string[] textArray6 = new string[0x42]; + textArray6[0] = "Mass Airflow Conversion Curve"; + textArray6[1] = "LAF Voltage to Lambda"; + textArray6[2] = "MAF Load Limit"; + textArray6[3] = "AFM Fuel"; + textArray6[4] = "--Fuel Value 1"; + textArray6[5] = "--Fuel Value 2"; + textArray6[6] = "Injector Voltage Compensation"; + textArray6[7] = "Minimum IPW"; + textArray6[8] = "Lambda Target Low Cam"; + textArray6[9] = "--Target 1"; + textArray6[10] = "--Target 2"; + textArray6[11] = "--Target 3"; + textArray6[12] = "Lambda Target High Cam"; + textArray6[13] = "--Target 1"; + textArray6[14] = "--Target 2"; + textArray6[15] = "--Target 3"; + textArray6[0x10] = "Cam Angle VTC Low"; + textArray6[0x11] = "Ignition Timing VTC Low"; + textArray6[0x12] = "--00\x00b0"; + textArray6[0x13] = "--10\x00b0"; + textArray6[20] = "--20\x00b0"; + textArray6[0x15] = "--30\x00b0"; + textArray6[0x16] = "--40\x00b0"; + textArray6[0x17] = "Knock Limit Low"; + textArray6[0x18] = "--00\x00b0"; + textArray6[0x19] = "--10\x00b0"; + textArray6[0x1a] = "--20\x00b0"; + textArray6[0x1b] = "--30\x00b0"; + textArray6[0x1c] = "--40\x00b0"; + textArray6[0x1d] = "Knock Retard Low"; + textArray6[30] = "Knock Sensitivity Low"; + textArray6[0x1f] = "Cam Angle VTC High"; + textArray6[0x20] = "Ignition Timing VTC High"; + textArray6[0x21] = "--00\x00b0"; + textArray6[0x22] = "--10\x00b0"; + textArray6[0x23] = "--20\x00b0"; + textArray6[0x24] = "--30\x00b0"; + textArray6[0x25] = "--40\x00b0"; + textArray6[0x26] = "Knock Limit High"; + textArray6[0x27] = "--00\x00b0"; + textArray6[40] = "--10\x00b0"; + textArray6[0x29] = "--20\x00b0"; + textArray6[0x2a] = "--30\x00b0"; + textArray6[0x2b] = "--40\x00b0"; + textArray6[0x2c] = "Knock Retard High"; + textArray6[0x2d] = "Knock Sensitivity High"; + textArray6[0x2e] = "VTEC Engagement"; + textArray6[0x2f] = "Revlimiter"; + textArray6[0x30] = "--Revlimiter 2"; + textArray6[0x31] = "--Revlimiter 3"; + textArray6[50] = "--Revlimiter 4"; + textArray6[0x33] = "--Revlimiter 5"; + textArray6[0x34] = "--Revlimiter 6"; + textArray6[0x35] = "--Revlimiter 7"; + textArray6[0x36] = "--Revlimiter 8"; + textArray6[0x37] = "--Revlimiter 9"; + textArray6[0x38] = "--Revlimiter 10"; + textArray6[0x39] = "Speedlimiter"; + textArray6[0x3a] = "Idle Speed"; + textArray6[0x3b] = "Post Start Idle Speed"; + textArray6[60] = "WOT Determiniation (MAP)"; + textArray6[0x3d] = "WOT Determiniation 1(TPS)"; + textArray6[0x3e] = "WOT Determiniation 2(TPS)"; + textArray6[0x3f] = "Overrun Fuel Cut(Gear Determiniation)"; + textArray6[0x40] = "Throttle Response 1"; + textArray6[0x41] = "Throttle Response 2"; + this.string_6 = textArray6; + this.string_7 = new string[] { "Fuel Low Cam", "Fuel High Cam", "Ignition Timing Low Cam", "Ignition Timing High Cam", "VTEC Engagement", "Revlimiter", "Injector Voltage Compensation" }; + this.int_1 = 1; + this.InitializeComponent(); + + //Class39_0 = Class39_1; + Editortable_0 = this; + + if (this.ClassEditor_0 != null) this.ClassEditor_0 = null; + this.ClassEditor_0 = new ClassEditor(ref Editortable_0); + } + + private void timer_1_Tick(object sender, EventArgs e) + { + } + + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Editortable)); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.groupBox1 = new DarkUI.Controls.DarkGroupBox(); + this.dataGridView_0 = new System.Windows.Forms.DataGridView(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.groupBox2 = new DarkUI.Controls.DarkGroupBox(); + this.button2 = new DarkUI.Controls.DarkButton(); + this.button1 = new DarkUI.Controls.DarkButton(); + this.treeView1 = new DarkUI.Controls.DarkTreeView(); + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); + this.tableLayoutPanel1.SuspendLayout(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView_0)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.BackColor = System.Drawing.SystemColors.ControlDarkDark; + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 260F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.groupBox1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.splitContainer1, 0, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 186F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(812, 433); + this.tableLayoutPanel1.TabIndex = 1; + // + // groupBox1 + // + this.groupBox1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.groupBox1.Controls.Add(this.dataGridView_0); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox1.Location = new System.Drawing.Point(262, 2); + this.groupBox1.Margin = new System.Windows.Forms.Padding(2); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(2); + this.groupBox1.Size = new System.Drawing.Size(601, 429); + this.groupBox1.TabIndex = 3; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Table:"; + // + // dataGridView_0 + // + this.dataGridView_0.AllowUserToAddRows = false; + this.dataGridView_0.AllowUserToDeleteRows = false; + this.dataGridView_0.BackgroundColor = System.Drawing.SystemColors.ControlDarkDark; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.ControlDarkDark; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridView_0.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dataGridView_0.ColumnHeadersHeight = 20; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.ControlLight; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridView_0.DefaultCellStyle = dataGridViewCellStyle2; + this.dataGridView_0.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView_0.EnableHeadersVisualStyles = false; + this.dataGridView_0.GridColor = System.Drawing.SystemColors.ControlDarkDark; + this.dataGridView_0.Location = new System.Drawing.Point(2, 15); + this.dataGridView_0.Margin = new System.Windows.Forms.Padding(2); + this.dataGridView_0.Name = "dataGridView_0"; + this.dataGridView_0.ReadOnly = true; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.ControlDarkDark; + dataGridViewCellStyle3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridView_0.RowHeadersDefaultCellStyle = dataGridViewCellStyle3; + this.dataGridView_0.RowHeadersWidth = 72; + this.dataGridView_0.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dataGridView_0.RowTemplate.Height = 31; + this.dataGridView_0.Size = new System.Drawing.Size(597, 412); + this.dataGridView_0.TabIndex = 4; + this.dataGridView_0.TabStop = false; + this.dataGridView_0.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.method_2); + this.dataGridView_0.DoubleClick += new System.EventHandler(this.method_3); + this.dataGridView_0.KeyDown += new System.Windows.Forms.KeyEventHandler(this.method_4); + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.IsSplitterFixed = true; + this.splitContainer1.Location = new System.Drawing.Point(3, 3); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.groupBox2); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.treeView1); + this.splitContainer1.Size = new System.Drawing.Size(254, 427); + this.splitContainer1.SplitterDistance = 68; + this.splitContainer1.TabIndex = 4; + // + // groupBox2 + // + this.groupBox2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.groupBox2.Controls.Add(this.button2); + this.groupBox2.Controls.Add(this.button1); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox2.Location = new System.Drawing.Point(0, 0); + this.groupBox2.Margin = new System.Windows.Forms.Padding(2); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Padding = new System.Windows.Forms.Padding(2); + this.groupBox2.Size = new System.Drawing.Size(254, 68); + this.groupBox2.TabIndex = 3; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "File:"; + // + // button2 + // + this.button2.Checked = false; + this.button2.Dock = System.Windows.Forms.DockStyle.Top; + this.button2.Location = new System.Drawing.Point(2, 38); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(250, 23); + this.button2.TabIndex = 1; + this.button2.Text = "Save .bin file"; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button1 + // + this.button1.Checked = false; + this.button1.Dock = System.Windows.Forms.DockStyle.Top; + this.button1.Location = new System.Drawing.Point(2, 15); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(250, 23); + this.button1.TabIndex = 0; + this.button1.Text = "Open .bin file"; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // treeView1 + // + this.treeView1.BackColor = System.Drawing.SystemColors.ControlDark; + this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeView1.EvenNodeColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65))))); + this.treeView1.FocusedNodeColor = System.Drawing.Color.FromArgb(((int)(((byte)(75)))), ((int)(((byte)(110)))), ((int)(((byte)(175))))); + this.treeView1.ImageIndex = 0; + this.treeView1.ImageList = null; + this.treeView1.Location = new System.Drawing.Point(0, 0); + this.treeView1.Margin = new System.Windows.Forms.Padding(2); + this.treeView1.MaxDragChange = 20; + this.treeView1.Name = "treeView1"; + this.treeView1.NonFocusedNodeColor = System.Drawing.Color.FromArgb(((int)(((byte)(92)))), ((int)(((byte)(92)))), ((int)(((byte)(92))))); + this.treeView1.OddNodeColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(60)))), ((int)(((byte)(62))))); + this.treeView1.SelectedImageIndex = 0; + this.treeView1.SelectWithArrowKeys = false; + this.treeView1.Size = new System.Drawing.Size(254, 355); + this.treeView1.TabIndex = 2; + this.treeView1.SelectedNodesChanged += new System.EventHandler(this.treeView1_AfterSelect); + // + // openFileDialog1 + // + this.openFileDialog1.DefaultExt = "*.bin"; + this.openFileDialog1.Filter = "Honda full binary rom file|*.bin|Honda decompressed firmware binary|*.bin"; + this.openFileDialog1.Title = "Open File"; + // + // saveFileDialog1 + // + this.saveFileDialog1.DefaultExt = "*.bin"; + this.saveFileDialog1.Filter = "Honda binary file|*.bin"; + this.saveFileDialog1.Title = "Save File"; + // + // Editortable + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(812, 433); + this.Controls.Add(this.tableLayoutPanel1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(2); + this.Name = "Editortable"; + this.Text = "Honda Rom Tables Editor"; + this.Load += new System.EventHandler(this.Editortable_Load); + this.tableLayoutPanel1.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView_0)).EndInit(); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + + public void Editortable_Load(object sender, EventArgs e) + { + this.Text = "Honda Rom Tables Editor"; + this.timer_0.Interval = 500; + this.timer_0.Tick += new EventHandler(this.timer_0_Tick); + this.method_5(); + } + + public bool method_0(string string_9) + { + if (string_9.Contains("RRB")) + { + ClassEditor_0.smethod_37(); + this.method_34(GEnum3.RRB140); + return true; + } + if (!string_9.Contains("S2K")) + { + return false; + } + ClassEditor_0.smethod_36(); + this.method_34(GEnum3.S2K); + return true; + } + + public void method_1() + { + if (!ClassEditor_0.smethod_17(string_8)) + { + DarkMessageBox.Show("Failed to open Binary file."); + ClassEditor_0.bool_1 = false; + } + else if (!this.method_0(ClassEditor_0.string_0)) + { + DarkMessageBox.Show("No definition found for " + ClassEditor_0.string_0); + ClassEditor_0.bool_1 = false; + } + else + { + this.method_28(); + if (ClassEditor_0.string_0.Contains("RRB")) + { + this.method_24(); + } + if (ClassEditor_0.string_0.Contains("S2K")) + { + this.method_22(); + } + ClassEditor_0.bool_1 = true; + } + } + + private void method_10(int int_2) + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = this.method_32(int_2, genum2_0); + int num = ClassEditor_0.int_76; + int num2 = ClassEditor_0.int_75; + int num3 = this.method_29(int_2, genum2_0); + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + //dataGridView_0.TopLeftHeaderCell.DataGridView.BackgroundColor = System.Drawing.SystemColors.ControlDark; + int num6 = 0; + while (true) + { + if (num6 >= numArray[0]) + { + int num4 = 0; + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = 10f; + float_1[1] = 14.8f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = true; + ClassEditor_0.bool_0 = true; + break; + } + int num11 = ClassEditor_0.smethod_18(num2 + (num10 * 2)); + dataGridView_0.Rows[num10].HeaderCell.Value = (num11 * 0.013334).ToString("0.0"); + //dataGridView_0.Rows[num10].HeaderCell.DataGridView.BackgroundColor = System.Drawing.SystemColors.ControlDark; + num10++; + } + break; + } + object[] values = new object[20]; + values[0] = ((128f / ((float) ClassEditor_0.int_95[num4])) * 14.7f).ToString("0.00"); + values[1] = ((128f / ((float) ClassEditor_0.int_95[num4 + 1])) * 14.7f).ToString("0.00"); + values[2] = ((128f / ((float) ClassEditor_0.int_95[num4 + 2])) * 14.7f).ToString("0.00"); + values[3] = ((128f / ((float) ClassEditor_0.int_95[num4 + 3])) * 14.7f).ToString("0.00"); + values[4] = ((128f / ((float) ClassEditor_0.int_95[num4 + 4])) * 14.7f).ToString("0.00"); + values[5] = ((128f / ((float) ClassEditor_0.int_95[num4 + 5])) * 14.7f).ToString("0.00"); + values[6] = ((128f / ((float) ClassEditor_0.int_95[num4 + 6])) * 14.7f).ToString("0.00"); + values[7] = ((128f / ((float) ClassEditor_0.int_95[num4 + 7])) * 14.7f).ToString("0.00"); + values[8] = ((128f / ((float) ClassEditor_0.int_95[num4 + 8])) * 14.7f).ToString("0.00"); + values[9] = ((128f / ((float) ClassEditor_0.int_95[num4 + 9])) * 14.7f).ToString("0.00"); + values[10] = ((128f / ((float) ClassEditor_0.int_95[num4 + 10])) * 14.7f).ToString("0.00"); + values[11] = ((128f / ((float) ClassEditor_0.int_95[num4 + 11])) * 14.7f).ToString("0.00"); + values[12] = ((128f / ((float) ClassEditor_0.int_95[num4 + 12])) * 14.7f).ToString("0.00"); + values[13] = ((128f / ((float) ClassEditor_0.int_95[num4 + 13])) * 14.7f).ToString("0.00"); + values[14] = ((128f / ((float) ClassEditor_0.int_95[num4 + 14])) * 14.7f).ToString("0.00"); + values[15] = ((128f / ((float) ClassEditor_0.int_95[num4 + 15])) * 14.7f).ToString("0.00"); + values[0x10] = ((128f / ((float) ClassEditor_0.int_95[num4 + 0x10])) * 14.7f).ToString("0.00"); + values[0x11] = ((128f / ((float) ClassEditor_0.int_95[num4 + 0x11])) * 14.7f).ToString("0.00"); + values[0x12] = ((128f / ((float) ClassEditor_0.int_95[num4 + 0x12])) * 14.7f).ToString("0.00"); + values[0x13] = ((128f / ((float) ClassEditor_0.int_95[num4 + 0x13])) * 14.7f).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + num4 += 20; + rowIndex++; + } + break; + } + int num7 = ClassEditor_0.smethod_18(num + (num6 * 2)); + dataGridView_0.Columns.Add(ClassEditor_0.smethod_18(num + (num6 * 2)).ToString(), num7.ToString()); + num6++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_19(num3 + index); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_11(int int_2) + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = this.method_32(int_2, genum2_0); + int num = this.method_31(int_2, genum2_0); + int num2 = this.method_30(int_2, genum2_0); + int num3 = this.method_29(int_2, genum2_0); + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -10f; + float_1[1] = 55f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_12(int int_2) + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = this.method_32(int_2, genum2_0); + int num = this.method_31(int_2, genum2_0); + int num2 = this.method_30(int_2, genum2_0); + int num3 = this.method_29(int_2, genum2_0); + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -10f; + float_1[1] = 55f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_13(int int_2) + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = this.method_32(int_2, genum2_0); + int num = this.method_31(int_2, genum2_0); + int num2 = this.method_30(int_2, genum2_0); + int num3 = this.method_29(int_2, genum2_0); + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -25f; + float_1[1] = 60f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_14(int int_2) + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = this.method_32(int_2, genum2_0); + int num = this.method_31(int_2, genum2_0); + int num2 = this.method_30(int_2, genum2_0); + int num3 = this.method_29(int_2, genum2_0); + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -25f; + float_1[1] = 80f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_15() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_192; + int num = ClassEditor_0.int_182; + int num2 = ClassEditor_0.int_183; + int num3 = ClassEditor_0.int_189; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -5f; + float_1[1] = 205f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_16() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_196; + int num = ClassEditor_0.int_186; + int num2 = ClassEditor_0.int_187; + int num3 = ClassEditor_0.int_193; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -5f; + float_1[1] = 205f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_17() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_184; + int num = ClassEditor_0.int_182; + int num2 = ClassEditor_0.int_183; + int num3 = ClassEditor_0.int_181; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -5f; + float_1[1] = 20f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = true; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_19(num3 + index); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_18() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_188; + int num = ClassEditor_0.int_186; + int num2 = ClassEditor_0.int_187; + int num3 = ClassEditor_0.int_185; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -5f; + float_1[1] = 20f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = true; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_19(num3 + index); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_19() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_102; + int num = ClassEditor_0.int_100; + int num2 = ClassEditor_0.int_101; + int num3 = ClassEditor_0.int_99; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -10f; + float_1[1] = 55f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_2(object sender, DataGridViewCellEventArgs e) + { + this.timer_0.Enabled = false; + if (ClassEditor_0.bool_0) + { + this.timer_0.Enabled = true; + } + } + + private void method_20() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_106; + int num = ClassEditor_0.int_104; + int num2 = ClassEditor_0.int_105; + int num3 = ClassEditor_0.int_103; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_95, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -10f; + float_1[1] = 55f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_21() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_110; + int num = ClassEditor_0.int_108; + int num2 = ClassEditor_0.int_109; + int num3 = ClassEditor_0.int_107; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_94, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + int num6; + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num9 = 0; + while (true) + { + if (num9 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = 0f; + float_1[1] = 500f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + num6 = ClassEditor_0.smethod_18(num2 + (num9 * 2)); + dataGridView_0.Rows[num9].HeaderCell.Value = num6.ToString(); + num9++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + dataGridView_0.Columns.Add(ClassEditor_0.smethod_18(num + (num5 * 2)).ToString(), num6.ToString()); + num5++; + } + break; + } + ClassEditor_0.int_94[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_22() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_114; + int num = ClassEditor_0.int_112; + int num2 = ClassEditor_0.int_113; + int num3 = ClassEditor_0.int_111; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_94, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + int num6; + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num9 = 0; + while (true) + { + if (num9 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = 0f; + float_1[1] = 500f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + num6 = ClassEditor_0.smethod_18(num2 + (num9 * 2)); + dataGridView_0.Rows[num9].HeaderCell.Value = num6.ToString(); + num9++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + dataGridView_0.Columns.Add(ClassEditor_0.smethod_18(num + (num5 * 2)).ToString(), num6.ToString()); + num5++; + } + break; + } + ClassEditor_0.int_94[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_23() + { + try + { + int[] numArray = ClassEditor_0.int_41; + int num = ClassEditor_0.int_39; + int num2 = ClassEditor_0.int_40; + int num3 = ClassEditor_0.int_38; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_94, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -10f; + float_1[1] = 40f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.5f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_94[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_24() + { + try + { + int[] numArray = ClassEditor_0.int_45; + int num = ClassEditor_0.int_43; + int num2 = ClassEditor_0.int_44; + int num3 = ClassEditor_0.int_42; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_94, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -10f; + float_1[1] = 40f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.5f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num10].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num10 * 2)).ToString(); + num10++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[0, rowIndex] * 0.1).ToString("0.00"); + values[1] = (numArray2[1, rowIndex] * 0.1).ToString("0.00"); + values[2] = (numArray2[2, rowIndex] * 0.1).ToString("0.00"); + values[3] = (numArray2[3, rowIndex] * 0.1).ToString("0.00"); + values[4] = (numArray2[4, rowIndex] * 0.1).ToString("0.00"); + values[5] = (numArray2[5, rowIndex] * 0.1).ToString("0.00"); + values[6] = (numArray2[6, rowIndex] * 0.1).ToString("0.00"); + values[7] = (numArray2[7, rowIndex] * 0.1).ToString("0.00"); + values[8] = (numArray2[8, rowIndex] * 0.1).ToString("0.00"); + values[9] = (numArray2[9, rowIndex] * 0.1).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + int num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + double num7 = num6 * 0.013334; + dataGridView_0.Columns.Add(num7.ToString("0.0"), num7.ToString("0.0")); + num5++; + } + break; + } + ClassEditor_0.int_94[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_25() + { + try + { + int[] numArray = ClassEditor_0.int_29; + int num = ClassEditor_0.int_28; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num; + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + dataGridView_0.ColumnCount = numArray[0]; + if (this.vssUnits_0 == "MPH") + { + dataGridView_0.Columns[0].HeaderText = "MPH"; + for (int i = 0; i < numArray[1]; i++) + { + double num3 = Math.Floor((double) (((double) ClassEditor_0.smethod_18(num + (i * 2))) / 1.609)); + object[] values = new object[] { num3.ToString() }; + dataGridView_0.Rows.Add(values); + dataGridView_0.Rows[i].HeaderCell.Value = this.string_3.ToString(); + } + } + else + { + dataGridView_0.Columns[0].HeaderText = "KPH"; + for (int i = 0; i < numArray[1]; i++) + { + int num5 = ClassEditor_0.smethod_18(num + (i * 2)); + object[] values = new object[] { num5.ToString() }; + dataGridView_0.Rows.Add(values); + dataGridView_0.Rows[i].HeaderCell.Value = this.string_3.ToString(); + } + } + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 80; + } + float_0 = 1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_26() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_208; + int num = ClassEditor_0.int_209; + int num2 = ClassEditor_0.int_210; + int num3 = ClassEditor_0.int_207; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_97, numArray[1], numArray[0]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num5 = 0; + while (true) + { + int num6; + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num9 = 0; + while (true) + { + if (num9 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -50f; + float_1[1] = 200f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + num6 = ClassEditor_0.smethod_18(num2 + (num9 * 2)); + dataGridView_0.Rows[num9].HeaderCell.Value = num6.ToString(); + num9++; + } + break; + } + object[] values = new object[10]; + values[0] = (numArray2[rowIndex, 0] * 0.006).ToString("0.00"); + values[1] = (numArray2[rowIndex, 1] * 0.006).ToString("0.00"); + values[2] = (numArray2[rowIndex, 2] * 0.006).ToString("0.00"); + values[3] = (numArray2[rowIndex, 3] * 0.006).ToString("0.00"); + values[4] = (numArray2[rowIndex, 4] * 0.006).ToString("0.00"); + values[5] = (numArray2[rowIndex, 5] * 0.006).ToString("0.00"); + values[6] = (numArray2[rowIndex, 6] * 0.006).ToString("0.00"); + values[7] = (numArray2[rowIndex, 7] * 0.006).ToString("0.00"); + values[8] = (numArray2[rowIndex, 8] * 0.006).ToString("0.00"); + values[9] = (numArray2[rowIndex, 9] * 0.006).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + num6 = ClassEditor_0.smethod_18(num + (num5 * 2)); + dataGridView_0.Columns.Add(ClassEditor_0.smethod_18(num + (num5 * 2)).ToString(), num6.ToString()); + num5++; + } + break; + } + ClassEditor_0.int_97[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_27() + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = ClassEditor_0.int_214; + int num = ClassEditor_0.int_212; + int num2 = ClassEditor_0.int_213; + int num3 = ClassEditor_0.int_211; + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + int[,] numArray2 = ClassEditor_0.smethod_35(ClassEditor_0.int_98, numArray[0], numArray[1]); + dataGridView_0.TopLeftHeaderCell.Value = "RPM/KPH"; + int num5 = 0; + while (true) + { + double num6; + if (num5 >= numArray[0]) + { + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num8 = 0; + while (true) + { + if (num8 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = -50f; + float_1[1] = 200f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + dataGridView_0.Rows[num8].HeaderCell.Value = ClassEditor_0.smethod_18(num2 + (num8 * 2)).ToString(); + num8++; + } + break; + } + object[] values = new object[15]; + values[0] = (numArray2[rowIndex, 0] * 0.006).ToString("0.00"); + values[1] = (numArray2[rowIndex, 1] * 0.006).ToString("0.00"); + values[2] = (numArray2[rowIndex, 2] * 0.006).ToString("0.00"); + values[3] = (numArray2[rowIndex, 3] * 0.006).ToString("0.00"); + values[4] = (numArray2[rowIndex, 4] * 0.006).ToString("0.00"); + values[5] = (numArray2[rowIndex, 5] * 0.006).ToString("0.00"); + values[6] = (numArray2[rowIndex, 6] * 0.006).ToString("0.00"); + values[7] = (numArray2[rowIndex, 7] * 0.006).ToString("0.00"); + values[8] = (numArray2[rowIndex, 8] * 0.006).ToString("0.00"); + values[9] = (numArray2[rowIndex, 9] * 0.006).ToString("0.00"); + values[10] = (numArray2[rowIndex, 10] * 0.006).ToString("0.00"); + values[11] = (numArray2[rowIndex, 11] * 0.006).ToString("0.00"); + values[12] = (numArray2[rowIndex, 12] * 0.006).ToString("0.00"); + values[13] = (numArray2[rowIndex, 13] * 0.006).ToString("0.00"); + num6 = numArray2[rowIndex, 14] * 0.006; + values[14] = num6.ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + rowIndex++; + } + break; + } + num6 = ClassEditor_0.smethod_18(num + (num5 * 2)) * 0.01; + dataGridView_0.Columns.Add((ClassEditor_0.smethod_18(num + (num5 * 2)) * 0.01).ToString(), num6.ToString()); + num5++; + } + break; + } + ClassEditor_0.int_98[index] = ClassEditor_0.smethod_18(num3 + (index * 2)); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + public void method_28() + { + this.treeView1.Nodes.Clear(); + int num = 0; + foreach (string str in this.list_0) + { + DarkTreeNode ThisNode = new DarkTreeNode(); + if (str.ToString().Contains("--")) + { + ThisNode.Text = str.Replace("--", ""); + this.treeView1.Nodes[this.treeView1.Nodes.Count - 1].Nodes.Add(ThisNode); + continue; + } + num++; + + ThisNode.Text = str; + this.treeView1.Nodes.Add(ThisNode); + } + foreach (DarkTreeNode node in this.treeView1.Nodes) + { + if (node.Nodes.Count > 0) + { + foreach (DarkTreeNode node2 in node.Nodes) + { + if (node.Text.Contains("limiter")) + { + node2.ImageKey = "Normal"; + node2.SelectedImageKey = "Normal"; + continue; + } + if (node.Text.Contains("Fuel")) + { + node2.ImageKey = "Table"; + node2.SelectedImageKey = "Table"; + continue; + } + if (node.Text.Contains("Target")) + { + node2.ImageKey = "Table"; + node2.SelectedImageKey = "Table"; + continue; + } + node2.ImageKey = "Degree"; + node2.SelectedImageKey = "Degree"; + } + } + if ((node.Text.Contains("Revlimiter") || node.Text.Contains("Speedlimiter")) || node.Text.Contains("Limit")) + { + node.ImageKey = "Normal"; + node.SelectedImageKey = "Normal"; + } + else if (node.Text.Contains("00\x00b0")) + { + node.ImageKey = "Degree"; + node.SelectedImageKey = "Degree"; + } + else if (node.Text.Contains("VTC High") || node.Text.Contains("Timing High Cam")) + { + node.ImageKey = "HighCam"; + node.SelectedImageKey = "HighCam"; + } + else if (node.Text.Contains("VTC Low") || node.Text.Contains("Timing Low Cam")) + { + node.ImageKey = "LowCam"; + node.SelectedImageKey = "LowCam"; + } + else if (node.Text.Contains("Fuel High")) + { + node.ImageKey = "HighFuel"; + node.SelectedImageKey = "HighFuel"; + } + else if (node.Text.Contains("Fuel Low")) + { + node.ImageKey = "LowFuel"; + node.SelectedImageKey = "LowFuel"; + } + else if (node.Text.Contains("Target High")) + { + node.ImageKey = "HighFuel"; + node.SelectedImageKey = "HighFuel"; + } + else if (node.Text.Contains("Target Low")) + { + node.ImageKey = "LowFuel"; + node.SelectedImageKey = "LowFuel"; + } + else if (node.Text.Contains("AFM Fuel")) + { + node.ImageKey = "LowFuel"; + node.SelectedImageKey = "LowFuel"; + } + else if ((node.Text.Contains("VTEC") || node.Text.Contains("Idle")) || node.Text.Contains("WOT")) + { + node.ImageKey = "Vtec"; + node.SelectedImageKey = "Vtec"; + } + else if (node.Text.Contains("Knock")) + { + node.ImageKey = "Knock"; + node.SelectedImageKey = "Knock"; + } + else if (node.Text.Contains("Overrun")) + { + node.ImageKey = "Bang"; + node.SelectedImageKey = "Bang"; + } + else if ((node.Text.Contains("Compensation") || node.Text.Contains("Conversion")) || node.Text.Contains("LAF")) + { + node.ImageKey = "Red"; + node.SelectedImageKey = "Red"; + } + } + } + + private int method_29(int int_2, GEnum2 genum2_1) + { + int num = 0; + if (int_2 > 10) + { + if (int_2 == 20) + { + if (genum2_1 == GEnum2.TIMING_HIGH) + { + num = ClassEditor_0.int_62; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + num = ClassEditor_0.int_82; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + num = ClassEditor_0.int_149; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + num = ClassEditor_0.int_169; + } + } + else if (int_2 == 30) + { + if (genum2_1 == GEnum2.TIMING_HIGH) + { + num = ClassEditor_0.int_66; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + num = ClassEditor_0.int_86; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + num = ClassEditor_0.int_153; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + num = ClassEditor_0.int_173; + } + } + else if (int_2 == 40) + { + if (genum2_1 == GEnum2.TIMING_HIGH) + { + num = ClassEditor_0.int_70; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + num = ClassEditor_0.int_90; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + num = ClassEditor_0.int_157; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + num = ClassEditor_0.int_177; + } + } + } + else + { + switch (int_2) + { + case 0: + if (genum2_1 == GEnum2.TIMING_HIGH) + { + num = ClassEditor_0.int_54; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + num = ClassEditor_0.int_74; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + num = ClassEditor_0.int_141; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + num = ClassEditor_0.int_161; + } + break; + + case 1: + if (genum2_1 == GEnum2.LAMBDA_TGT_HIGH) + { + num = ClassEditor_0.int_127; + } + else if (genum2_1 == GEnum2.LAMBDA_TGT_LOW) + { + num = ClassEditor_0.int_133; + } + else if (genum2_1 == GEnum2.AFM_FUEL) + { + num = ClassEditor_0.int_117; + } + break; + + case 2: + if (genum2_1 == GEnum2.LAMBDA_TGT_HIGH) + { + num = ClassEditor_0.int_129; + } + else if (genum2_1 == GEnum2.LAMBDA_TGT_LOW) + { + num = ClassEditor_0.int_135; + } + else if (genum2_1 == GEnum2.AFM_FUEL) + { + num = ClassEditor_0.int_121; + } + break; + + case 3: + if (genum2_1 == GEnum2.LAMBDA_TGT_HIGH) + { + num = ClassEditor_0.int_131; + } + else if (genum2_1 == GEnum2.LAMBDA_TGT_LOW) + { + num = ClassEditor_0.int_137; + } + break; + + default: + if (int_2 == 10) + { + if (genum2_1 == GEnum2.TIMING_HIGH) + { + num = ClassEditor_0.int_58; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + num = ClassEditor_0.int_78; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + num = ClassEditor_0.int_145; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + num = ClassEditor_0.int_165; + } + } + break; + } + } + return num; + } + + private void method_3(object sender, EventArgs e) + { + dataGridView_0.ReadOnly = false; + } + + private int method_30(int int_2, GEnum2 genum2_1) + { + int num = 0; + if (int_2 > 10) + { + if (int_2 == 20) + { + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_64; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_84; + } + } + else if (int_2 == 30) + { + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_68; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_88; + } + } + else if (int_2 == 40) + { + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_72; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_92; + } + } + } + else + { + switch (int_2) + { + case 0: + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_56; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_76; + } + break; + + case 1: + if (genum2_1 == GEnum2.AFM_FUEL) + { + num = ClassEditor_0.int_116; + } + break; + + case 2: + if (genum2_1 == GEnum2.AFM_FUEL) + { + num = ClassEditor_0.int_120; + } + break; + + default: + if (int_2 == 10) + { + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_60; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_80; + } + } + break; + } + } + return num; + } + + private int method_31(int int_2, GEnum2 genum2_1) + { + int num = 0; + if (int_2 <= 10) + { + if (int_2 == 0) + { + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_55; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_75; + } + } + else if (int_2 == 10) + { + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_59; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_79; + } + } + } + else if (int_2 == 20) + { + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_63; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_83; + } + } + else if (int_2 == 30) + { + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_67; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_87; + } + } + else if (int_2 == 40) + { + if ((genum2_1 == GEnum2.TIMING_HIGH) || (genum2_1 == GEnum2.KNOCK_HIGH)) + { + num = ClassEditor_0.int_71; + } + else if ((genum2_1 == GEnum2.TIMING_LOW) || (genum2_1 == GEnum2.KNOCK_LOW)) + { + num = ClassEditor_0.int_91; + } + } + return num; + } + + private int[] method_32(int int_2, GEnum2 genum2_1) + { + int[] numArray = new int[0]; + if (int_2 > 10) + { + if (int_2 == 20) + { + if (genum2_1 == GEnum2.TIMING_HIGH) + { + numArray = ClassEditor_0.int_65; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + numArray = ClassEditor_0.int_85; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + numArray = ClassEditor_0.int_152; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + numArray = ClassEditor_0.int_172; + } + } + else if (int_2 == 30) + { + if (genum2_1 == GEnum2.TIMING_HIGH) + { + numArray = ClassEditor_0.int_69; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + numArray = ClassEditor_0.int_89; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + numArray = ClassEditor_0.int_156; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + numArray = ClassEditor_0.int_176; + } + } + else if (int_2 == 40) + { + if (genum2_1 == GEnum2.TIMING_HIGH) + { + numArray = ClassEditor_0.int_73; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + numArray = ClassEditor_0.int_93; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + numArray = ClassEditor_0.int_160; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + numArray = ClassEditor_0.int_180; + } + } + } + else + { + switch (int_2) + { + case 0: + if (genum2_1 == GEnum2.TIMING_HIGH) + { + numArray = ClassEditor_0.int_57; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + numArray = ClassEditor_0.int_77; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + numArray = ClassEditor_0.int_144; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + numArray = ClassEditor_0.int_164; + } + break; + + case 1: + if (genum2_1 == GEnum2.LAMBDA_TGT_HIGH) + { + numArray = ClassEditor_0.int_128; + } + else if (genum2_1 == GEnum2.LAMBDA_TGT_LOW) + { + numArray = ClassEditor_0.int_134; + } + else if (genum2_1 == GEnum2.AFM_FUEL) + { + numArray = ClassEditor_0.int_118; + } + break; + + case 2: + if (genum2_1 == GEnum2.LAMBDA_TGT_HIGH) + { + numArray = ClassEditor_0.int_130; + } + else if (genum2_1 == GEnum2.LAMBDA_TGT_LOW) + { + numArray = ClassEditor_0.int_136; + } + else if (genum2_1 == GEnum2.AFM_FUEL) + { + numArray = ClassEditor_0.int_122; + } + break; + + case 3: + if (genum2_1 == GEnum2.LAMBDA_TGT_HIGH) + { + numArray = ClassEditor_0.int_132; + } + else if (genum2_1 == GEnum2.LAMBDA_TGT_LOW) + { + numArray = ClassEditor_0.int_138; + } + break; + + default: + if (int_2 == 10) + { + if (genum2_1 == GEnum2.TIMING_HIGH) + { + numArray = ClassEditor_0.int_61; + } + else if (genum2_1 == GEnum2.TIMING_LOW) + { + numArray = ClassEditor_0.int_81; + } + else if (genum2_1 == GEnum2.KNOCK_HIGH) + { + numArray = ClassEditor_0.int_148; + } + else if (genum2_1 == GEnum2.KNOCK_LOW) + { + numArray = ClassEditor_0.int_168; + } + } + break; + } + } + return numArray; + } + + private void method_34(GEnum3 genum3_0) + { + this.list_0.Clear(); + if (genum3_0 == GEnum3.RRB140) + { + foreach (string str in this.string_6) + { + this.list_0.Add(str); + } + } + else if (genum3_0 == GEnum3.S2K) + { + foreach (string str2 in this.string_7) + { + this.list_0.Add(str2); + } + } + } + + public string[] method_35(int int_2, int int_3) + { + string[] strArray = new string[int_2]; + for (int i = 0; i < int_2; i++) + { + strArray[i] = (ClassEditor_0.smethod_18(int_3 + (i * 2)) * 0.0048828125).ToString(); + } + return strArray; + } + + public string[] method_36(int int_2, int int_3) + { + string[] strArray = new string[int_2]; + for (int i = 0; i < int_2; i++) + { + strArray[i] = (ClassEditor_0.smethod_18(int_3 + (i * 2)) / 10).ToString(); + } + return strArray; + } + + private void method_4(object sender, KeyEventArgs e) + { + ClassEditor_0.smethod_3(e, 0); + } + + public void method_5() + { + ContextMenu menu = new ContextMenu { + MenuItems = { + { + "Increase selection", + new EventHandler(this.method_6) + }, + { + "Decrease selection", + new EventHandler(this.method_7) + } + } + }; + this.ContextMenu = menu; + } + + private void method_6(object sender, EventArgs e) + { + ClassEditor_0.smethod_3(new KeyEventArgs(Keys.None), 2); + } + + private void method_7(object sender, EventArgs e) + { + ClassEditor_0.smethod_3(new KeyEventArgs(Keys.None), 3); + } + + private void method_8(int int_2) + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = this.method_32(int_2, genum2_0); + int num = this.method_30(int_2, genum2_0); + int num2 = this.method_29(int_2, genum2_0); + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num2; + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + dataGridView_0.TopLeftHeaderCell.Value = "AirMass (mg)"; + int num3 = 0; + while (true) + { + double num4; + if (num3 >= numArray[0]) + { + List list = new List(); + int num5 = 0; + while (true) + { + if (num5 >= numArray[0]) + { + object[] values = new object[] { list[0], list[1], list[2], list[3], list[4], list[5], list[6], list[7] }; + dataGridView_0.Rows.Add(values); + dataGridView_0.Rows[0].HeaderCell.Value = "IPW (ms)"; + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 50; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = 0f; + float_1[1] = 14f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.bool_0 = true; + break; + } + num4 = ClassEditor_0.smethod_18(num2 + (num5 * 2)) * 0.002; + list.Add(num4.ToString("0.00")); + num5++; + } + break; + } + num4 = ClassEditor_0.smethod_18(num + (num3 * 2)) * 0.1; + dataGridView_0.Columns.Add((ClassEditor_0.smethod_18(num + (num3 * 2)) * 0.1).ToString(), num4.ToString()); + num3++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + private void method_9(int int_2) + { + try + { + dataGridView_0.Rows.Clear(); + dataGridView_0.Columns.Clear(); + dataGridView_0.RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + int[] numArray = this.method_32(int_2, genum2_0); + int num = ClassEditor_0.int_56; + int num2 = ClassEditor_0.int_55; + int num3 = this.method_29(int_2, genum2_0); + ClassEditor_0.int_1 = numArray[0] * numArray[1]; + ClassEditor_0.int_0 = num3; + int index = 0; + while (true) + { + if (index >= (numArray[0] * numArray[1])) + { + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + int num6 = 0; + while (true) + { + if (num6 >= numArray[0]) + { + int num4 = 0; + int rowIndex = 0; + while (true) + { + if (rowIndex >= numArray[1]) + { + int num10 = 0; + while (true) + { + if (num10 >= numArray[1]) + { + dataGridView_0.AllowUserToAddRows = false; + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x2a; + } + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + row.Height = 20; + } + float_1[0] = 10f; + float_1[1] = 14.8f; + ClassEditor_0.smethod_33(numArray[0], float_1[0], float_1[1]); + float_0 = 0.1f; + ClassEditor_0.bool_3 = true; + ClassEditor_0.bool_0 = true; + break; + } + int num11 = ClassEditor_0.smethod_18(num2 + (num10 * 2)); + dataGridView_0.Rows[num10].HeaderCell.Value = (num11 * 0.013334).ToString("0.0"); + num10++; + } + break; + } + object[] values = new object[20]; + values[0] = ((128f / ((float) ClassEditor_0.int_95[num4])) * 14.7f).ToString("0.00"); + values[1] = ((128f / ((float) ClassEditor_0.int_95[num4 + 1])) * 14.7f).ToString("0.00"); + values[2] = ((128f / ((float) ClassEditor_0.int_95[num4 + 2])) * 14.7f).ToString("0.00"); + values[3] = ((128f / ((float) ClassEditor_0.int_95[num4 + 3])) * 14.7f).ToString("0.00"); + values[4] = ((128f / ((float) ClassEditor_0.int_95[num4 + 4])) * 14.7f).ToString("0.00"); + values[5] = ((128f / ((float) ClassEditor_0.int_95[num4 + 5])) * 14.7f).ToString("0.00"); + values[6] = ((128f / ((float) ClassEditor_0.int_95[num4 + 6])) * 14.7f).ToString("0.00"); + values[7] = ((128f / ((float) ClassEditor_0.int_95[num4 + 7])) * 14.7f).ToString("0.00"); + values[8] = ((128f / ((float) ClassEditor_0.int_95[num4 + 8])) * 14.7f).ToString("0.00"); + values[9] = ((128f / ((float) ClassEditor_0.int_95[num4 + 9])) * 14.7f).ToString("0.00"); + values[10] = ((128f / ((float) ClassEditor_0.int_95[num4 + 10])) * 14.7f).ToString("0.00"); + values[11] = ((128f / ((float) ClassEditor_0.int_95[num4 + 11])) * 14.7f).ToString("0.00"); + values[12] = ((128f / ((float) ClassEditor_0.int_95[num4 + 12])) * 14.7f).ToString("0.00"); + values[13] = ((128f / ((float) ClassEditor_0.int_95[num4 + 13])) * 14.7f).ToString("0.00"); + values[14] = ((128f / ((float) ClassEditor_0.int_95[num4 + 14])) * 14.7f).ToString("0.00"); + values[15] = ((128f / ((float) ClassEditor_0.int_95[num4 + 15])) * 14.7f).ToString("0.00"); + values[0x10] = ((128f / ((float) ClassEditor_0.int_95[num4 + 0x10])) * 14.7f).ToString("0.00"); + values[0x11] = ((128f / ((float) ClassEditor_0.int_95[num4 + 0x11])) * 14.7f).ToString("0.00"); + values[0x12] = ((128f / ((float) ClassEditor_0.int_95[num4 + 0x12])) * 14.7f).ToString("0.00"); + values[0x13] = ((128f / ((float) ClassEditor_0.int_95[num4 + 0x13])) * 14.7f).ToString("0.00"); + dataGridView_0.Rows.Insert(rowIndex, values); + num4 += 20; + rowIndex++; + } + break; + } + int num7 = ClassEditor_0.smethod_18(num + (num6 * 2)); + dataGridView_0.Columns.Add(ClassEditor_0.smethod_18(num + (num6 * 2)).ToString(), num7.ToString()); + num6++; + } + break; + } + ClassEditor_0.int_95[index] = ClassEditor_0.smethod_19(num3 + index); + index++; + } + } + catch + { + ClassEditor_0.bool_0 = false; + DarkMessageBox.Show("Failed to load table."); + } + } + + protected override void Dispose(bool disposing) + { + if (disposing && (this.icontainer_0 != null)) + { + this.icontainer_0.Dispose(); + } + base.Dispose(disposing); + } + + private void timer_0_Tick(object sender, EventArgs e) + { + ClassEditor_0.smethod_33(dataGridView_0.Columns.Count, float_1[0], float_1[1]); + this.timer_0.Enabled = false; + } + + private void treeView1_AfterSelect(object sender, EventArgs e) + { + if (this.treeView1.SelectedNodes.Count == 0) return; + + if ((this.treeView1.SelectedNode != null) && ClassEditor_0.bool_1) + { + if ((ClassEditor_0.bool_2 && (ClassEditor_0.int_1 != 0)) && (ClassEditor_0.int_0 != 0)) + { + if (ClassEditor_0.int_1 == 200) + { + ClassEditor_0.smethod_5("10X20"); + } + else if (ClassEditor_0.int_1 == 0x40) + { + ClassEditor_0.smethod_5("1X64"); + } + else if (ClassEditor_0.int_1 == 15) + { + ClassEditor_0.smethod_5("1X15"); + } + else if (ClassEditor_0.int_1 == 8) + { + ClassEditor_0.smethod_5("1X8"); + } + else if (ClassEditor_0.int_1 == 7) + { + ClassEditor_0.smethod_5("1X7"); + } + else if (ClassEditor_0.int_1 == 6) + { + ClassEditor_0.smethod_5("1X6"); + } + else if (ClassEditor_0.int_1 == 5) + { + ClassEditor_0.smethod_5("1X5"); + } + else if (ClassEditor_0.int_1 == 4) + { + ClassEditor_0.smethod_5("1X4"); + } + else if (ClassEditor_0.int_1 == 2) + { + ClassEditor_0.smethod_5("1X2"); + } + else if (ClassEditor_0.int_1 == 1) + { + ClassEditor_0.smethod_5("1X1"); + } + ClassEditor_0.string_2 = ClassEditor_0.string_2 + ClassEditor_0.string_3 + Environment.NewLine; + } + ClassEditor_0.bool_2 = false; + if (this.treeView1.SelectedNode.FullPath.Contains("Ignition Timing VTC High") || this.treeView1.SelectedNode.FullPath.Contains("Ignition Timing High")) + { + genum2_0 = GEnum2.TIMING_HIGH; + } + else if (this.treeView1.SelectedNode.FullPath.Contains("Ignition Timing VTC Low") || this.treeView1.SelectedNode.FullPath.Contains("Ignition Timing Low")) + { + genum2_0 = GEnum2.TIMING_LOW; + } + else + { + genum2_0 = !this.treeView1.SelectedNode.FullPath.Contains("Knock Limit High") ? (!this.treeView1.SelectedNode.FullPath.Contains("Knock Limit Low") ? (!this.treeView1.SelectedNode.FullPath.Contains("Lambda Target High") ? (!this.treeView1.SelectedNode.FullPath.Contains("Lambda Target Low") ? (!this.treeView1.SelectedNode.FullPath.Contains("AFM Fuel") ? GEnum2.NOT_SELECTED : GEnum2.AFM_FUEL) : GEnum2.LAMBDA_TGT_LOW) : GEnum2.LAMBDA_TGT_HIGH) : GEnum2.KNOCK_LOW) : GEnum2.KNOCK_HIGH; + } + this.groupBox1.Text = "Table: " + this.treeView1.SelectedNode.Text; + string text = this.treeView1.SelectedNode.Text; + if (text != null) + { + if (text == "Knock Sensitivity Low") + { + this.method_16(); + } + if (text == "Fuel High Cam") + { + genum2_0 = GEnum2.VE_HIGH; + this.method_21(); + } + if (text == "Speedlimiter") + { + this.method_25(); + } + if (text == "WOT Determiniation 2(TPS)") + { + float_1[0] = -50f; + float_1[1] = 200f; + float_0 = 1f; + ClassEditor_0.bool_3 = false; + string[] textArray1 = new string[] { "1000", "2000", "3000", "4000", "5000", "6000" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_204, ClassEditor_0.int_203, "RPM", "TPS(%)", textArray1, GEnum2.THROTTLE_REQ, false); + } + if (text == "Cam Angle VTC High") + { + this.method_23(); + } + if (text == "Ignition Timing Low Cam") + { + genum2_0 = GEnum2.TIMING_LOW; + this.method_20(); + } + if (text == "AFM Fuel") + { + genum2_0 = GEnum2.AFM_FUEL; + this.method_8(1); + } + if (text == "Knock Retard Low") + { + this.method_18(); + } + if (text == "20\x00b0") + { + this.int_0 = 20; + if (genum2_0 == GEnum2.TIMING_HIGH) + { + this.method_11(this.int_0); + } + else if (genum2_0 == GEnum2.TIMING_LOW) + { + this.method_12(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_HIGH) + { + this.method_13(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_LOW) + { + this.method_14(this.int_0); + } + } + if (text == "VTEC Engagement") + { + float_1[0] = -10000f; + float_1[1] = 30000f; + float_0 = 10f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.smethod_16(ClassEditor_0.int_5, ClassEditor_0.int_2, "", "RPM", this.string_4, GEnum2.TIMING_HIGH, true); + genum2_0 = GEnum2.VTEC_PARAMS; + } + if (text == "Ignition Timing VTC Low") + { + genum2_0 = GEnum2.TIMING_LOW; + this.method_12(0); + } + if (text == "40\x00b0") + { + this.int_0 = 40; + if (genum2_0 == GEnum2.TIMING_HIGH) + { + this.method_11(this.int_0); + } + else if (genum2_0 == GEnum2.TIMING_LOW) + { + this.method_12(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_HIGH) + { + this.method_13(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_LOW) + { + this.method_14(this.int_0); + } + } + if (text == "Throttle Response 1") + { + this.method_26(); + } + if (text == "Throttle Response 2") + { + this.method_27(); + } + if (text == "Knock Limit High") + { + genum2_0 = GEnum2.KNOCK_HIGH; + this.method_13(0); + } + if (text == "MAF Load Limit") + { + float_1[0] = -1000f; + float_1[1] = 4000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + int[] numArray1 = new int[] { 4, 1 }; + string[] textArray3 = new string[] { "", "", "", "" }; + ClassEditor_0.smethod_16(numArray1, ClassEditor_0.int_216, "Mg/Stroke", "", textArray3, GEnum2.TIMING_HIGH, false); + } + if (text == "LAF Voltage to Lambda") + { + float_1[0] = 0f; + float_1[1] = 4f; + float_0 = 0.01f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.smethod_16(ClassEditor_0.int_140, ClassEditor_0.int_139, "Volts(mv)", "λ", this.string_1, GEnum2.LAF_VOLTAGE, false); + } + if (text == "Fuel Value 1") + { + this.int_1 = 1; + if (genum2_0 == GEnum2.AFM_FUEL) + { + this.method_8(this.int_1); + } + } + if (text == "Fuel Value 2") + { + this.int_1 = 2; + if (genum2_0 == GEnum2.AFM_FUEL) + { + this.method_8(this.int_1); + } + } + if (text == "Target 1") + { + this.int_1 = 1; + if (genum2_0 == GEnum2.LAMBDA_TGT_HIGH) + { + this.method_9(this.int_1); + } + else if (genum2_0 == GEnum2.LAMBDA_TGT_LOW) + { + this.method_10(this.int_1); + } + } + if (text == "Target 2") + { + this.int_1 = 2; + if (genum2_0 == GEnum2.LAMBDA_TGT_HIGH) + { + this.method_9(this.int_1); + } + else if (genum2_0 == GEnum2.LAMBDA_TGT_LOW) + { + this.method_10(this.int_1); + } + } + if (text == "Target 3") + { + this.int_1 = 3; + if (genum2_0 == GEnum2.LAMBDA_TGT_HIGH) + { + this.method_9(this.int_1); + } + else if (genum2_0 == GEnum2.LAMBDA_TGT_LOW) + { + this.method_10(this.int_1); + } + } + if (text == "Post Start Idle Speed") + { + float_1[0] = -1000f; + float_1[1] = 4000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.smethod_16(ClassEditor_0.int_200, ClassEditor_0.int_199, "Coolant Temp", "RPM", this.method_36(ClassEditor_0.int_200[0], 0xfa90), GEnum2.TIMING_HIGH, false); + } + if (text == "WOT Determiniation 1(TPS)") + { + float_1[0] = -50f; + float_1[1] = 200f; + float_0 = 1f; + ClassEditor_0.bool_3 = false; + string[] textArray2 = new string[] { "1000", "2000", "3000", "4000", "5000", "6000" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_202, ClassEditor_0.int_201, "RPM", "TPS(%)", textArray2, GEnum2.THROTTLE_REQ, false); + } + if (text == "00\x00b0") + { + this.int_0 = 0; + if (genum2_0 == GEnum2.TIMING_HIGH) + { + this.method_11(this.int_0); + } + else if (genum2_0 == GEnum2.TIMING_LOW) + { + this.method_12(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_HIGH) + { + this.method_13(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_LOW) + { + this.method_14(this.int_0); + } + } + if (text == "Knock Retard High") + { + this.method_17(); + } + if (text == "Ignition Timing VTC High") + { + genum2_0 = GEnum2.TIMING_HIGH; + this.method_11(0); + } + if (text == "Revlimiter 8") + { + float_1[0] = 0f; + float_1[1] = 10000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + string[] textArray4 = new string[] { "", "" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_27, ClassEditor_0.int_14, "", "RPM", textArray4, GEnum2.TIMING_HIGH, false); + } + if (text == "Revlimiter 6") + { + float_1[0] = 0f; + float_1[1] = 10000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + string[] textArray6 = new string[] { "", "" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_27, ClassEditor_0.int_12, "", "RPM", textArray6, GEnum2.TIMING_HIGH, false); + } + if (text == "Cam Angle VTC Low") + { + this.method_24(); + } + if (text == "Revlimiter 7") + { + float_1[0] = 0f; + float_1[1] = 10000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + string[] textArray5 = new string[] { "", "" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_27, ClassEditor_0.int_13, "", "RPM", textArray5, GEnum2.TIMING_HIGH, false); + } + if (text == "Idle Speed") + { + float_1[0] = -1000f; + float_1[1] = 4000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.smethod_16(ClassEditor_0.int_198, ClassEditor_0.int_197, "Coolant Temp", "RPM", this.method_36(ClassEditor_0.int_198[0], 0xfa70), GEnum2.TIMING_HIGH, false); + } + if (text == "Fuel Low Cam") + { + genum2_0 = GEnum2.VE_LOW; + this.method_22(); + } + if (text == "Revlimiter 4") + { + float_1[0] = 0f; + float_1[1] = 10000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + string[] textArray7 = new string[] { "", "" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_27, ClassEditor_0.int_10, "", "RPM", textArray7, GEnum2.TIMING_HIGH, false); + } + if (text == "Revlimiter 5") + { + float_1[0] = 0f; + float_1[1] = 10000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + string[] textArray9 = new string[] { "", "" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_27, ClassEditor_0.int_11, "", "RPM", textArray9, GEnum2.TIMING_HIGH, false); + } + if (text == "Revlimiter 2") + { + float_1[0] = 0f; + float_1[1] = 10000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + string[] textArray8 = new string[] { "", "" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_27, ClassEditor_0.int_8, "", "RPM", textArray8, GEnum2.TIMING_HIGH, false); + } + if (text == "Revlimiter 3") + { + float_1[0] = 0f; + float_1[1] = 10000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + string[] textArray11 = new string[] { "", "" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_27, ClassEditor_0.int_9, "", "RPM", textArray11, GEnum2.TIMING_HIGH, false); + } + if (text == "Revlimiter 1") + { + float_1[0] = 0f; + float_1[1] = 10000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + string[] textArray10 = new string[] { "", "" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_27, ClassEditor_0.int_7, "", "RPM", textArray10, GEnum2.TIMING_HIGH, false); + } + if (text == "Lambda Target High Cam") + { + genum2_0 = GEnum2.LAMBDA_TGT_HIGH; + this.method_9(1); + } + if (text == "Knock Limit Low") + { + genum2_0 = GEnum2.KNOCK_LOW; + this.method_14(0); + } + if (text == "Lambda Target Low Cam") + { + genum2_0 = GEnum2.LAMBDA_TGT_LOW; + this.method_10(1); + } + if (text == "Revlimiter") + { + float_1[0] = 0f; + float_1[1] = 10000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + string[] textArray14 = new string[] { "", "" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_27, ClassEditor_0.int_6, "", "RPM", textArray14, GEnum2.TIMING_HIGH, false); + } + if (text == "Injector Voltage Compensation") + { + float_1[0] = -1000f; + float_1[1] = 3000f; + float_0 = 1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.smethod_16(ClassEditor_0.int_33, ClassEditor_0.int_30, "Volts", "ms", this.string_0, GEnum2.INJ_DEADTIME, false); + genum2_0 = GEnum2.INJ_DEADTIME; + } + if (text == "Knock Sensitivity High") + { + this.method_15(); + } + if (text == "10\x00b0") + { + this.int_0 = 10; + if (genum2_0 == GEnum2.TIMING_HIGH) + { + this.method_11(this.int_0); + } + else if (genum2_0 == GEnum2.TIMING_LOW) + { + this.method_12(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_HIGH) + { + this.method_13(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_LOW) + { + this.method_14(this.int_0); + } + } + if (text == "WOT Determiniation (MAP)") + { + float_1[0] = 0f; + float_1[1] = 120f; + float_0 = 1f; + ClassEditor_0.bool_3 = false; + string[] textArray13 = new string[] { "1000", "2000", "3000", "4000", "5000", "6000", "7000" }; + ClassEditor_0.smethod_16(ClassEditor_0.int_206, ClassEditor_0.int_205, "RPM", "MAP(kpa)", textArray13, GEnum2.WOT_MAP, false); + } + if (text == "Mass Airflow Conversion Curve") + { + float_1[0] = -10000f; + float_1[1] = 30000f; + float_0 = 1f; + ClassEditor_0.bool_3 = false; + ClassEditor_0.smethod_16(ClassEditor_0.int_37, ClassEditor_0.int_34, "Volts", "g/s", this.method_35(ClassEditor_0.int_37[0], ClassEditor_0.int_36), GEnum2.TIMING_HIGH, false); + } + if (text == "Minimum IPW") + { + float_1[0] = -6f; + float_1[1] = 5f; + float_0 = 0.001f; + genum2_0 = GEnum2.MIN_IPW; + ClassEditor_0.bool_3 = false; + int[] numArray3 = new int[] { 1, 1 }; + string[] textArray12 = new string[] { "" }; + ClassEditor_0.smethod_16(numArray3, ClassEditor_0.int_217, "Min IPW", "", textArray12, GEnum2.MIN_IPW, false); + } + if (text == "Ignition Timing High Cam") + { + genum2_0 = GEnum2.TIMING_HIGH; + this.method_19(); + } + if (text == "Overrun Fuel Cut(Gear Determiniation)") + { + float_1[0] = -1000f; + float_1[1] = 5000f; + float_0 = 50f; + ClassEditor_0.bool_3 = false; + int[] numArray2 = new int[] { 5, 1 }; + ClassEditor_0.smethod_16(numArray2, ClassEditor_0.int_215, "Gear", "Delay(ms)", this.string_2, GEnum2.TIMING_HIGH, false); + } + if (text == "30\x00b0") + { + this.int_0 = 30; + if (genum2_0 == GEnum2.TIMING_HIGH) + { + this.method_11(this.int_0); + } + else if (genum2_0 == GEnum2.TIMING_LOW) + { + this.method_12(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_HIGH) + { + this.method_13(this.int_0); + } + else if (genum2_0 == GEnum2.KNOCK_LOW) + { + this.method_14(this.int_0); + } + } + } + } + } + + /*public static ImageList ImageList_0 + { + get + { + if (imageList_0 == null) + { + imageList_0 = new ImageList(); + imageList_0.Images.Add("HighCam", global::Properties.Resources.Lightning2); + imageList_0.Images.Add("LowCam", global::Properties.Resources.Lightning); + imageList_0.Images.Add("HighFuel", global::Properties.Resources.injector2); + imageList_0.Images.Add("LowFuel", global::Properties.Resources.injector1); + imageList_0.Images.Add("Table", global::Properties.Resources.Script1); + imageList_0.Images.Add("Degree", global::Properties.Resources.Target); + imageList_0.Images.Add("Red", global::Properties.Resources.Report); + imageList_0.Images.Add("Normal", global::Properties.Resources.Wrench); + imageList_0.Images.Add("Vtec", global::Properties.Resources.Pinion); + imageList_0.Images.Add("Knock", global::Properties.Resources.Problem); + imageList_0.Images.Add("Bang", global::Properties.Resources.Disaster); + } + return imageList_0; + } + }*/ + + public enum GEnum2 + { + TIMING_HIGH = 0, + TIMING_LOW = 1, + VE_HIGH = 2, + VE_LOW = 3, + KNOCK_HIGH = 4, + KNOCK_LOW = 5, + LAMBDA_TGT_HIGH = 6, + LAMBDA_TGT_LOW = 7, + AFM_FUEL = 8, + LAF_VOLTAGE = 9, + INJ_DEADTIME = 10, + THROTTLE_REQ = 11, + WOT_MAP = 12, + VTEC_PARAMS = 13, + MIN_IPW = 14, + NOT_SELECTED = 0xff + } + + public enum GEnum3 + { + RRB140, + S2K + } + + private void button1_Click(object sender, EventArgs e) + { + DialogResult result = openFileDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + if (openFileDialog1.FilterIndex == 1) + { + byte[] FilesBytes = File.ReadAllBytes(openFileDialog1.FileName); + if ((FilesBytes.Length - 1) == 0xFFFFF) + { + this.Editortable_0.string_8 = openFileDialog1.FileName; + this.IsFullBinary = true; + + //Load Binary into ROM Table Editor + this.Editortable_0.method_1(); + } + else + { + DarkMessageBox.Show(this, "This file is not compatible!"); + } + } + if (openFileDialog1.FilterIndex == 2) + { + byte[] FilesBytes = File.ReadAllBytes(openFileDialog1.FileName); + if ((FilesBytes.Length - 1) == 0xF7FFF) + { + this.Editortable_0.string_8 = openFileDialog1.FileName; + this.IsFullBinary = false; + + DarkMessageBox.Show(this, "Since this decompressed firmware .bin file is missing the bootloader section\nSelect the firmware .rwd file from which is as been decompressed from", "MISSING BOOTLOADER SECTION FOR CHECKSUMS VERIFICATIONS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + + //Open RWD firmware + openFileDialog1.Filter = "Honda Compressed RWD Firmware|*.gz;*.rwd"; + openFileDialog1.DefaultExt = "*.gz"; + result = openFileDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + Class_RWD.LoadRWD(openFileDialog1.FileName, true, false); + } + + //Load Binary into ROM Table Editor + this.Editortable_0.method_1(); + } + else + { + Console.WriteLine((FilesBytes.Length - 1).ToString("X")); + DarkMessageBox.Show(this, "This file is not compatible!"); + } + } + } + } + + private void button2_Click(object sender, EventArgs e) + { + DialogResult result = saveFileDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + this.ClassEditor_0.smethod_15(saveFileDialog1.FileName); + } + } +} + diff --git a/Editortable.resx b/Editortable.resx new file mode 100644 index 0000000..9e67a50 --- /dev/null +++ b/Editortable.resx @@ -0,0 +1,751 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 157, 17 + + + + + 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 + + + \ No newline at end of file diff --git a/FlashToolTest.csproj b/FlashToolTest.csproj index 03be4c5..9c452e1 100644 --- a/FlashToolTest.csproj +++ b/FlashToolTest.csproj @@ -21,7 +21,7 @@ DEBUG;TRACE prompt 4 - true + false AnyCPU @@ -61,6 +61,7 @@ + Component @@ -95,6 +96,9 @@ Form + + Form + Form @@ -121,6 +125,9 @@ GForm_J2534Select.cs + + Editortable.cs + ResXFileCodeGenerator Resources.Designer.cs diff --git a/GForm_ConvertBIN.cs b/GForm_ConvertBIN.cs index 1c93012..7a5c418 100644 --- a/GForm_ConvertBIN.cs +++ b/GForm_ConvertBIN.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.ComponentModel; using System.Drawing; using System.Runtime.CompilerServices; @@ -176,7 +177,14 @@ public class GForm_ConvertBIN : DarkForm DialogResult result = this.openFileDialog1.ShowDialog(); if (result == DialogResult.OK) { - this.textBox_bin.Text = this.openFileDialog1.FileName; + if ((File.ReadAllBytes(this.openFileDialog1.FileName).Length - 1) == 0xF7FFF) + { + this.textBox_bin.Text = this.openFileDialog1.FileName; + } + else + { + DarkMessageBox.Show(this, "This file is not compatible!"); + } } } diff --git a/GForm_Main.cs b/GForm_Main.cs index 76e84a2..a98db98 100644 --- a/GForm_Main.cs +++ b/GForm_Main.cs @@ -23,11 +23,13 @@ public class GForm_Main : DarkForm byte Unlocking_Mode = 0x41; bool WritingBinaryMode = true; //if false we are in writing firmware mode private DarkButton darkButton_FlashFW; - GForm_Main GForm_Main_0; + private GForm_Main GForm_Main_0; private DarkGroupBox DarkgroupBox1; private DarkButton darkButton4; private DarkButton darkButton5; + private DarkButton darkButton6; private DarkButton darkButton3; + public Editortable Editortable_0; public GForm_Main() { @@ -43,6 +45,8 @@ public class GForm_Main : DarkForm GForm_Main_0 = this; + Editortable_0 = new Editortable(ref GForm_Main_0); + Class_RWD.Load(ref GForm_Main_0); } @@ -1184,7 +1188,8 @@ public class GForm_Main : DarkForm channel.SetConfig(config); } - private unsafe void backgroundWorker_0_DoWork_1(object sender, DoWorkEventArgs e) + //private unsafe void backgroundWorker_0_DoWork_1(object sender, DoWorkEventArgs e) + private void backgroundWorker_0_DoWork_1(object sender, DoWorkEventArgs e) { using (API api = APIFactory.GetAPI(GForm_Main.string_0)) { @@ -1582,6 +1587,7 @@ public class GForm_Main : DarkForm this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); this.DarkgroupBox1 = new DarkUI.Controls.DarkGroupBox(); this.darkButton4 = new DarkUI.Controls.DarkButton(); + this.darkButton6 = new DarkUI.Controls.DarkButton(); this.darkGroupBox_0.SuspendLayout(); this.DarkgroupBox1.SuspendLayout(); this.SuspendLayout(); @@ -1897,6 +1903,7 @@ public class GForm_Main : DarkForm // DarkgroupBox1 // this.DarkgroupBox1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.DarkgroupBox1.Controls.Add(this.darkButton6); this.DarkgroupBox1.Controls.Add(this.darkButton4); this.DarkgroupBox1.Controls.Add(this.darkButton3); this.DarkgroupBox1.Controls.Add(this.darkButton2); @@ -1917,6 +1924,16 @@ public class GForm_Main : DarkForm this.darkButton4.Text = "Fix Checksums"; this.darkButton4.Click += new System.EventHandler(this.darkButton4_Click); // + // darkButton6 + // + this.darkButton6.Checked = false; + this.darkButton6.Location = new System.Drawing.Point(6, 106); + this.darkButton6.Name = "darkButton6"; + this.darkButton6.Size = new System.Drawing.Size(192, 23); + this.darkButton6.TabIndex = 69; + this.darkButton6.Text = "Open ROM Editor"; + this.darkButton6.Click += new System.EventHandler(this.darkButton6_Click); + // // GForm_Main // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -2299,7 +2316,7 @@ public class GForm_Main : DarkForm if (openFileDialog1.FilterIndex == 1) { byte[] FilesBytes = File.ReadAllBytes(openFileDialog1.FileName); - if (FilesBytes.Length == 0xFFFFF) + if ((FilesBytes.Length - 1) == 0xFFFFF) { byte[] NewFilesBytes = VerifyChecksumFullBin(FilesBytes); if (NewFilesBytes != FilesBytes) @@ -2325,7 +2342,7 @@ public class GForm_Main : DarkForm string ThisR = gform.FileRWD; gform.Dispose(); byte[] FilesBytes = File.ReadAllBytes(ThisB); - if (FilesBytes.Length == 0xF7FFF) + if ((FilesBytes.Length - 1) == 0xF7FFF) { Class_RWD.LoadRWD(ThisR, true, false); byte[] NewFilesBytes = VerifyChecksumFWBin(FilesBytes); @@ -2357,4 +2374,25 @@ public class GForm_Main : DarkForm GForm_Credits GForm_Credits_0 = new GForm_Credits(); GForm_Credits_0.ShowDialog(); } + + private void darkButton6_Click(object sender, EventArgs e) + { + try + { + this.Editortable_0.Show(); + } + catch (Exception ex) + { + try + { + this.Editortable_0 = null; + this.Editortable_0 = new Editortable(ref GForm_Main_0); + this.Editortable_0.Show(); + } + catch + { + + } + } + } } diff --git a/bin/Debug/FlashToolTest.exe b/bin/Debug/FlashToolTest.exe index c438ccf..f35b852 100644 Binary files a/bin/Debug/FlashToolTest.exe and b/bin/Debug/FlashToolTest.exe differ diff --git a/bin/Debug/FlashToolTest.pdb b/bin/Debug/FlashToolTest.pdb index 3c755e1..c638d49 100644 Binary files a/bin/Debug/FlashToolTest.pdb and b/bin/Debug/FlashToolTest.pdb differ diff --git a/bin/Debug/FlashToolTest.zip b/bin/Debug/FlashToolTest.zip index 4bc8052..8ac83a7 100644 Binary files a/bin/Debug/FlashToolTest.zip and b/bin/Debug/FlashToolTest.zip differ