private IStatisticsReader CreateStatisticsReader(ISourcePortData sourcePort, IGameFile gameFile) { List <IStatsData> existingStats = new List <IStatsData>(); if (gameFile != null && gameFile.GameFileID.HasValue) { existingStats = DataSourceAdapter.GetStats(gameFile.GameFileID.Value).ToList(); } return(SourcePortUtil.CreateSourcePort(sourcePort).CreateStatisticsReader(gameFile, existingStats)); }
private static ISaveGameReader CreateSaveGameReader(ISourcePortData sourcePort, FileInfo fi) { return(SourcePortUtil.CreateSourcePort(sourcePort).CreateSaveGameReader(fi)); }
private bool SaveStatisticsSupported(ISourcePortData sourcePort) { return(SourcePortUtil.CreateSourcePort(sourcePort).StatisticsSupported()); }
public string GetLaunchParameters(LauncherPath gameFileDirectory, LauncherPath tempDirectory, IGameFile gameFile, ISourcePortData sourcePortData, bool isGameFileIwad) { ISourcePort sourcePort = SourcePortUtil.CreateSourcePort(sourcePortData); StringBuilder sb = new StringBuilder(); List <IGameFile> loadFiles = AdditionalFiles.ToList(); if (isGameFileIwad) { loadFiles.Remove(gameFile); } else if (!loadFiles.Contains(gameFile)) { loadFiles.Add(gameFile); } if (IWad != null) { if (!AssertFile(gameFileDirectory.GetFullPath(), gameFile.FileName, "game file")) { return(null); } if (!HandleGameFileIWad(IWad, sourcePort, sb, gameFileDirectory, tempDirectory)) { return(null); } } List <string> launchFiles = new List <string>(); foreach (IGameFile loadFile in loadFiles) { if (!AssertFile(gameFileDirectory.GetFullPath(), loadFile.FileName, "game file")) { return(null); } if (!HandleGameFile(loadFile, launchFiles, gameFileDirectory, tempDirectory, sourcePortData, true)) { return(null); } } string[] extensions = sourcePortData.SupportedExtensions.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); launchFiles = SortParameters(launchFiles, extensions).ToList(); BuildLaunchString(sb, sourcePort, launchFiles); if (Map != null) { sb.Append(sourcePort.WarpParameter(new SpData(Map))); if (Skill != null) { sb.Append(sourcePort.SkillParameter(new SpData(Skill))); } } if (Record) { RecordedFileName = Path.Combine(tempDirectory.GetFullPath(), Guid.NewGuid().ToString()); sb.Append(sourcePort.RecordParameter(new SpData(RecordedFileName))); } if (PlayDemo && PlayDemoFile != null) { if (!AssertFile(PlayDemoFile, "", "demo file")) { return(null); } sb.Append(sourcePort.PlayDemoParameter(new SpData(PlayDemoFile))); } if (ExtraParameters != null) { sb.Append(" " + ExtraParameters); } if (!string.IsNullOrEmpty(sourcePortData.ExtraParameters)) { sb.Append(" " + sourcePortData.ExtraParameters); } IStatisticsReader statsReader = sourcePort.CreateStatisticsReader(gameFile, new IStatsData[] { }); if (SaveStatistics && statsReader != null && !string.IsNullOrEmpty(statsReader.LaunchParameter)) { sb.Append(" " + statsReader.LaunchParameter); } return(sb.ToString()); }
private bool LoadLatestSaveSupported(ISourcePortData sourcePort) { return(SourcePortUtil.CreateSourcePort(sourcePort).LoadSaveGameSupported()); }