Ejemplo n.º 1
0
        private static void InitLauncherSettings()
        {
            if (AreLauncherSettingsInitialized)
            {
                return;
            }

            LauncherSettings = new LauncherSettings();

            if (File.Exists(HLVRPaths.VRLauncherSettingsFile))
            {
                AreLauncherSettingsInitialized =
                    TryLoadSettings(HLVRPaths.VRLauncherSettingsFile) &&
                    TryStoreSettings(LauncherSettings, HLVRPaths.VRLauncherSettingsFile);
            }
            else
            {
                AreLauncherSettingsInitialized = TryStoreSettings(LauncherSettings, HLVRPaths.VRLauncherSettingsFile);
            }

            if (string.IsNullOrEmpty(HLVRPaths.HLDirectory))
            {
                HLVRPaths.RestoreLastHLDirectory();
            }
        }
Ejemplo n.º 2
0
        public MainWindow()
        {
            try
            {
                singleProcessEnforcer.ForceSingleProcess();

                HLVRPaths.Initialize();
                UpdateSettingsAndLanguage();

                InitializeComponent();

                UpdateState();
                RefreshConfigTabs();

                LoadReadme();
                InitializeNotifyIcon();

                HandleInitialSettings();

                IsValidProcess = true;
            }
            catch (CancelAndTerminateAppException)
            {
                Application.Current?.Shutdown();
            }
        }
Ejemplo n.º 3
0
 public static void SaveI18NFile()
 {
     if (HLVRPaths.CheckModDirectory())
     {
         if (!Directory.Exists(HLVRPaths.VRI18NDirectory))
         {
             Directory.CreateDirectory(HLVRPaths.VRI18NDirectory);
         }
         var lines = texts.ToList().ConvertAll(pair => pair.Key + "=" + pair.Value);
         lines.Sort();
         File.WriteAllText(I18NFile, string.Join("\n", lines), Encoding.UTF8);
     }
 }
Ejemplo n.º 4
0
 private void HandleInitialSettings()
 {
     if (HLVRSettingsManager.LauncherSettings.GeneralSettings[LauncherSettings.CategoryLauncher][LauncherSettings.StartMinimized].IsTrue())
     {
         WindowState = WindowState.Minimized;
         OnWindowStateChanged();
     }
     if (HLVRSettingsManager.LauncherSettings.GeneralSettings[LauncherSettings.CategoryLauncher][LauncherSettings.AutoRunMod].IsTrue() &&
         HLVRPaths.CheckHLDirectory() &&
         HLVRPaths.CheckModDirectory())
     {
         hlvrModLauncher.LaunchMod(false);
     }
 }
Ejemplo n.º 5
0
        public static void Init()
        {
            string previouslanguage = CurrentLanguage;

            CurrentLanguage = HLVRSettingsManager.LauncherSettings.GeneralSettings[LauncherSettings.CategoryLanguage][LauncherSettings.Language].Value;
            if (CurrentLanguage == null || CurrentLanguage.Length == 0)
            {
                CurrentLanguage = "en";
            }

            if (HLVRPaths.CheckModDirectory())
            {
                if (!Directory.Exists(HLVRPaths.VRI18NDirectory))
                {
                    Directory.CreateDirectory(HLVRPaths.VRI18NDirectory);
                }
                if (File.Exists(I18NFile))
                {
                    texts.Clear();

                    using (StringReader reader = new StringReader(File.ReadAllText(I18NFile, Encoding.UTF8)))
                    {
                        string line;
                        while ((line = reader.ReadLine()) != null)
                        {
                            var pair = line.Split(new char[] { '=' }, 2);
                            if (pair.Length == 2)
                            {
                                texts[pair[0]] = pair[1];
                            }
                        }
                    }
                }
            }

            UpdateLanguages();

            if (previouslanguage != CurrentLanguage)
            {
                System.Windows.Application.Current?.Dispatcher?.BeginInvoke((Action)(() => (System.Windows.Application.Current?.MainWindow as MainWindow)?.RefreshConfigTabs(true, true)));
            }
        }
Ejemplo n.º 6
0
        private static void InitModSettings()
        {
            if (AreModSettingsInitialized)
            {
                return;
            }

            ModSettings = new ModSettings();

            if (!HLVRPaths.CheckHLDirectory() || !HLVRPaths.CheckModDirectory())
            {
                AreModSettingsInitialized = false;
                return;
            }

            if (File.Exists(HLVRPaths.VRModSettingsFile))
            {
                if (!TryLoadSettings(HLVRPaths.VRModSettingsFile))
                {
                    var errorMsg   = new I18N.I18NString("ErrorMsgCouldNotLoadModSettings", "Couldn't load mod settings file. If you chose OK, HLVRConfig will replace settings with default values. If you chose Cancel, config tabs will not be available.");
                    var errorTitle = new I18N.I18NString("Error", "Error");
                    var result     = MessageBox.Show(I18N.Get(errorMsg), I18N.Get(errorTitle), MessageBoxButton.OKCancel, MessageBoxImage.Warning);
                    if (result != MessageBoxResult.OK)
                    {
                        AreModSettingsInitialized = false;
                        return;
                    }
                }
            }

            if (!TryStoreSettings(ModSettings, HLVRPaths.VRModSettingsFile))
            {
                var errorMsg   = new I18N.I18NString("ErrorMsgCouldNotSynchronizeModSettings", "Couldn't synchronize mod settings. Config tabs are not available.");
                var errorTitle = new I18N.I18NString("Error", "Error");
                MessageBox.Show(I18N.Get(errorMsg), I18N.Get(errorTitle), MessageBoxButton.OK, MessageBoxImage.Warning);
                AreModSettingsInitialized = false;
                return;
            }

            AreModSettingsInitialized = true;
        }
Ejemplo n.º 7
0
        private static void UpdateLanguages()
        {
            HLVRSettingsManager.LauncherSettings.Languages.Clear();
            HLVRSettingsManager.LauncherSettings.Languages["en"] = new I18NString("Language.en", "English");

            if (HLVRPaths.CheckModDirectory())
            {
                foreach (var file in Directory.GetFiles(HLVRPaths.VRI18NDirectory, "*.lang", SearchOption.AllDirectories))
                {
                    var language = Path.GetFileNameWithoutExtension(file);
                    if (language.Length > 0 && language != "en")
                    {
                        HLVRSettingsManager.LauncherSettings.Languages[language] = new I18NString("Language." + language, language);
                    }
                }
            }

            System.Windows.Application.Current?.Dispatcher?.BeginInvoke((Action)(() => (System.Windows.Application.Current?.MainWindow as MainWindow)?.UpdateGUITexts()));

            UpdateSpeechLanguages();
        }
Ejemplo n.º 8
0
 public void UpdateState()
 {
     UpdateSettingsAndLanguage();
     if (!HLVRPaths.CheckHLDirectory() || !HLVRPaths.CheckModDirectory())
     {
         ModNotFoundPanel.Visibility     = Visibility.Visible;
         NotRunningGamePanel.Visibility  = Visibility.Collapsed;
         RunningGamePannel.Visibility    = Visibility.Collapsed;
         CreateMiniDumpButton.Visibility = Visibility.Collapsed;
     }
     else
     {
         ModNotFoundPanel.Visibility     = Visibility.Collapsed;
         NotRunningGamePanel.Visibility  = hlvrModLauncher.IsGameRunning() ? Visibility.Collapsed : Visibility.Visible;
         RunningGamePannel.Visibility    = hlvrModLauncher.IsGameRunning() ? Visibility.Visible : Visibility.Collapsed;
         CreateMiniDumpButton.Visibility =
             (HLVRSettingsManager.LauncherSettings.GeneralSettings[LauncherSettings.CategoryDebug][LauncherSettings.EnableMiniDumpButton].IsTrue() &&
              hlvrModLauncher.IsGameRunning()
             ) ? Visibility.Visible : Visibility.Collapsed;
     }
 }
Ejemplo n.º 9
0
        private static void InitFileSystemWatcherEtc()
        {
            if (storeLoadTaskWaitHandle == null)
            {
                storeLoadTaskWaitHandle = new EventWaitHandle(false, EventResetMode.AutoReset);
            }

            if (storeLoadThread == null)
            {
                storeLoadThread = new Thread(StoreLoadWorkerLoop)
                {
                    IsBackground = true
                };
                storeLoadThread.Start();
            }

            if (!IsFileSystemWatcherInitialized)
            {
                if (fileSystemWatcher != null)
                {
                    fileSystemWatcher.Dispose();
                    fileSystemWatcher = null;
                }

                if (HLVRPaths.CheckHLDirectory() && HLVRPaths.CheckModDirectory())
                {
                    fileSystemWatcher = new FileSystemWatcher
                    {
                        Path = HLVRPaths.VRDirectory,
                        EnableRaisingEvents   = true,
                        IncludeSubdirectories = false,
                        NotifyFilter          = NotifyFilters.LastWrite
                    };
                    fileSystemWatcher.Changed += FileSystemWatcher_Changed;

                    IsFileSystemWatcherInitialized = true;
                }
            }
        }
Ejemplo n.º 10
0
 public MainWindow()
 {
     try
     {
         singleProcessEnforcer.ForceSingleProcess();
         HLVRPaths.Initialize();
         HLVRSettingsManager.InitSettings();
         hlvrPatcher.Initialize();
         IsValidProcess = true;
         InitializeComponent();
         HLVRLauncherConfig.Initialize(LauncherConfig);
         HLVRModConfig.Initialize(ModConfig);
         InitializeNotifyIcon();
         UpdateState();
         HandleInitialSettings();
         LoadReadme();
     }
     catch (CancelAndTerminateAppException)
     {
         System.Windows.Application.Current.Shutdown();
     }
 }