public static void Main(string[] args) { Offsets offs; int pid = FindPoeProcess(out offs); if (pid == 0) { MessageBox.Show("Path of Exile is not running!"); return; } Sounds.PreLoadCommonSounds(); OverlayRenderer overlay = null; AppDomain.CurrentDomain.UnhandledException += delegate(object sender, UnhandledExceptionEventArgs exceptionArgs) { if (overlay != null) { overlay.Detach(); } MessageBox.Show("Program exited with message:\n " + exceptionArgs.ExceptionObject.ToString()); Environment.Exit(1); }; SettingsRoot settings = new SettingsRoot("config\\new_settings.txt"); settings.ReadFromFile(); // 1st read for globals and menu using (Memory memory = new Memory(offs, pid)) { offs.DoPatternScans(memory); GameController gameController = new GameController(memory); gameController.RefreshState(); try { Console.WriteLine("Starting overlay"); EventScheduler es = new EventScheduler(gameController); settings.SetObserver((o, s) => es.RequestSave(settings)); TransparentDxOverlay transparentDXOverlay = new TransparentDxOverlay(gameController.Window, settings, es); transparentDXOverlay.InitD3D(); overlay = new OverlayRenderer(gameController, settings, transparentDXOverlay.RC); transparentDXOverlay.KeyPress += overlay.KeyPressOnForm; Application.Run(transparentDXOverlay); } finally { if (overlay != null) { overlay.Detach(); } } } }
public Menu(SettingsRoot settings) { this.settingsRoot = settings; settingsRoot.AddModule(Settings); settingsRoot.ReadFromFile(); }