private void SyncIWads(FileAddResults fileAddResults) { foreach (string file in fileAddResults.GetAllFiles()) { IGameFile gameFile = DataSourceAdapter.GetGameFile(file); if (gameFile != null && !gameFile.IWadID.HasValue) { DataSourceAdapter.InsertIWad(new IWadData() { GameFileID = gameFile.GameFileID.Value, FileName = file, Name = file }); var iwad = DataSourceAdapter.GetIWads().OrderBy(x => x.IWadID).LastOrDefault(); IWadInfo wadInfo = IWadInfo.GetIWadInfo(gameFile.FileName); gameFile.Title = wadInfo == null?Path.GetFileNameWithoutExtension(gameFile.FileName).ToUpper() : wadInfo.Title; DataSourceAdapter.UpdateGameFile(gameFile, new GameFileFieldType[] { GameFileFieldType.Title }); if (iwad != null) { gameFile.IWadID = iwad.IWadID; DataSourceAdapter.UpdateGameFile(gameFile, new[] { GameFileFieldType.IWadID }); } } } UpdateLocal(); HandleTabSelectionChange(); }
private void SyncPendingZdlFiles() { foreach (IGameFile gameFile in m_pendingZdlFiles) { IGameFile libraryGameFile = DataSourceAdapter.GetGameFile(gameFile.FileName); if (libraryGameFile != null) { libraryGameFile.SettingsSkill = gameFile.SettingsSkill; libraryGameFile.SettingsMap = gameFile.SettingsMap; libraryGameFile.SettingsExtraParams = gameFile.SettingsExtraParams; libraryGameFile.SourcePortID = gameFile.SourcePortID; libraryGameFile.IWadID = gameFile.IWadID; libraryGameFile.SettingsSkill = gameFile.SettingsSkill; libraryGameFile.SettingsFiles = gameFile.SettingsFiles; if (string.IsNullOrEmpty(libraryGameFile.Comments)) { libraryGameFile.Comments = gameFile.Comments; } DataSourceAdapter.UpdateGameFile(libraryGameFile); } } }
private void SetIWadGameFiles() { IEnumerable <IIWadData> iwads = DataSourceAdapter.GetIWads(); List <IGameFile> gameFileDataUpdate = new List <IGameFile>(); if (iwads.Any()) { IEnumerable <IGameFile> gameFiles = DataSourceAdapter.GetGameFiles(); foreach (IIWadData iwad in iwads) { IGameFile find = gameFiles.FirstOrDefault(x => x.FileName.ToLower() == iwad.FileName.ToLower().Replace(".wad", ".zip")); if (find != null) { if (!find.IWadID.HasValue) //this should mean the file was just added so we should set the pre-defined title { FillIwadData(find); gameFileDataUpdate.Add(find); find.IWadID = iwad.IWadID; DataSourceAdapter.UpdateGameFile(find, new GameFileFieldType[] { GameFileFieldType.IWadID }); } if (!iwad.GameFileID.HasValue) { iwad.GameFileID = find.GameFileID; DataSourceAdapter.UpdateIWad(iwad); } } else { Util.ThrowDebugException("This should not happen"); } } } }
private void HandlePlaySettings(PlayForm form, IGameFile gameFile) { if (form.RememberSettings && gameFile != null) { gameFile.SourcePortID = gameFile.IWadID = null; if (form.SelectedSourcePort != null) { gameFile.SourcePortID = form.SelectedSourcePort.SourcePortID; } if (form.SelectedIWad != null) { gameFile.IWadID = form.SelectedIWad.IWadID; } if (form.SelectedMap != null) { gameFile.SettingsMap = form.SelectedMap; } else { gameFile.SettingsMap = string.Empty; //this setting can be turned off } if (form.SelectedSkill != null) { gameFile.SettingsSkill = form.SelectedSkill; } if (form.ExtraParameters != null) { gameFile.SettingsExtraParams = form.ExtraParameters; } gameFile.SettingsStat = form.SaveStatistics; if (form.ShouldSaveAdditionalFiles()) { gameFile.SettingsFiles = string.Join(";", form.GetAdditionalFiles().Select(x => x.FileName).ToArray()); gameFile.SettingsFilesIWAD = string.Join(";", form.GetIWadAdditionalFiles().Select(x => x.FileName).ToArray()); gameFile.SettingsFilesSourcePort = string.Join(";", form.GetSourcePortAdditionalFiles().Select(x => x.FileName).ToArray()); if (form.SpecificFiles != null) { gameFile.SettingsSpecificFiles = string.Join(";", form.SpecificFiles); } else { gameFile.SettingsSpecificFiles = string.Empty; //this setting can be turned off } } DataSourceAdapter.UpdateGameFile(gameFile, new GameFileFieldType[] { GameFileFieldType.SourcePortID, GameFileFieldType.IWadID, GameFileFieldType.SettingsMap, GameFileFieldType.SettingsSkill, GameFileFieldType.SettingsFiles, GameFileFieldType.SettingsExtraParams, GameFileFieldType.SettingsSpecificFiles, GameFileFieldType.SettingsStat, GameFileFieldType.SettingsFilesIWAD, GameFileFieldType.SettingsFilesSourcePort }); } }
private bool StartPlay(IGameFile gameFile, ISourcePortData sourcePort, bool screenFilter) { GameFilePlayAdapter playAdapter = CreatePlayAdapter(m_currentPlayForm, playAdapter_ProcessExited, AppConfiguration); m_saveGames = new IFileData[] { }; if (AppConfiguration.CopySaveFiles) { CopySaveGames(gameFile, sourcePort); } CreateFileDetectors(sourcePort); if (m_currentPlayForm.PreviewLaunchParameters) { ShowLaunchParameters(playAdapter, gameFile, sourcePort); } bool isGameFileIwad = IsGameFileIwad(gameFile); if (m_currentPlayForm.SaveStatistics) { SetupStatsReader(sourcePort, gameFile); } if (playAdapter.Launch(AppConfiguration.GameFileDirectory, AppConfiguration.TempDirectory, gameFile, sourcePort, isGameFileIwad)) { m_currentPlayFile = gameFile; if (gameFile != null) { gameFile.LastPlayed = DateTime.Now; m_dtStartPlay = DateTime.Now; DataSourceAdapter.UpdateGameFile(gameFile, new GameFileFieldType[] { GameFileFieldType.LastPlayed }); UpdateDataSourceViews(gameFile); } } else { MessageBox.Show(this, playAdapter.LastError, "Launch Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (screenFilter) { m_filterForm = new FilterForm(Screen.FromControl(this), m_currentPlayForm.GetFilterSettings()); m_filterForm.Show(this); } return(true); }
private void HandlePlaySettings(PlayForm form, IGameProfile gameProfile) { if (form.RememberSettings && gameProfile != null) { form.UpdateGameProfile(gameProfile); form.GameFile.SettingsGameProfileID = form.SelectedGameProfile.GameProfileID; DataSourceAdapter.UpdateGameFile(form.GameFile, new GameFileFieldType[] { GameFileFieldType.SettingsGameProfileID }); if (gameProfile is IGameFile gameFile) { DataSourceAdapter.UpdateGameFile(gameFile, new GameFileFieldType[] { GameFileFieldType.SourcePortID, GameFileFieldType.IWadID, GameFileFieldType.SettingsMap, GameFileFieldType.SettingsSkill, GameFileFieldType.SettingsFiles, GameFileFieldType.SettingsExtraParams, GameFileFieldType.SettingsSpecificFiles, GameFileFieldType.SettingsStat, GameFileFieldType.SettingsFilesIWAD, GameFileFieldType.SettingsFilesSourcePort, GameFileFieldType.SettingsSaved, GameFileFieldType.SettingsLoadLatestSave }); } else { DataSourceAdapter.UpdateGameProfile(gameProfile); } } }
private void SetMinutesPlayed(DateTime dtExit, IGameFile gameFile) { gameFile.MinutesPlayed += Convert.ToInt32(dtExit.Subtract(m_dtStartPlay).TotalMinutes); DataSourceAdapter.UpdateGameFile(gameFile, new GameFileFieldType[] { GameFileFieldType.MinutesPlayed }); UpdateDataSourceViews(gameFile); }
private bool HandleUpdateMetaFields(IGameFile localFile, List <GameFileFieldType> fields) { DataSourceAdapter.UpdateGameFile(localFile, fields.ToArray()); UpdateDataSourceViews(localFile); return(true); }
private void FillIwadData(IGameFile gameFile) { FileInfo fi = new FileInfo(gameFile.FileName); if (string.IsNullOrEmpty(gameFile.Title)) { switch (gameFile.FileName.Replace(fi.Extension, string.Empty).ToUpper()) { case "DOOM1": gameFile.Title = "Doom Shareware"; break; case "DOOM": gameFile.Title = "The Ultimate Doom"; break; case "DOOM2": gameFile.Title = "Doom II: Hell on Earth"; break; case "PLUTONIA": gameFile.Title = "Final Doom: The Plutonia Experiment"; break; case "TNT": gameFile.Title = "Final Doom: TNT: Evilution"; break; case "FREEDOOM1": gameFile.Title = "Freedoom: Phase 1"; break; case "FREEDOOM2": gameFile.Title = "Freedoom: Phase 2"; break; case "CHEX": gameFile.Title = "Chex Quest"; break; case "CHEX3": gameFile.Title = "Chex Quest 3"; break; case "HACX": gameFile.Title = "Hacx: Twitch 'n Kill"; break; case "HERETIC1": gameFile.Title = "Heretic Shareware"; break; case "HERETIC": gameFile.Title = "Heretic: Shadow of the Serpent Riders"; break; case "HEXEN": gameFile.Title = "Hexen: Beyond Heretic"; break; case "STRIFE0": gameFile.Title = "Strife Demo"; break; case "STRIFE1": gameFile.Title = "Strife: Quest for the Sigil"; break; default: gameFile.Title = gameFile.FileName.Replace(fi.Extension, string.Empty); break; } DataSourceAdapter.UpdateGameFile(gameFile, new GameFileFieldType[] { GameFileFieldType.Title }); } }