/// <summary> /// Builds the game mode. /// </summary> /// <param name="p_futFileUtility">The file utility class to be used by the game mode.</param> /// <param name="p_imsWarning">The resultant warning resultant from the creation of the game mode. /// <c>null</c> if there are no warnings.</param> /// <returns>The game mode.</returns> public IGameMode BuildGameMode(FileUtil p_futFileUtility, out ViewMessage p_imsWarning) { if (EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId] == null) { EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId] = new PerGameModeSettings <object>(); } if (!EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId].ContainsKey("AskAboutReadOnlySettingsFiles")) { EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId]["AskAboutReadOnlySettingsFiles"] = true; EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId]["UnReadOnlySettingsFiles"] = true; EnvironmentInfo.Settings.Save(); } /*if (File.Exists("FO3Edit.exe")) * m_lstTools.Add(new Command<MainForm>("FO3Edit", "Launches FO3Edit, if it is installed.", LaunchFO3Edit)); * m_lstTools.Add(new CheckedCommand<MainForm>("Archive Invalidation", "Toggles Archive Invalidation.", Fallout3.Tools.ArchiveInvalidation.IsActive(), ToggleArchiveInvalidation)); */ GamebryoGameModeBase gmdGameMode = InstantiateGameMode(p_futFileUtility); if (!File.Exists(((GamebryoGameModeBase)gmdGameMode).SettingsFiles.IniPath)) { p_imsWarning = new ViewMessage(String.Format("You have no {0} INI file. Please run {0} to initialize the file before installing any mods or turning on Archive Invalidation.", gmdGameMode.Name), null, "Missing INI", MessageBoxIcon.Warning); } else { p_imsWarning = null; } return(gmdGameMode); }
/// <summary> /// Builds the game mode. /// </summary> /// <param name="p_futFileUtility">The file utility class to be used by the game mode.</param> /// <param name="p_imsWarning">The resultant warning resultant from the creation of the game mode. /// <c>null</c> if there are no warnings.</param> /// <returns>The game mode.</returns> public IGameMode BuildGameMode(FileUtil p_futFileUtility, out ViewMessage p_imsWarning) { GamebryoGameModeBase gmdGameMode = null; if (EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId] == null) { EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId] = new PerGameModeSettings <object>(); } if (!EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId].ContainsKey("AskAboutReadOnlySettingsFiles")) { EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId]["AskAboutReadOnlySettingsFiles"] = true; EnvironmentInfo.Settings.CustomGameModeSettings[GameModeDescriptor.ModeId]["UnReadOnlySettingsFiles"] = true; EnvironmentInfo.Settings.Save(); } try { gmdGameMode = InstantiateGameMode(p_futFileUtility); if (!File.Exists(((GamebryoGameModeBase)gmdGameMode).SettingsFiles.IniPath)) { // Skyrim VR doesn't create this file automatically. if (gmdGameMode.ModeId.Equals("SkyrimVR", StringComparison.OrdinalIgnoreCase)) { File.Create(gmdGameMode.SettingsFiles.IniPath); p_imsWarning = null; } else { p_imsWarning = new ViewMessage(String.Format("You have no {0} INI file. Please run {0} to initialize the file before installing any mods or turning on Archive Invalidation.", gmdGameMode.Name), null, "Missing INI", MessageBoxIcon.Warning); } } else { p_imsWarning = null; } } catch (SorterException e) { gmdGameMode = null; p_imsWarning = new ViewMessage(String.Format(e.Message), null, "SorterException", MessageBoxIcon.Error); } catch (FileNotFoundException e) { gmdGameMode = null; p_imsWarning = new ViewMessage(string.Format(e.Message), null, "FileNotFoundException", MessageBoxIcon.Error); } return(gmdGameMode); }