Beispiel #1
0
        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));
        }
Beispiel #2
0
 private static ISaveGameReader CreateSaveGameReader(ISourcePortData sourcePort, FileInfo fi)
 {
     return(SourcePortUtil.CreateSourcePort(sourcePort).CreateSaveGameReader(fi));
 }
Beispiel #3
0
 private bool SaveStatisticsSupported(ISourcePortData sourcePort)
 {
     return(SourcePortUtil.CreateSourcePort(sourcePort).StatisticsSupported());
 }
Beispiel #4
0
        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());
        }
Beispiel #5
0
 private bool LoadLatestSaveSupported(ISourcePortData sourcePort)
 {
     return(SourcePortUtil.CreateSourcePort(sourcePort).LoadSaveGameSupported());
 }