Example #1
0
        public static void Main(string[] args)
        {
            m_mutex = new Mutex(true, AppName, out bool createdNew);

            if (!createdNew)
            {
                Console.WriteLine(AppName + " is already running! Exiting the application.");
                Console.ReadKey();
                return;
            }

            InitLogs();
            NexHudSettings.load();

            NexHudEngine.Log("NexHud Version: " + Version);

            NexHudEngineMode _requestedMode = NexHudSettings.GetInstance().nexHudMode;

            foreach (string a in args)
            {
                if (a == ArgAuto)
                {
                    _requestedMode = NexHudEngineMode.Auto;
                }
                else if (a == ArgDebug)
                {
                    _requestedMode = NexHudEngineMode.WindowDebug;
                }
                else if (a == ArgVr)
                {
                    _requestedMode = NexHudEngineMode.Vr;
                }
                else if (a == ArgClassic)
                {
                    _requestedMode = NexHudEngineMode.WindowOverlay;
                }
            }
            NexHudEngine.Log("Engine mode Requested: " + _requestedMode);
            //performTests();
            InitEliteApi();

            InitEngine(_requestedMode);
            NexHudEngine.Log("Engine mode: " + _requestedMode);

            LoadConfigs();


            if (NexHudEngine.engineMode == NexHudEngineMode.Vr)
            {
                InitVrConsole();
            }

            new NxMenu();

            try
            {
                NexHudEngine.Run(); // Runs update/draw calls for all active overlays. And yes, it's blocking.
            }
            catch (Exception ex)
            {
                NexHudEngine.Log(NxLog.Type.Fatal, ex.Message);
                NexHudEngine.Log(NxLog.Type.Fatal, ex.Source);
                NexHudEngine.Log(NxLog.Type.Fatal, ex.StackTrace);
            }
        }