Пример #1
0
        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();
                    }
                }
            }
        }
Пример #2
0
        internal void StartWatching(TransparentDxOverlay transparentDXOverlay)
        {
            form = transparentDXOverlay;
            var th = new Thread(CheckGameStillRunningLoop)
            {
                IsBackground = true
            };

            th.Start();
        }