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 5034a60e..a34b884d 100644 --- a/FModel/ViewModels/CUE4ParseViewModel.cs +++ b/FModel/ViewModels/CUE4ParseViewModel.cs @@ -103,7 +103,15 @@ public class CUE4ParseViewModel : ViewModel } 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 50a55c1a..b90e1d85 100644 --- a/FModel/ViewModels/SettingsViewModel.cs +++ b/FModel/ViewModels/SettingsViewModel.cs @@ -83,12 +83,20 @@ public class SettingsViewModel : ViewModel } private EDiscordRpc _selectedDiscordRpc; + public EDiscordRpc SelectedDiscordRpc { get => _selectedDiscordRpc; set => SetProperty(ref _selectedDiscordRpc, value); } + private FGame _selectedForceGame; + public FGame SelectedForceGame + { + get => _selectedForceGame; + set => SetProperty(ref _selectedForceGame, value); + } + private ECompressedAudio _selectedCompressedAudio; public ECompressedAudio SelectedCompressedAudio { @@ -126,6 +134,7 @@ public class SettingsViewModel : ViewModel public ReadOnlyObservableCollection UpdateModes { get; private set; } public ObservableCollection Presets { get; private set; } + public ReadOnlyObservableCollection GameTypes { get; private set; } public ReadOnlyObservableCollection UeGames { get; private set; } public ReadOnlyObservableCollection AssetLanguages { get; private set; } public ReadOnlyObservableCollection AesReloads { get; private set; } @@ -212,10 +221,12 @@ public class SettingsViewModel : ViewModel 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())); @@ -325,6 +336,7 @@ public class SettingsViewModel : ViewModel 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(); @@ -334,4 +346,4 @@ public class SettingsViewModel : ViewModel private IEnumerable EnumerateLodExportFormat() => Enum.GetValues(); private IEnumerable EnumerateTextureExportFormat() => Enum.GetValues(); private IEnumerable EnumerateUePlatforms() => Enum.GetValues(); -} \ No newline at end of file +} 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}}"/>