diff --git a/FModel/Settings/UserSettings.cs b/FModel/Settings/UserSettings.cs index 545699a7..c9b29d9b 100644 --- a/FModel/Settings/UserSettings.cs +++ b/FModel/Settings/UserSettings.cs @@ -102,6 +102,22 @@ namespace FModel.Settings set => SetProperty(ref _overwriteMapping, value); } + private bool _forceGame; + + public bool ForceGame + { + get => _forceGame; + set => SetProperty(ref _forceGame, value); + } + + private FGame _gameToForce; + + public FGame GameToForce + { + get => _gameToForce; + set => SetProperty(ref _gameToForce, value); + } + private string _mappingFilePath; public string MappingFilePath { diff --git a/FModel/ViewModels/CUE4ParseViewModel.cs b/FModel/ViewModels/CUE4ParseViewModel.cs index 712be0ee..39e54bb7 100644 --- a/FModel/ViewModels/CUE4ParseViewModel.cs +++ b/FModel/ViewModels/CUE4ParseViewModel.cs @@ -101,7 +101,16 @@ namespace FModel.ViewModels } default: { - Game = gameDirectory.SubstringBeforeLast("\\Content").SubstringAfterLast("\\").ToEnum(FGame.Unknown); + if (UserSettings.Default.ForceGame == true) + { + Game = UserSettings.Default.GameToForce; + } + else + { + Game = gameDirectory.SubstringBeforeLast("\\Content").SubstringAfterLast("\\") + .ToEnum(FGame.Unknown); + } + var versions = new VersionContainer(UserSettings.Default.OverridedGame[Game], UserSettings.Default.OverridedPlatform, customVersions: UserSettings.Default.OverridedCustomVersions[Game], optionOverrides: UserSettings.Default.OverridedOptions[Game]); diff --git a/FModel/ViewModels/SettingsViewModel.cs b/FModel/ViewModels/SettingsViewModel.cs index 85fcca67..426cde1b 100644 --- a/FModel/ViewModels/SettingsViewModel.cs +++ b/FModel/ViewModels/SettingsViewModel.cs @@ -89,6 +89,13 @@ namespace FModel.ViewModels set => SetProperty(ref _selectedDiscordRpc, value); } + private FGame _selectedForceGame; + public FGame SelectedForceGame + { + get => _selectedForceGame; + set => SetProperty(ref _selectedForceGame, value); + } + private ECompressedAudio _selectedCompressedAudio; public ECompressedAudio SelectedCompressedAudio { @@ -127,6 +134,7 @@ namespace FModel.ViewModels public ReadOnlyObservableCollection UpdateModes { get; private set; } public ObservableCollection Presets { get; private set; } public ReadOnlyObservableCollection UeGames { get; private set; } + public ReadOnlyObservableCollection GameTypes { get; private set; } public ReadOnlyObservableCollection AssetLanguages { get; private set; } public ReadOnlyObservableCollection AesReloads { get; private set; } public ReadOnlyObservableCollection DiscordRpcs { get; private set; } @@ -211,10 +219,12 @@ namespace FModel.ViewModels SelectedTextureExportFormat = _textureExportFormatSnapshot; SelectedAesReload = UserSettings.Default.AesReload; SelectedDiscordRpc = UserSettings.Default.DiscordRpc; + SelectedForceGame = UserSettings.Default.GameToForce; UpdateModes = new ReadOnlyObservableCollection(new ObservableCollection(EnumerateUpdateModes())); Presets = new ObservableCollection(EnumeratePresets()); UeGames = new ReadOnlyObservableCollection(new ObservableCollection(EnumerateUeGames())); + GameTypes = new ReadOnlyObservableCollection(new ObservableCollection(EnumerateGameTypes())); AssetLanguages = new ReadOnlyObservableCollection(new ObservableCollection(EnumerateAssetLanguages())); AesReloads = new ReadOnlyObservableCollection(new ObservableCollection(EnumerateAesReloads())); DiscordRpcs = new ReadOnlyObservableCollection(new ObservableCollection(EnumerateDiscordRpcs())); @@ -323,6 +333,7 @@ namespace FModel.ViewModels yield return Constants._NO_PRESET_TRIGGER; } private IEnumerable EnumerateUeGames() => Enum.GetValues(); + private IEnumerable EnumerateGameTypes() => Enum.GetValues(); private IEnumerable EnumerateAssetLanguages() => Enum.GetValues(); private IEnumerable EnumerateAesReloads() => Enum.GetValues(); private IEnumerable EnumerateDiscordRpcs() => Enum.GetValues(); diff --git a/FModel/Views/SettingsView.xaml b/FModel/Views/SettingsView.xaml index 8071bb8a..0e8ce0e2 100644 --- a/FModel/Views/SettingsView.xaml +++ b/FModel/Views/SettingsView.xaml @@ -41,6 +41,8 @@ + + @@ -244,6 +246,44 @@ Visibility="{Binding OverwriteMapping, Source={x:Static local:Settings.UserSettings.Default}, Converter={StaticResource BoolToVisibilityConverter}}"/>