using Data; using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; internal class ctrlPlotGraph : UserControl { private BackgroundWorker backgroundWorker_0 = new BackgroundWorker(); private Brush brush_0; private Class10_settings class10_0; private Class16_u class16_u_0 = new Class16_u(); private Class33_Sensors class33_Sensors_0; private Class18 class18_0; private Class7_u[,] class7_u_0; private ToolStripMenuItem clearPlotsToolStripMenuItem1; private Color[] color_0 = new Color[4]; private float float_0; private float float_1; private float float_2; private float float_4; private Graphics graphics_0; private IContainer icontainer_0; private int int_0; private int int_10 = 40; private int int_10_0 = 15; private int int_11 = 22; private int int_12; private int int_13; private int int_14; private int int_15; private int int_2; private int int_3; private int int_4; private int int_5; private int int_6; private int[,] int_7; private List list_0 = new List(); public MapGraphType mapGraphType_0; private PointF[] pointF_0 = new PointF[4]; private Struct19[] struct19_0; private List Struct12_list_0; private Struct19[,] struct19_2; private int Last_Used_Sensor = 0; private int Cint_Colomn = 14; private int Cint_Sensor = 0; private int custom_value_int; private float custom_value_float; public ctrlPlotGraph() { this.InitializeComponent(); } private void clearPlotsToolStripMenuItem1_Click(object sender, EventArgs e) { this.method_17(); } private void ctrlMapGraph_Load(object sender, EventArgs e) { this.int_14 = base.ClientRectangle.Height; this.int_15 = base.ClientRectangle.Width; try { this.class16_u_0.method_1(null, base.ClientRectangle.Width, base.ClientRectangle.Height); this.method_3(); } catch (Exception exception) { MessageBox.Show(Form.ActiveForm, exception.Message + " " + exception.Source); throw; } } private void ctrlMapGraph_Resize(object sender, EventArgs e) { try { this.class16_u_0.method_1(base.CreateGraphics(), base.ClientRectangle.Width, base.ClientRectangle.Height); if ((this.int_14 != 0) && (this.int_15 != 0)) { float num = ((float) base.ClientRectangle.Height) / ((float) this.int_14); float num2 = ((float) base.ClientRectangle.Width) / ((float) this.int_15); if (this.struct19_0 != null) { for (int i = 0; i < this.class10_0.int_5; i++) { this.struct19_0[i].int_0 = ((int) ((this.struct19_0[i].int_0 - this.int_5) * num2)) + this.int_5; this.struct19_0[i].int_1 = (int) (this.struct19_0[i].int_1 * num); } } } else { this.method_17(); } this.int_15 = base.ClientRectangle.Width; this.int_14 = base.ClientRectangle.Height; this.Refresh(); } catch (Exception exception) { MessageBox.Show(Form.ActiveForm, exception.Message + " " + exception.Source); } } protected override void Dispose(bool disposing) { if (disposing && (this.icontainer_0 != null)) { this.icontainer_0.Dispose(); } base.Dispose(disposing); } private void InitializeComponent() { this.clearPlotsToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.SuspendLayout(); // // clearPlotsToolStripMenuItem1 // this.clearPlotsToolStripMenuItem1.Name = "clearPlotsToolStripMenuItem1"; this.clearPlotsToolStripMenuItem1.Size = new System.Drawing.Size(169, 22); this.clearPlotsToolStripMenuItem1.Text = "Clear Plots"; this.clearPlotsToolStripMenuItem1.Click += new System.EventHandler(this.clearPlotsToolStripMenuItem1_Click); // // ctrlPlotGraph // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.DoubleBuffered = true; this.Font = new System.Drawing.Font("Lucida Sans", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Name = "ctrlPlotGraph"; this.Size = new System.Drawing.Size(126, 112); this.Load += new System.EventHandler(this.ctrlMapGraph_Load); this.Resize += new System.EventHandler(this.ctrlMapGraph_Resize); this.ResumeLayout(false); } internal void method_0(ref Class18 class18_1, ref Class10_settings class10_1) { try { this.class18_0 = class18_1; this.class18_0.delegate58_0 += new Class18.Delegate58(this.method_3); this.class10_0 = class10_1; this.class10_0.delegate14_0 += new Class10_settings.Delegate14(this.method_1); this.class33_Sensors_0 = this.class18_0.class17_0.class33_Sensors; foreach (Control control in base.Controls) { float emSize = control.Font.Size * (class18_0.class10_settings_0.scaleRate / 100f); control.Font = new Font(control.Font.Name, emSize, control.Font.Style, control.Font.Unit); } this.Refresh(); } catch (Exception exception) { MessageBox.Show(Form.ActiveForm, exception.Message + " " + exception.Source); throw; } } private void method_1() { base.Invalidate(); } private void method_12(string string_0, float float_28, float float_29, bool bool_5) { if (bool_5) { this.graphics_0.FillRectangle(new SolidBrush(Color.LightGreen), (float) (float_28 - 5f), (float) (float_29 - 20f), (float) 35f, (float) 15f); } else { this.graphics_0.FillRectangle(new SolidBrush(Color.Red), (float) (float_28 - 5f), (float) (float_29 - 20f), (float) 35f, (float) 15f); } this.graphics_0.DrawString(string_0, new Font("Lucida Sans", 7f, FontStyle.Regular), new SolidBrush(this.class10_0.color_11), (float) (float_28 - 5f), (float) (float_29 - 20f)); } private void method_13(string string_0, float float_28, float float_29) { this.graphics_0.FillRectangle(new SolidBrush(Color.White), (float) (float_28 - 5f), (float) (float_29 - 20f), (float) (this.graphics_0.MeasureString(string_0, new Font("Lucida Sans", 7f, FontStyle.Regular)).Width + 2f), (float) 15f); this.graphics_0.DrawString(string_0, new Font("Lucida Sans", 7f, FontStyle.Regular), new SolidBrush(this.class10_0.color_11), (float) (float_28 - 5f), (float) (float_29 - 20f)); } public void Reset_Struct_Sensor() { if (this.struct19_0 == null) this.struct19_0 = new Struct19[this.class10_0.int_5]; if (this.Struct12_list_0 != null) { while (this.Struct12_list_0.Count > this.class10_0.int_5) this.Struct12_list_0.RemoveAt(0); this.int_6 = 0; for (int i = 0; i < this.Struct12_list_0.Count; i++) { if (this.mapGraphType_0 == MapGraphType.timePlot) this.method_23(this.class10_0.int_5, this.Struct12_list_0[i].byte_43, (float)this.class18_0.method_200(this.Struct12_list_0[i].byte_43), this.float_0, this.float_1); else if (this.mapGraphType_0 == MapGraphType.custom) callfor23(this.Struct12_list_0[i]); } } //this.Refresh(); } public void Next_Live_Plots() { if (this.struct19_0 != null) { for (int i = 1; i < this.class10_0.int_5; i++) { //int_0 = X position, int_1 = Y position this.struct19_0[i - 1].int_0 = this.struct19_0[i - 1].int_0; this.struct19_0[i - 1].int_1 = this.struct19_0[i].int_1; } } if (this.Struct12_list_0 != null && this.Struct12_list_0.Count > 0) this.Struct12_list_0.RemoveAt(0); this.int_6--; //this.Refresh(); } //Reset Live Plots Functions public void method_17() { this.int_6 = 0; if (this.struct19_0 != null) { for (int i = 0; i < this.class10_0.int_5; i++) { this.struct19_0[i].int_0 = 0; this.struct19_0[i].int_1 = 0; } } if (this.Struct12_list_0 != null) this.Struct12_list_0.Clear(); this.int_7 = null; this.struct19_2 = null; this.Refresh(); GC.Collect(); } public void method_19(Struct12 struct12_0) { if (this.mapGraphType_0 == MapGraphType.timePlot || this.mapGraphType_0 == MapGraphType.custom) { if (this.struct19_0 == null) { this.struct19_0 = new Struct19[this.class10_0.int_5]; this.Struct12_list_0 = new List(); } if (this.struct19_0.Length != this.class10_0.int_5) { this.int_6 = 0; this.struct19_0 = new Struct19[this.class10_0.int_5]; this.Struct12_list_0 = new List(); } if (this.int_6 == this.class10_0.int_5) { this.Next_Live_Plots(); } //Store full datalog array this.Struct12_list_0.Add(struct12_0); if (this.mapGraphType_0 == MapGraphType.timePlot) this.method_23(this.class10_0.int_5, struct12_0.byte_43, (float)this.class18_0.method_200(struct12_0.byte_43), this.float_0, this.float_1); else callfor23(struct12_0); this.Invalidate(); } } public void method_20(Struct17 struct17_0) { if ((this.mapGraphType_0 == MapGraphType.rpmPlot) && (this.class18_0.method_198(struct17_0.byte_1) >= this.class10_0.int_4)) { if (this.int_7 == null) { this.int_7 = new int[0x2ee0 / this.class10_0.int_3, 3]; } if (this.struct19_2 == null) { this.struct19_2 = new Struct19[0x2ee0 / this.class10_0.int_3, 2]; } int num = this.class18_0.method_218(struct17_0.long_1) / this.class10_0.int_3; this.int_7[num, 0] += struct17_0.byte_0; this.int_7[num, 1] += struct17_0.byte_2; this.int_7[num, 2]++; this.Invalidate(); } } private void callfor23(Struct12 struct12_0) { custom_value_int = 17596; custom_value_float = -9.68779f; SensorsX sensors_0 = (SensorsX)this.Cint_Sensor; switch (sensors_0) { case SensorsX.rpmX: this.method_10(SensorsX.rpmX, struct12_0.ushort_0_E6_7); break; case SensorsX.ectX: this.method_9(SensorsX.ectX, struct12_0.byte_0); break; case SensorsX.iatX: this.method_9(SensorsX.iatX, struct12_0.byte_1); break; case SensorsX.tpsX: this.method_9(SensorsX.tpsX, struct12_0.byte_5); break; case SensorsX.tpsV: this.method_9(SensorsX.tpsV, struct12_0.byte_5); break; case SensorsX.ignFnl: this.method_9(SensorsX.ignFnl, struct12_0.byte_15_E19); break; case SensorsX.ignTbl: this.method_9(SensorsX.ignTbl, struct12_0.byte_16_E20); break; case SensorsX.vssX: this.method_9(SensorsX.vssX, struct12_0.byte_14_E16); break; case SensorsX.gearX: this.method_9(SensorsX.gearX, struct12_0.byte_20); break; case SensorsX.injFV: this.method_10(SensorsX.injFV, (long)struct12_0.ushort_1_E17_18); break; case SensorsX.injDur: this.method_10(SensorsX.injDur, (long)struct12_0.ushort_1_E17_18); break; case SensorsX.injDuty: this.method_10(SensorsX.injDuty, (long)struct12_0.ushort_1_E17_18); break; case SensorsX.ecuO2V: this.method_9(SensorsX.ecuO2V, struct12_0.byte_2); break; case SensorsX.wbO2V: this.method_9(SensorsX.wbO2V, struct12_0.byte_43); break; case SensorsX.afr: this.method_9(SensorsX.afr, struct12_0.byte_43); break; case SensorsX.mapV: this.method_9(SensorsX.mapV, struct12_0.byte_4); break; case SensorsX.mapX: this.method_9(SensorsX.mapX, struct12_0.byte_4); break; case SensorsX.boostX: this.method_9(SensorsX.boostX, struct12_0.byte_4); break; case SensorsX.paX: this.method_9(SensorsX.paX, struct12_0.byte_3); break; case SensorsX.frame: this.method_10(SensorsX.frame, struct12_0.long_5); break; case SensorsX.interval: this.method_10(SensorsX.interval, struct12_0.long_4); break; case SensorsX.duration: this.method_10(SensorsX.duration, struct12_0.long_3); break; case SensorsX.mil: this.method_9(SensorsX.mil, struct12_0.byte_19); break; case SensorsX.batV: this.method_9(SensorsX.batV, struct12_0.byte_27_E25); break; case SensorsX.eldV: this.method_9(SensorsX.eldV, struct12_0.byte_24_E24); break; case SensorsX.outAc: this.method_9(SensorsX.outAc, struct12_0.byte_22_E22); break; case SensorsX.outPurge: this.method_9(SensorsX.outPurge, struct12_0.byte_22_E22); break; case SensorsX.outFanc: this.method_9(SensorsX.outFanc, struct12_0.byte_22_E22); break; case SensorsX.outFpump: this.method_9(SensorsX.outFpump, struct12_0.byte_22_E22); break; case SensorsX.outIab: this.method_9(SensorsX.outIab, struct12_0.byte_22_E22); break; case SensorsX.outAltCtrl: this.method_9(SensorsX.outAltCtrl, struct12_0.byte_22_E22); break; case SensorsX.outVtsX: this.method_9(SensorsX.outVtsX, struct12_0.byte_23_E23); break; case SensorsX.outMil: this.method_9(SensorsX.outMil, struct12_0.byte_23_E23); break; case SensorsX.outO2h: this.method_9(SensorsX.outO2h, struct12_0.byte_23_E23); break; case SensorsX.outVtsM: this.method_9(SensorsX.outVtsM, struct12_0.byte_6_E8); break; case SensorsX.inVtsFeedBack: this.method_9(SensorsX.inVtsFeedBack, struct12_0.byte_21_E21); break; case SensorsX.outFuelCut: this.method_9(SensorsX.outFuelCut, struct12_0.byte_6_E8); break; case SensorsX.inAccs: this.method_9(SensorsX.inAccs, struct12_0.byte_21_E21); break; case SensorsX.inVtp: this.method_9(SensorsX.inVtp, struct12_0.byte_21_E21); break; case SensorsX.inStartS: this.method_9(SensorsX.inStartS, struct12_0.byte_21_E21); break; case SensorsX.inBksw: this.method_9(SensorsX.inBksw, struct12_0.byte_21_E21); break; case SensorsX.inParkN: this.method_9(SensorsX.inParkN, struct12_0.byte_21_E21); break; case SensorsX.inAtShift1: this.method_9(SensorsX.inAtShift1, struct12_0.byte_6_E8); break; case SensorsX.inAtShift2: this.method_9(SensorsX.inAtShift2, struct12_0.byte_6_E8); break; case SensorsX.inPsp: this.method_9(SensorsX.inPsp, struct12_0.byte_21_E21); break; case SensorsX.inSCC: this.method_9(SensorsX.inSCC, struct12_0.byte_21_E21); break; case SensorsX.postFuel: this.method_9(SensorsX.postFuel, struct12_0.byte_6_E8); break; case SensorsX.ectFc: this.method_9(SensorsX.ectFc, struct12_0.byte_28_E26); break; case SensorsX.o2Short: this.method_10(SensorsX.o2Short, struct12_0.long_0_E27_28); break; case SensorsX.o2Long: this.method_10(SensorsX.o2Long, struct12_0.long_1_E29_30); break; case SensorsX.iatFc: this.method_10(SensorsX.iatFc, struct12_0.long_2_E31_32); break; case SensorsX.veFc: this.method_9(SensorsX.veFc, struct12_0.byte_29_E33); break; case SensorsX.iatIc: this.method_9(SensorsX.iatIc, struct12_0.byte_30_E34); break; case SensorsX.ectIc: this.method_9(SensorsX.ectIc, struct12_0.byte_31_E35); break; case SensorsX.gearIc: this.method_9(SensorsX.gearIc, struct12_0.byte_32_E36); break; case SensorsX.gearFc: this.method_9(SensorsX.gearFc, struct12_0.byte_33_E37); break; case SensorsX.ftsClutchInput: this.method_9(SensorsX.ftsClutchInput, struct12_0.byte_34_E38); break; case SensorsX.ftlInput: this.method_9(SensorsX.ftlInput, struct12_0.byte_34_E38); break; case SensorsX.gpo1_in: this.method_9(SensorsX.gpo1_in, struct12_0.byte_34_E38); break; case SensorsX.gpo2_in: this.method_9(SensorsX.gpo2_in, struct12_0.byte_34_E38); break; case SensorsX.gpo3_in: this.method_9(SensorsX.gpo3_in, struct12_0.byte_34_E38); break; case SensorsX.bstInput: this.method_9(SensorsX.bstInput, struct12_0.byte_34_E38); break; case SensorsX.ftlActive: this.method_9(SensorsX.ftlActive, struct12_0.byte_35_E39); break; case SensorsX.ftsActive: this.method_9(SensorsX.ftsActive, struct12_0.byte_35_E39); break; case SensorsX.antilagActive: this.method_9(SensorsX.antilagActive, struct12_0.byte_35_E39); break; case SensorsX.boostcutActive: this.method_9(SensorsX.boostcutActive, struct12_0.byte_35_E39); break; case SensorsX.ignitionCut: this.method_9(SensorsX.ignitionCut, struct12_0.byte_6_E8); break; case SensorsX.sccChecker: this.method_9(SensorsX.sccChecker, struct12_0.byte_6_E8); break; case SensorsX.gpo1_out: this.method_9(SensorsX.gpo1_out, struct12_0.byte_36_E43); break; case SensorsX.gpo2_out: this.method_9(SensorsX.gpo2_out, struct12_0.byte_36_E43); break; case SensorsX.gpo3_out: this.method_9(SensorsX.gpo3_out, struct12_0.byte_36_E43); break; case SensorsX.bstStage2: this.method_9(SensorsX.bstStage2, struct12_0.byte_36_E43); break; case SensorsX.bstStage3: this.method_9(SensorsX.bstStage3, struct12_0.byte_36_E43); break; case SensorsX.bstStage4: this.method_9(SensorsX.bstStage4, struct12_0.byte_36_E43); break; case SensorsX.overheatActive: this.method_9(SensorsX.overheatActive, struct12_0.byte_36_E43); break; case SensorsX.leanProtection: this.method_9(SensorsX.leanProtection, struct12_0.byte_36_E43); break; case SensorsX.fanCtrl: this.method_9(SensorsX.fanCtrl, struct12_0.byte_35_E39); break; case SensorsX.bstActive: this.method_9(SensorsX.bstActive, struct12_0.byte_35_E39); break; case SensorsX.secMaps: this.method_9(SensorsX.secMaps, struct12_0.byte_35_E39); break; case SensorsX.ebcActive: this.method_9(SensorsX.ebcActive, struct12_0.byte_35_E39); break; case SensorsX.ebcInput: this.method_9(SensorsX.ebcInput, struct12_0.byte_34_E38); break; case SensorsX.ebcHiInput: this.method_9(SensorsX.ebcHiInput, struct12_0.byte_34_E38); break; case SensorsX.ebcDutyX: this.method_9(SensorsX.ebcDutyX, struct12_0.byte_38_E41); break; case SensorsX.ebcBaseDuty: this.method_9(SensorsX.ebcBaseDuty, struct12_0.byte_37_E40); break; case SensorsX.ebcCurrent: this.method_9(SensorsX.ebcCurrent, struct12_0.byte_4); break; case SensorsX.ebcTarget: this.method_9(SensorsX.ebcTarget, struct12_0.byte_39_E42); break; case SensorsX.analog1: this.method_9(SensorsX.analog1, struct12_0.byte_40); break; case SensorsX.analog2: this.method_9(SensorsX.analog2, struct12_0.byte_41); break; case SensorsX.analog3: this.method_9(SensorsX.analog3, struct12_0.byte_42); break; //################################################################## case SensorsX.fuelUsage: this.method_9(SensorsX.fuelUsage, struct12_0.byte_14_E16); break; case SensorsX.accelTime: this.method_9(SensorsX.accelTime, struct12_0.byte_14_E16); break; case SensorsX.flexFuel: this.method_9(SensorsX.flexFuel, this.class33_Sensors_0.GetFlexFuelByte(struct12_0)); break; case SensorsX.ectV: this.method_9(SensorsX.ectV, struct12_0.byte_0); break; case SensorsX.iatV: this.method_9(SensorsX.iatV, struct12_0.byte_1); break; } if (custom_value_int != 17596) //this.class10_0.int_5 ... byte_43 ..... this.method_23_int(custom_value_int, int.Parse(this.class10_0.method_24((SensorsX)this.Cint_Sensor, "customMin")), int.Parse(this.class10_0.method_24((SensorsX)this.Cint_Sensor, "customMax"))); if (custom_value_float != -9.68779f) this.method_23_float(custom_value_float, float.Parse(this.class10_0.method_24((SensorsX)this.Cint_Sensor, "customMin")), float.Parse(this.class10_0.method_24((SensorsX)this.Cint_Sensor, "customMax"))); } private void method_9(SensorsX sensors_0, byte byte_0) { switch (sensors_0) { case SensorsX.rpmX: case SensorsX.injDur: case SensorsX.injDuty: case SensorsX.injFV: case SensorsX.frame: case SensorsX.duration: case SensorsX.interval: case SensorsX.iatFc: case SensorsX.o2Short: case SensorsX.o2Long: case SensorsX.loadType: case SensorsX.test0: case SensorsX.analog1: case SensorsX.analog2: case SensorsX.analog3: case SensorsX.iacvDuty: return; case SensorsX.vssX: custom_value_int = this.class18_0.method_197(byte_0); return; case SensorsX.gearX: custom_value_int = byte_0; return; case SensorsX.mapX: custom_value_float = this.class18_0.method_193(byte_0); return; case SensorsX.boostX: if (this.class18_0.method_206(byte_0) <= this.class10_0.int_6) { custom_value_float = 0; return; } custom_value_float = this.class18_0.method_193(byte_0); return; case SensorsX.paX: custom_value_int = ((int)Math.Round((double)((((byte_0 / 2) + 0x18) * 7.221) - 59.0), 0)); return; case SensorsX.tpsX: custom_value_int = this.class18_0.method_198(byte_0); return; case SensorsX.tpsV: custom_value_float = (float) this.class18_0.method_196(byte_0); return; case SensorsX.ignFnl: custom_value_float = this.class18_0.method_188(byte_0); return; case SensorsX.ignTbl: custom_value_float = this.class18_0.method_188(byte_0); return; case SensorsX.ectX: custom_value_float = (float) this.class18_0.method_191(byte_0); return; case SensorsX.iatX: custom_value_float = (float) this.class18_0.method_191(byte_0); return; case SensorsX.afr: custom_value_float = (float)this.class18_0.method_200(byte_0); return; case SensorsX.ecuO2V: custom_value_float = (float)this.class18_0.method_196(byte_0); return; case SensorsX.wbO2V: custom_value_float = (float)this.class18_0.method_196(byte_0); return; case SensorsX.batV: custom_value_float = (float)this.class18_0.method_208(byte_0); return; case SensorsX.eldV: custom_value_float = (float)this.class18_0.method_196(byte_0); return; case SensorsX.knockV: custom_value_float = (float)this.class18_0.method_196(byte_0); return; case SensorsX.mapV: custom_value_float = (float)this.class18_0.method_196(byte_0); return; case SensorsX.mil: custom_value_int = byte_0; return; case SensorsX.ectFc: custom_value_float = (float)this.class18_0.method_205(byte_0, Enum6.const_1); return; case SensorsX.veFc: custom_value_float = (float)this.class18_0.method_205(byte_0, Enum6.const_1); return; case SensorsX.ectIc: custom_value_float = this.class18_0.method_189(byte_0); return; case SensorsX.iatIc: custom_value_float = this.class18_0.method_189(byte_0); return; case SensorsX.gearIc: custom_value_float = this.class18_0.method_189(byte_0); return; case SensorsX.gearFc: custom_value_float = (float)this.class18_0.method_205(byte_0, Enum6.const_1); return; case SensorsX.postFuel: if (this.class18_0.method_258(byte_0, 0)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outIab: if (this.class18_0.method_258(byte_0, 2)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outVtsX: if (this.class18_0.method_258(byte_0, 7)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outVtsM: if (this.class18_0.method_258(byte_0, 3)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outAc: if (this.class18_0.method_258(byte_0, 7)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outO2h: if (this.class18_0.method_258(byte_0, 6)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outMil: if (this.class18_0.method_258(byte_0, 5)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outPurge: if (this.class18_0.method_258(byte_0, 6)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outFanc: if (this.class18_0.method_258(byte_0, 4)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outFpump: if (this.class18_0.method_258(byte_0, 0)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outFuelCut: if (this.class18_0.method_258(byte_0, 4) || this.class18_0.method_258(byte_0, 5)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.outAltCtrl: if (this.class18_0.method_258(byte_0, 5)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inPsp: if (this.class18_0.method_258(byte_0, 7)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inSCC: if (this.class18_0.method_258(byte_0, 5)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inAccs: if (this.class18_0.method_258(byte_0, 2)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inBksw: if (this.class18_0.method_258(byte_0, 1)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inVtp: if (this.class18_0.method_258(byte_0, 3)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inVtsFeedBack: if (this.class18_0.method_258(byte_0, 6)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inParkN: if (this.class18_0.method_258(byte_0, 0)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inStartS: if (this.class18_0.method_258(byte_0, 4)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inAtShift1: if (this.class18_0.method_258(byte_0, 6)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.inAtShift2: if (this.class18_0.method_258(byte_0, 7)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.secMaps: if (this.class18_0.method_258(byte_0, 5)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.ftlInput: if (this.class18_0.method_258(byte_0, 0)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.ftlActive: if (this.class18_0.method_258(byte_0, 0)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.ftsClutchInput: if (this.class18_0.method_258(byte_0, 1)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.ftsActive: if (this.class18_0.method_258(byte_0, 2)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.boostcutActive: if (this.class18_0.method_258(byte_0, 3)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.overheatActive: if (this.class18_0.method_258(byte_0, 6)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.antilagActive: if (this.class18_0.method_258(byte_0, 1)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.ignitionCut: if (this.class18_0.method_258(byte_0, 2)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.sccChecker: if (this.class18_0.method_258(byte_0, 1)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.ebcInput: if (this.class18_0.method_258(byte_0, 2)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.ebcHiInput: if (this.class18_0.method_258(byte_0, 3)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.ebcActive: if (this.class18_0.method_258(byte_0, 4)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.ebcBaseDuty: custom_value_float = (float)this.class18_0.method_207(byte_0); return; case SensorsX.ebcDutyX: custom_value_float = (float)this.class18_0.method_207(byte_0); return; case SensorsX.ebcTarget: custom_value_float = this.class18_0.method_245(this.class18_0.method_206(byte_0)); return; case SensorsX.ebcCurrent: custom_value_float = this.class18_0.method_245(this.class18_0.method_206(byte_0)); return; case SensorsX.gpo1_in: if (this.class18_0.method_258(byte_0, 4)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.gpo1_out: if (this.class18_0.method_258(byte_0, 0)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.gpo2_in: if (this.class18_0.method_258(byte_0, 5)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.gpo2_out: if (this.class18_0.method_258(byte_0, 1)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.gpo3_in: if (this.class18_0.method_258(byte_0, 6)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.gpo3_out: if (this.class18_0.method_258(byte_0, 2)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.fanCtrl: if (this.class18_0.method_258(byte_0, 6)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.bstStage2: if (this.class18_0.method_258(byte_0, 3)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.bstStage3: if (this.class18_0.method_258(byte_0, 4)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.bstStage4: if (this.class18_0.method_258(byte_0, 5)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.bstActive: if (this.class18_0.method_258(byte_0, 7)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.bstInput: if (this.class18_0.method_258(byte_0, 7)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.leanProtection: if (this.class18_0.method_258(byte_0, 7)) custom_value_int = 1; else custom_value_int = 0; return; case SensorsX.fuelUsage: custom_value_float = (float) this.class33_Sensors_0.FuelUsage; return; case SensorsX.accelTime: custom_value_float = (float) this.class33_Sensors_0.AccelTime; return; case SensorsX.flexFuel: custom_value_float = (float) this.class33_Sensors_0.FlexFuel; return; case SensorsX.ectV: double ThisTempInCelcius = this.class18_0.method_191_GetTempInC(byte_0); double ECTVoltageValue = 5.0 - ((ThisTempInCelcius + 40.0) / 36.0); //################ //Calc Difference from 3.72v double Diff372v = ECTVoltageValue - 3.72; if (Diff372v > 0) ECTVoltageValue += (Diff372v / 3.2); if (Diff372v < 0) ECTVoltageValue -= (-Diff372v / 4.2); //################ custom_value_float = (float) ECTVoltageValue; return; case SensorsX.iatV: double ThisTempInCelcius2 = this.class18_0.method_191_GetTempInC(byte_0); double IATVoltageValue = 5.0 - ((ThisTempInCelcius2 + 40.0) / 36.0); //################ //Calc Difference from 3.72v double Diff372v2 = IATVoltageValue - 3.72; if (Diff372v2 > 0) IATVoltageValue += (Diff372v2 / 3.2); if (Diff372v2 < 0) IATVoltageValue -= (-Diff372v2 / 4.2); //################ custom_value_float = (float)IATVoltageValue; return; default: return; } } private void method_10(SensorsX sensors_0, long long_0) { string str; switch (sensors_0) { case SensorsX.rpmX: custom_value_int = this.class18_0.method_218(long_0); return; case SensorsX.vssX: case SensorsX.gearX: case SensorsX.mapX: case SensorsX.boostX: case SensorsX.paX: case SensorsX.tpsX: case SensorsX.tpsV: case SensorsX.ignFnl: case SensorsX.ignTbl: case SensorsX.ectX: case SensorsX.iatX: case SensorsX.afr: case SensorsX.ecuO2V: case SensorsX.wbO2V: case SensorsX.batV: case SensorsX.eldV: case SensorsX.knockV: case SensorsX.mapV: case SensorsX.mil: case SensorsX.ectFc: case SensorsX.veFc: case SensorsX.ectIc: case SensorsX.iatIc: case SensorsX.gearIc: case SensorsX.gearFc: case SensorsX.postFuel: case SensorsX.outIab: case SensorsX.outVtsX: case SensorsX.outVtsM: case SensorsX.outAc: case SensorsX.outO2h: case SensorsX.outMil: case SensorsX.outPurge: case SensorsX.outFanc: case SensorsX.outFpump: case SensorsX.outFuelCut: case SensorsX.outAltCtrl: case SensorsX.inPsp: case SensorsX.inSCC: case SensorsX.inAccs: case SensorsX.inBksw: case SensorsX.inVtp: case SensorsX.inVtsFeedBack: case SensorsX.inParkN: return; case SensorsX.injDur: custom_value_float = (float) this.class18_0.method_224((int)long_0); return; case SensorsX.injDuty: custom_value_float = (float) this.class18_0.method_225((int)long_0, this.int_0, 0); return; case SensorsX.injFV: custom_value_float = (float) this.class18_0.method_223((int)long_0); return; case SensorsX.frame: custom_value_int = (int) long_0; return; case SensorsX.duration: str = TimeSpan.FromMilliseconds((double)long_0).ToString(); if (str.Length <= 8) { str = str + ".000"; custom_value_float = float.Parse(str); break; } str = str.Remove(str.Length - 5, 5); custom_value_float = float.Parse(str); break; case SensorsX.interval: custom_value_int = (int) long_0; return; case SensorsX.iatFc: custom_value_float = (float) this.class18_0.method_203(long_0, Enum6.const_0); return; case SensorsX.o2Short: custom_value_float = (float)this.class18_0.method_203(long_0, Enum6.const_0); return; case SensorsX.o2Long: custom_value_float = (float) this.class18_0.method_203(long_0, Enum6.const_0); return; default: return; } } private int method_21() { return (base.ClientRectangle.Height - (2 * this.int_4)); } private int method_22() { return ((base.ClientRectangle.Width - this.int_5) - this.int_3); } private void method_23(int int_18, byte byte_0, float float_28, float float_29, float float_30) { int num = ((base.ClientRectangle.Top + this.int_4) + this.method_21()) - ((int) ((this.method_21() * (float_28 - float_29)) / (float_30 - float_29))); if (num < (base.ClientRectangle.Top + this.int_4)) { num = base.ClientRectangle.Top + this.int_4; } this.struct19_0[this.int_6].int_0 = this.int_5 + ((int) Math.Abs((float) (this.method_22() * (((float) this.int_6) / ((float) int_18))))); this.struct19_0[this.int_6].int_1 = num; this.struct19_0[this.int_6].int_2 = this.int_6; this.struct19_0[this.int_6].byte_0 = byte_0; this.int_6++; } private void method_23_int(int Valuee, int Minn, int Maxx) { int num = ((base.ClientRectangle.Top + this.int_4) + this.method_21()) - ((int)((this.method_21() * (Valuee - Minn)) / (Maxx - Minn))); if (num < (base.ClientRectangle.Top + this.int_4)) { num = base.ClientRectangle.Top + this.int_4; } this.struct19_0[this.int_6].int_0 = this.int_5 + ((int)Math.Abs((float)(this.method_22() * (((float)this.int_6) / ((float) this.class10_0.int_5))))); this.struct19_0[this.int_6].int_1 = num; this.struct19_0[this.int_6].int_2 = this.int_6; //this.struct19_0[this.int_6].byte_0 = 175; this.int_6++; } private void method_23_float(float Valuee, float Minn, float Maxx) { int num = ((base.ClientRectangle.Top + this.int_4) + this.method_21()) - ((int)((this.method_21() * (Valuee - Minn)) / (Maxx - Minn))); if (num < (base.ClientRectangle.Top + this.int_4)) { num = base.ClientRectangle.Top + this.int_4; } this.struct19_0[this.int_6].int_0 = this.int_5 + ((int)Math.Abs((float)(this.method_22() * (((float)this.int_6) / ((float)this.class10_0.int_5))))); this.struct19_0[this.int_6].int_1 = num; this.struct19_0[this.int_6].int_2 = this.int_6; //this.struct19_0[this.int_6].byte_0 = byte_0; this.int_6++; } private Struct19 method_25(int int_16, int int_17, float float_28, float float_29, float float_30) { Struct19 struct2 = new Struct19(); int num = ((base.ClientRectangle.Top + this.int_4) + this.method_21()) - ((int) ((this.method_21() * (float_28 - float_29)) / (float_30 - float_29))); if (num < (base.ClientRectangle.Top + this.int_4)) { num = base.ClientRectangle.Top + this.int_4; } struct2.int_0 = this.int_5 + ((int) Math.Abs((float) (this.method_22() * (((float) int_16) / ((float) int_17))))); struct2.int_1 = num; return struct2; } private void method_26() { string str; Pen pen = new Pen(this.class10_0.color_11); Font font = new Font("Lucida Sans", 10f, FontStyle.Regular); Font font2 = new Font("Lucida Sans", 12f, FontStyle.Bold); Brush brush = new SolidBrush(this.class10_0.color_11); //StringFormat format = new StringFormat { // FormatFlags = StringFormatFlags.DirectionVertical //}; int OffsetLeft = 15; int OffsetTop = 30; this.graphics_0.DrawLine(pen, this.int_5 - OffsetLeft, base.ClientRectangle.Top + this.int_4 + OffsetTop, this.int_5 - OffsetLeft, base.ClientRectangle.Bottom - this.int_4); this.graphics_0.DrawLine(pen, this.int_5 - OffsetLeft, base.ClientRectangle.Bottom - this.int_4, base.ClientRectangle.Width - this.int_3, base.ClientRectangle.Bottom - this.int_4); brush.Dispose(); brush = null; brush = new SolidBrush(this.class10_0.color_12); pen.DashStyle = DashStyle.Dash; pen.DashPattern = new float[] { 10f, 4f }; float num = 0f; float num2 = this.int_5 - OffsetLeft; float num3 = base.ClientRectangle.Width - this.int_3; float num4 = (base.ClientRectangle.Height - this.int_4) - this.int_4; for (int i = 0; i <= 14; i++) { num = (this.int_4 + (num4 - OffsetTop)) - ((i * (num4 - OffsetTop)) / 14f); this.graphics_0.DrawLine(pen, num2, num + OffsetTop, num3, num + OffsetTop); str = Math.Round((double) (((this.float_1 - this.float_0) * (((float) i) / 14f)) + this.float_0), 2).ToString(); this.graphics_0.DrawString(str, font, brush, (float) (num2 - this.graphics_0.MeasureString(str, font).Width - 2f), (float) (num - (this.graphics_0.MeasureString(str, font).Height / 2f) + OffsetTop)); } if (this.class10_0.airFuelUnits_0 == AirFuelUnits.afr) str = "AFR"; else str = "Lambda"; //this.graphics_0.DrawString(str, font2, brush, (float) (base.ClientRectangle.Left + 3), (float) ((base.ClientRectangle.Height / 2) - 40), format); this.graphics_0.DrawString(str, font2, brush, (float)((base.ClientRectangle.Width / 2) - 10 - (this.graphics_0.MeasureString(str, font).Width / 2)), (float)(base.ClientRectangle.Top + 25)); brush.Dispose(); brush = null; brush = new SolidBrush(this.class10_0.color_11); str = "Time (frames)"; this.graphics_0.DrawString(str, font2, brush, (float) ((base.ClientRectangle.Width / 2) - 10 - (this.graphics_0.MeasureString(str, font).Width / 2)), (float) (base.ClientRectangle.Bottom - 20)); pen.Dispose(); pen = null; brush.Dispose(); brush = null; font.Dispose(); font = null; font2.Dispose(); font2 = null; //format.Dispose(); //format = null; str = null; } private void method_27() { int OffsetLeft = 15; int OffsetTop = 30; Pen pen = new Pen(this.class10_0.color_12, 2f); for (int i = 0; i < (this.int_6 - 1); i++) { this.graphics_0.DrawLine(pen, this.struct19_0[i].int_0 - OffsetLeft, this.struct19_0[i].int_1 + OffsetTop, this.struct19_0[i + 1].int_0 - OffsetLeft, this.struct19_0[i + 1].int_1 + OffsetTop); } pen.Dispose(); pen = null; } private void method_26_2() { string str; Pen pen = new Pen(this.class10_0.color_11); Font font = new Font("Lucida Sans", 10f, FontStyle.Regular); Font font2 = new Font("Lucida Sans", 12f, FontStyle.Bold); Brush brush = new SolidBrush(this.class10_0.color_11); /*StringFormat format = new StringFormat { FormatFlags = StringFormatFlags.DirectionVertical };*/ int OffsetLeft = 24; int OffsetTop = 20; this.graphics_0.DrawLine(pen, this.int_5 - OffsetLeft, base.ClientRectangle.Top + this.int_4 + OffsetTop, this.int_5 - OffsetLeft, base.ClientRectangle.Bottom - this.int_4); this.graphics_0.DrawLine(pen, this.int_5 - OffsetLeft, base.ClientRectangle.Bottom - this.int_4, base.ClientRectangle.Width - this.int_3, base.ClientRectangle.Bottom - this.int_4); brush.Dispose(); brush = null; brush = new SolidBrush(this.class10_0.color_12); pen.DashStyle = DashStyle.Dash; pen.DashPattern = new float[] { 10f, 4f }; float num = 0f; float num2 = this.int_5 - OffsetLeft; float num3 = base.ClientRectangle.Width - this.int_3; float num4 = (base.ClientRectangle.Height - this.int_4) - this.int_4; if (this.Cint_Sensor >= 0) { for (int i = 0; i <= Cint_Colomn; i++) { num = (this.int_4 + (num4 - OffsetTop)) - ((i * (num4 - OffsetTop)) / Cint_Colomn); this.graphics_0.DrawLine(pen, num2, num + OffsetTop, num3, num + OffsetTop); bool IsINT = bool.Parse(this.class10_0.method_24((SensorsX)this.Cint_Sensor, "customINT")); if (!IsINT) { this.float_0 = float.Parse(this.class10_0.method_24((SensorsX)this.Cint_Sensor, "customMin")); this.float_1 = float.Parse(this.class10_0.method_24((SensorsX)this.Cint_Sensor, "customMax")); str = Math.Round((double)(((this.float_1 - this.float_0) * (((float)i) / Cint_Colomn)) + this.float_0), 2).ToString(); } else { int ThatI1 = int.Parse(this.class10_0.method_24((SensorsX)this.Cint_Sensor, "customMin")); int ThatI2 = int.Parse(this.class10_0.method_24((SensorsX)this.Cint_Sensor, "customMax")); str = ((int)(((ThatI2 - ThatI1) * (((float)i) / Cint_Colomn)) + ThatI1)).ToString(); } this.graphics_0.DrawString(str, font, brush, (float)(num2 - this.graphics_0.MeasureString(str, font).Width - 2f), (float)(num - (this.graphics_0.MeasureString(str, font).Height / 2f) + OffsetTop)); } str = this.class10_0.method_13((SensorsX)Cint_Sensor).ToString(); } else { for (int i = 0; i <= Cint_Colomn; i++) { num = (this.int_4 + (num4 - OffsetTop)) - ((i * (num4 - OffsetTop)) / Cint_Colomn); this.graphics_0.DrawLine(pen, num2 - OffsetLeft, num + OffsetTop, num3, num + OffsetTop); } str = "INVALID SENSOR"; } //this.graphics_0.DrawString(str, font2, brush, (float)(base.ClientRectangle.Left + 3), (float)((base.ClientRectangle.Height / 2) - 40), format); this.graphics_0.DrawString(str, font2, brush, (float)((base.ClientRectangle.Width / 2) - 10 - (this.graphics_0.MeasureString(str, font).Width / 2)), (float)(base.ClientRectangle.Top + 25)); brush.Dispose(); brush = null; brush = new SolidBrush(this.class10_0.color_11); str = "Time (frames)"; this.graphics_0.DrawString(str, font2, brush, (float)((base.ClientRectangle.Width / 2) - 55), (float)(base.ClientRectangle.Bottom - 25)); pen.Dispose(); pen = null; brush.Dispose(); brush = null; font.Dispose(); font = null; font2.Dispose(); font2 = null; //format.Dispose(); //format = null; str = null; } private void method_27_2() { int OffsetLeft = 24; int OffsetTop = 20; Pen pen = new Pen(this.class10_0.color_12, 2f); for (int i = 0; i < (this.int_6 - 1); i++) { this.graphics_0.DrawLine(pen, this.struct19_0[i].int_0 - OffsetLeft, this.struct19_0[i].int_1 + OffsetTop, this.struct19_0[i + 1].int_0 - OffsetLeft, this.struct19_0[i + 1].int_1 + OffsetTop); } pen.Dispose(); pen = null; } private void method_28() { string str; Pen pen = new Pen(this.class10_0.color_11); Font font = new Font("Lucida Sans", 8f, FontStyle.Bold); Font font2 = new Font("Lucida Sans", 10f, FontStyle.Bold); Brush brush = new SolidBrush(this.class10_0.color_13); StringFormat format = new StringFormat { FormatFlags = StringFormatFlags.DirectionVertical }; this.graphics_0.DrawLine(pen, this.int_5 + 5, base.ClientRectangle.Top + this.int_4, this.int_5 + 5, base.ClientRectangle.Bottom - this.int_4); this.graphics_0.DrawLine(pen, this.int_5 + 5, base.ClientRectangle.Bottom - this.int_4, base.ClientRectangle.Width - this.int_3, base.ClientRectangle.Bottom - this.int_4); pen.DashStyle = DashStyle.Dash; pen.DashPattern = new float[] { 10f, 4f }; float num = 0f; float num2 = this.int_5; float num3 = base.ClientRectangle.Width - this.int_3; float num4 = (base.ClientRectangle.Height - this.int_4) - this.int_4; for (int i = 0; i <= 14; i++) { num = (this.int_4 + num4) - ((i * num4) / 14f); this.graphics_0.DrawLine(pen, num2 + 5, num, num3, num); str = Math.Round((double) (((this.float_1 - this.float_0) * (((float) i) / 14f)) + this.float_0), 2).ToString(); this.graphics_0.DrawString(str, font, brush, (float) (num2 - this.graphics_0.MeasureString(str, font).Width), (float) (num - (this.graphics_0.MeasureString(str, font).Height / 2f))); } str = "AFR"; this.graphics_0.DrawString(str, font2, brush, (float) (base.ClientRectangle.Left + 45), (float) (base.ClientRectangle.Top + 4)); brush.Dispose(); brush = null; brush = new SolidBrush(this.class10_0.color_12); for (int j = 0; j <= 14; j++) { num = (this.int_4 + num4) - ((j * num4) / 14f); this.graphics_0.DrawLine(pen, num2 + 5, num, num3, num); str = Math.Round((double) this.class18_0.method_193((int) (255f * (((float) j) / 14f))), 2).ToString(); this.graphics_0.DrawString(str, font, brush, (float) ((num2 - this.graphics_0.MeasureString(str, font).Width) - (this.int_5 - 40)), (float) (num - (this.graphics_0.MeasureString(str, font).Height / 2f))); } str = "MAP"; this.graphics_0.DrawString(str, font2, brush, (float) (base.ClientRectangle.Left + 2), (float) (base.ClientRectangle.Top + 4)); brush.Dispose(); brush = null; brush = new SolidBrush(this.class10_0.color_11); str = "RPM X 1000"; this.graphics_0.DrawString(str, font2, brush, (float) ((base.ClientRectangle.Width / 2) - 40), (float) (base.ClientRectangle.Bottom - 20)); float num7 = 0f; float num8 = 0f; for (float k = 0f; k <= (this.float_4 / this.float_2); k++) { num7 = this.int_5 + ((k * this.method_22()) / (this.float_4 / this.float_2)); string s = (num8 / 1000f).ToString(); this.graphics_0.DrawString(s, font, brush, num7 - (this.graphics_0.MeasureString(s, font).Width / 2f) + 5f, (float) (base.ClientRectangle.Bottom - 30)); num8 += this.float_2; } pen.Dispose(); pen = null; brush.Dispose(); brush = null; font.Dispose(); font = null; font2.Dispose(); font2 = null; format.Dispose(); format = null; str = null; } private void method_29() { if (this.class10_0 != null) { int num2 = 0; Pen pen = new Pen(this.class10_0.color_13, 2f); if (this.int_7 != null) { int num; for (int i = 0; i <= this.int_7.GetUpperBound(0); i++) { if (this.int_7[i, 0] != 0) { byte num4 = (byte) (this.int_7[i, 0] / this.int_7[i, 2]); byte num5 = (byte) (this.int_7[i, 1] / this.int_7[i, 2]); //*(this.struct19_2[i, 0]) = this.method_25(i * this.class10_0.int_3, 0x2af8, (float) this.class18_0.method_200(num4), this.float_0, this.float_1); //*(this.struct19_2[i, 1]) = this.method_25(i * this.class10_0.int_3, 0x2af8, (float) this.class18_0.method_206(num5), 0f, (float) this.class18_0.method_206(0xff)); (this.struct19_2[i, 0]) = this.method_25(i * this.class10_0.int_3, 0x2af8, (float)this.class18_0.method_200(num4), this.float_0, this.float_1); (this.struct19_2[i, 1]) = this.method_25(i * this.class10_0.int_3, 0x2af8, (float)this.class18_0.method_206(num5), 0f, (float)this.class18_0.method_206(0xff)); } } for (int j = 0; j < (this.int_7.GetUpperBound(0) - 1); j++) { if ((this.struct19_2[j, 0].int_1 != 0) && (this.struct19_2[j, 1].int_1 != 0)) { if (this.struct19_2[j + 1, 0].int_1 != 0) { this.graphics_0.DrawLine(pen, this.struct19_2[j, 0].int_0 + 5, this.struct19_2[j, 0].int_1, this.struct19_2[j + 1, 0].int_0 + 5, this.struct19_2[j + 1, 0].int_1); } continue; } if (j != 0) { num = j; num2 = j; while (this.struct19_2[num, 0].int_1 == 0) { num--; if (num <= 0) { break; } } while (this.struct19_2[num2, 0].int_1 == 0) { num2++; if (num2 == (this.int_7.GetUpperBound(0) - 1)) { break; } } if (((num > 0) && (num2 > 0)) && ((this.struct19_2[num, 0].int_1 != 0) && (this.struct19_2[num2, 0].int_1 != 0))) { this.graphics_0.DrawLine(pen, this.struct19_2[num, 0].int_0 + 5, this.struct19_2[num, 0].int_1, this.struct19_2[num2, 0].int_0 + 5, this.struct19_2[num2, 0].int_1); } } } pen.Dispose(); pen = null; pen = new Pen(this.class10_0.color_12, 2f); for (int k = 0; k < (this.int_7.GetUpperBound(0) - 1); k++) { if ((this.struct19_2[k, 0].int_1 != 0) && (this.struct19_2[k, 1].int_1 != 0)) { if (this.struct19_2[k + 1, 1].int_1 != 0) { this.graphics_0.DrawLine(pen, this.struct19_2[k, 1].int_0 + 5, this.struct19_2[k, 1].int_1, this.struct19_2[k + 1, 1].int_0 + 5, this.struct19_2[k + 1, 1].int_1); } continue; } if (k != 0) { num = k; num2 = k; while (this.struct19_2[num, 1].int_1 == 0) { num--; if (num <= 0) { break; } } while (this.struct19_2[num2, 1].int_1 == 0) { num2++; if (num2 == (this.int_7.GetUpperBound(0) - 1)) { break; } } if (((num > 0) && (num2 > 0)) && ((this.struct19_2[num, 1].int_1 != 0) && (this.struct19_2[num2, 1].int_1 != 0))) { this.graphics_0.DrawLine(pen, this.struct19_2[num, 1].int_0 + 5, this.struct19_2[num, 1].int_1, this.struct19_2[num2, 1].int_0 + 5, this.struct19_2[num2, 1].int_1); } } } pen.Dispose(); pen = null; } } } private void method_3() { if (this.class18_0 != null) { if (this.class18_0.method_30_HasFileLoadedInBMTune()) { this.class7_u_0 = new Class7_u[this.class18_0.method_33(), this.class18_0.method_32_GetRPM_RowsNumber()]; } } } protected override void OnPaint(PaintEventArgs pe) { //if (this.graphics_0 != null) this.graphics_0.Dispose(); if (this.class10_0 == null) { this.graphics_0 = pe.Graphics; this.graphics_0.FillRectangle(new SolidBrush(SystemColors.ControlDark), pe.ClipRectangle.X, pe.ClipRectangle.Y, pe.ClipRectangle.Width, pe.ClipRectangle.Height); return; } //Load Settings this.int_13 = base.ClientRectangle.Width - (this.int_10 + this.int_10_0); this.int_12 = base.ClientRectangle.Height - (2 * this.int_11); this.brush_0 = new SolidBrush(this.class10_0.color_3); Rectangle ThisRec = new Rectangle(pe.ClipRectangle.X, pe.ClipRectangle.Y, pe.ClipRectangle.Width, pe.ClipRectangle.Height); Image ThisI; FileInfo info = new FileInfo(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\Back2.bmp"); if (info.Exists) ThisI = new Bitmap(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\Back2.bmp"); else ThisI = null; info = null; //Apply Graphics if (this.class18_0 == null) { this.graphics_0 = pe.Graphics; this.graphics_0.FillRectangle(this.brush_0, pe.ClipRectangle.X, pe.ClipRectangle.Y, pe.ClipRectangle.Width, pe.ClipRectangle.Height); //this.graphics_0.DrawImageUnscaledAndClipped(ThisI, ThisRec); if (ThisI != null) this.graphics_0.DrawImage(ThisI, ThisRec); if (ThisI != null) { ThisI.Dispose(); ThisI = null; } return; } if (this.class18_0.class17_0.frmMain_0.frmLivePlot_0 == null) { this.graphics_0 = pe.Graphics; this.graphics_0.FillRectangle(new SolidBrush(SystemColors.ControlDark), pe.ClipRectangle.X, pe.ClipRectangle.Y, pe.ClipRectangle.Width, pe.ClipRectangle.Height); return; } if (!this.class10_0.bool_6) { return; } if (!this.class18_0.method_30_HasFileLoadedInBMTune() || !this.class16_u_0.method_0()) { this.graphics_0 = pe.Graphics; this.graphics_0.SmoothingMode = SmoothingMode.None; this.graphics_0.FillRectangle(this.brush_0, pe.ClipRectangle.X, pe.ClipRectangle.Y, pe.ClipRectangle.Width, pe.ClipRectangle.Height); //this.graphics_0.DrawImageUnscaledAndClipped(ThisI, ThisRec); if (ThisI != null) { this.graphics_0.DrawImage(ThisI, ThisRec); ThisI.Dispose(); ThisI = null; } return; } if (!this.class16_u_0.method_0()) { return; } this.graphics_0 = this.class16_u_0.method_3(); this.graphics_0.SmoothingMode = SmoothingMode.AntiAlias; this.graphics_0.FillRectangle(this.brush_0, pe.ClipRectangle.X, pe.ClipRectangle.Y, pe.ClipRectangle.Width, pe.ClipRectangle.Height); //this.graphics_0.DrawImageUnscaledAndClipped(ThisI, ThisRec); if (ThisI != null) { this.graphics_0.DrawImage(ThisI, ThisRec); ThisI.Dispose(); ThisI = null; } if (this.class10_0.bool_20_ONLY_NA_VIEW) { int num = 0; for (int i = 0; i < this.class10_0.method_11_GetMAP_ColumnsNumber(); i++) { if (this.class18_0.method_163((byte) i) < 0x41a) { num++; } } this.int_2 = num; } else { this.int_2 = this.class10_0.method_11_GetMAP_ColumnsNumber(); } switch (this.mapGraphType_0) { case MapGraphType.timePlot: if (this.class10_0.airFuelUnits_0 != AirFuelUnits.lambda) { this.float_0 = (float)this.class18_0.method_241(0.68); break; } this.float_0 = 0.68f; if (Last_Used_Sensor != 999) Reset_Struct_Sensor(); Last_Used_Sensor = 999; break; case MapGraphType.rpmPlot: if (this.class10_0.airFuelUnits_0 != AirFuelUnits.lambda) { this.float_0 = (float)this.class18_0.method_241(0.68); } else { this.float_0 = 0.68f; } if (this.class10_0.airFuelUnits_0 == AirFuelUnits.lambda) { this.float_1 = 1.36f; } else { this.float_1 = (float)this.class18_0.method_241(1.36); } this.int_3 = 20; this.int_4 = 30; this.float_2 = 1000f; this.float_4 = 11000f; this.int_5 = 80; this.method_28(); this.method_29(); goto Label_044C; case MapGraphType.custom: this.Cint_Colomn = this.class10_0.int_GraphColumns; this.int_3 = 20; this.int_4 = 30; this.int_5 = 80; if (this.class10_0.int_GraphSensor >= 0) { this.Cint_Sensor = this.class10_0.int_GraphSensor; if (this.Cint_Sensor != Last_Used_Sensor) Reset_Struct_Sensor(); Last_Used_Sensor = this.Cint_Sensor; } this.method_26_2(); this.method_27_2(); goto Label_044C; default: goto Label_044C; } if (this.class10_0.airFuelUnits_0 == AirFuelUnits.lambda) { this.float_1 = 1.36f; } else { this.float_1 = (float) this.class18_0.method_241(1.36); } this.int_3 = 20; this.int_4 = 20; this.int_5 = 60; this.method_26(); this.method_27(); Label_044C: /*if (this.bool_3) { using (List.Enumerator enumerator = this.list_0.GetEnumerator()) { while (enumerator.MoveNext()) { Class7_u current = enumerator.Current; this.method_12(Math.Round(this.double_0, 0).ToString() + " %", (float) this.point_1.X, (float) this.point_1.Y, this.double_0 > 0.0); } goto Label_05C0; } } if (this.bool_1 && !this.bool_0) { string str2 = string.Empty; if (this.class18_0.method_163((byte) this.int_0) > this.class10_0.int_6) { str2 = str2 + this.class18_0.method_167((byte) this.int_0) + " " + this.class10_0.mapSensorUnits_1.ToString(); } else { str2 = str2 + this.class18_0.method_167((byte) this.int_0) + " " + this.class10_0.mapSensorUnits_0.ToString(); } str2 = str2 + "/" + this.class18_0.method_159((byte) this.int_1); this.method_13(str2, (float) this.point_1.X, (float) this.point_1.Y); } Label_05C0: if (this.bool_2) { Pen pen = new Pen(Color.White, 1f) { DashStyle = DashStyle.Dash }; this.graphics_0.DrawRectangle(pen, this.rectangle_0); pen.Dispose(); pen = null; }*/ this.class16_u_0.method_2(pe.Graphics); this.pointF_0 = null; } protected override void OnPaintBackground(PaintEventArgs pe) { } }