private void MainForm_Load(object sender, EventArgs e) { bW = new BackgroundWorker(); bW.WorkerSupportsCancellation = true; bW.DoWork += (s, ev) => { while (true) { try { if (emuInit && gameInit && formInit) { Dolphin.UpdateTrackerInfo(this); } FormUtils.Refresh(); } catch { emuInit = false; gameInit = false; formInit = false; FormUtils.Close(); break; } Thread.Sleep(200); } }; }
private void timer1_Tick(object sender, EventArgs e) { try { if (!emuInit) { emuInit = Dolphin.Init(); } if (emuInit && !gameInit) { gameInit = Dolphin.GameInit(); } if (emuInit && gameInit && !formInit) { Dolphin.InitMP(); Dolphin.InitTracker(this); formInit = true; bW.RunWorkerAsync(); this.timer1.Stop(); } } catch { emuInit = false; gameInit = false; formInit = false; FormUtils.Close(); } }
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); base.SetStyle(ControlStyles.SupportsTransparentBackColor, true); base.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); base.SetStyle(ControlStyles.AllPaintingInWmPaint, true); try { if (!formInit) { e.Graphics.DrawString("Waiting for Metroid Prime 1/2/3...", new Font("Arial", 10), Brushes.Black, new Point(10, 5)); } if (emuInit && gameInit && formInit) { Dolphin.UpdateTracker(e.Graphics); } } catch { emuInit = false; gameInit = false; formInit = false; FormUtils.Close(); } }