public GetGameMode ( string p_strGameModeId ) : IGameModeFactory | ||
p_strGameModeId | string | The id of the game mode for which to retrieve a factory. |
return | IGameModeFactory |
/// <summary> /// Loads the factories for games that have been previously detected as installed. /// </summary> /// <param name="supportedGameModes">A registry containing the factories for all supported game modes.</param> /// <param name="environmentInfo">The application's environment info.</param> /// <returns>A registry containing all of the game mode factories for games that were previously detected as installed.</returns> public static GameModeRegistry LoadInstalledGameModes(GameModeRegistry supportedGameModes, EnvironmentInfo environmentInfo) { Trace.TraceInformation("Loading Game Mode Factories for Installed Games..."); Trace.Indent(); var installedGameModes = new GameModeRegistry(); foreach (var gameId in environmentInfo.Settings.InstalledGames) { Trace.Write($"Loading {gameId}: "); if (supportedGameModes.IsRegistered(gameId)) { Trace.WriteLine("Supported"); installedGameModes.RegisterGameMode(supportedGameModes.GetGameMode(gameId)); } else { Trace.WriteLine("Not Supported"); } } Trace.Unindent(); return(installedGameModes); }
/// <summary> /// Loads the factories for games that have been previously detected as installed. /// </summary> /// <param name="p_gmrSupportedGameModes">A registry containing the factories for all supported game modes.</param> /// <param name="p_eifEnvironmentInfo">The application's envrionment info.</param> /// <returns>A registry containing all of the game mode factories for games that were previously detected as installed.</returns> public static GameModeRegistry LoadInstalledGameModes(GameModeRegistry p_gmrSupportedGameModes, EnvironmentInfo p_eifEnvironmentInfo) { Trace.TraceInformation("Loading Game Mode Factories for Installed Games..."); Trace.Indent(); GameModeRegistry gmrInstalled = new GameModeRegistry(); foreach (string strGameId in p_eifEnvironmentInfo.Settings.InstalledGames) { Trace.Write(String.Format("Loading {0}: ", strGameId)); if (p_gmrSupportedGameModes.IsRegistered(strGameId)) { Trace.WriteLine("Supported"); gmrInstalled.RegisterGameMode(p_gmrSupportedGameModes.GetGameMode(strGameId)); } else { Trace.WriteLine("Not Supported"); } } Trace.Unindent(); return(gmrInstalled); }
/// <summary> /// Loads the factories for games that have been previously detected as installed. /// </summary> /// <param name="p_gmrSupportedGameModes">A registry containing the factories for all supported game modes.</param> /// <param name="p_eifEnvironmentInfo">The application's envrionment info.</param> /// <returns>A registry containing all of the game mode factories for games that were previously detected as installed.</returns> public static GameModeRegistry LoadInstalledGameModes(GameModeRegistry p_gmrSupportedGameModes, EnvironmentInfo p_eifEnvironmentInfo) { Trace.TraceInformation("Loading Game Mode Factories for Installed Games..."); Trace.Indent(); GameModeRegistry gmrInstalled = new GameModeRegistry(); foreach (string strGameId in p_eifEnvironmentInfo.Settings.InstalledGames) { Trace.Write(String.Format("Loading {0}: ", strGameId)); if (p_gmrSupportedGameModes.IsRegistered(strGameId)) { Trace.WriteLine("Supported"); gmrInstalled.RegisterGameMode(p_gmrSupportedGameModes.GetGameMode(strGameId)); } else Trace.WriteLine("Not Supported"); } Trace.Unindent(); return gmrInstalled; }
/// <summary> /// Gets a registry of installed game modes. /// </summary> /// <param name="p_gmrSupportedGameModes">The games modes supported by the mod manager.</param> /// <returns>A registry of installed game modes.</returns> protected GameModeRegistry GetInstalledGameModes(GameModeRegistry p_gmrSupportedGameModes) { if (!m_eifEnvironmentInfo.Settings.InstalledGamesDetected) { GameDiscoverer gdrGameDetector = new GameDiscoverer(); GameDetectionVM vmlGameDetection = new GameDetectionVM(m_eifEnvironmentInfo, gdrGameDetector, p_gmrSupportedGameModes); GameDetectionForm frmGameDetector = new GameDetectionForm(vmlGameDetection); gdrGameDetector.Find(p_gmrSupportedGameModes.RegisteredGameModeFactories); frmGameDetector.ShowDialog(); if (gdrGameDetector.Status != TaskStatus.Complete) return null; if (gdrGameDetector.DiscoveredGameModes.Count == 0) return null; m_eifEnvironmentInfo.Settings.InstalledGames.Clear(); Int32 j = 0; foreach (GameDiscoverer.GameInstallData gidGameMode in gdrGameDetector.DiscoveredGameModes) { if ((gidGameMode != null) && (gidGameMode.GameMode != null)) { IGameModeFactory gmfGameModeFactory = p_gmrSupportedGameModes.GetGameMode(gidGameMode.GameMode.ModeId); m_eifEnvironmentInfo.Settings.InstallationPaths[gidGameMode.GameMode.ModeId] = gmfGameModeFactory.GetInstallationPath(gidGameMode.GameInstallPath); m_eifEnvironmentInfo.Settings.ExecutablePaths[gidGameMode.GameMode.ModeId] = gmfGameModeFactory.GetExecutablePath(gidGameMode.GameInstallPath); m_eifEnvironmentInfo.Settings.InstalledGames.Add(gidGameMode.GameMode.ModeId); } else { MessageBox.Show(string.Format("An error occured during the scan of the game {0} : {1}", gdrGameDetector.DiscoveredGameModes[j].GameMode.ModeId, Environment.NewLine + "The object GameMode is NULL")); } j++; } m_eifEnvironmentInfo.Settings.InstalledGamesDetected = true; m_eifEnvironmentInfo.Settings.Save(); } GameModeRegistry gmrInstalledGameModes = GameModeRegistry.LoadInstalledGameModes(p_gmrSupportedGameModes, m_eifEnvironmentInfo); return gmrInstalledGameModes; }