mirror of
https://github.com/4sval/FModel.git
synced 2026-03-21 17:24:26 -05:00
migrate main key + fix custom dirs dup + fix manual games add by ref
This commit is contained in:
parent
2a265eae60
commit
d891c3e8da
|
|
@ -149,7 +149,7 @@ public partial class App
|
|||
{
|
||||
if (!Directory.Exists(gameDir)) continue;
|
||||
UserSettings.Default.PerDirectory[gameDir] =
|
||||
DirectorySettings.Default(setting.GameName, setting.GameDirectory, true, setting.OverridedGame);
|
||||
DirectorySettings.Default(setting.GameName, setting.GameDirectory, true, setting.OverridedGame, setting.AesKeys?.MainKey);
|
||||
}
|
||||
UserSettings.Default.ManualGames.Clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ public partial class MainWindow
|
|||
|
||||
private void OnClosing(object sender, CancelEventArgs e)
|
||||
{
|
||||
_applicationView.CustomDirectories.Save();
|
||||
_discordHandler.Dispose();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ using FModel.ViewModels.ApiEndpoints.Models;
|
|||
|
||||
namespace FModel.Settings;
|
||||
|
||||
public class DirectorySettings : ViewModel
|
||||
public class DirectorySettings : ViewModel, ICloneable
|
||||
{
|
||||
public static DirectorySettings Default(
|
||||
string gameName, string gameDir, bool manual = false, EGame ue = EGame.GAME_UE4_LATEST)
|
||||
string gameName, string gameDir, bool manual = false, EGame ue = EGame.GAME_UE4_LATEST, string aes = "")
|
||||
{
|
||||
UserSettings.Default.PerDirectory.TryGetValue(gameDir, out var old);
|
||||
return new DirectorySettings
|
||||
|
|
@ -23,7 +23,7 @@ public class DirectorySettings : ViewModel
|
|||
Versioning = old?.Versioning ?? new VersioningSettings(),
|
||||
Endpoints = old?.Endpoints ?? EndpointSettings.Default(gameName),
|
||||
Directories = old?.Directories ?? CustomDirectory.Default(gameName),
|
||||
AesKeys = old?.AesKeys ?? new AesResponse { MainKey = string.Empty, DynamicKeys = null },
|
||||
AesKeys = old?.AesKeys ?? new AesResponse { MainKey = aes, DynamicKeys = null },
|
||||
LastAesReload = old?.LastAesReload ?? DateTime.Today.AddDays(-1)
|
||||
};
|
||||
}
|
||||
|
|
@ -112,4 +112,9 @@ public class DirectorySettings : ViewModel
|
|||
{
|
||||
return HashCode.Combine(GameDirectory, (int) UeVersion);
|
||||
}
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
return this.MemberwiseClone();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public class ApplicationViewModel : ViewModel
|
|||
|
||||
CUE4Parse = new CUE4ParseViewModel();
|
||||
CustomDirectories = new CustomDirectoriesViewModel();
|
||||
SettingsView = new SettingsViewModel(CUE4Parse.Game);
|
||||
SettingsView = new SettingsViewModel();
|
||||
AesManager = new AesManagerViewModel(CUE4Parse);
|
||||
MapViewer = new MapViewerViewModel(CUE4Parse);
|
||||
AudioPlayer = new AudioPlayerViewModel();
|
||||
|
|
@ -103,6 +103,7 @@ public class ApplicationViewModel : ViewModel
|
|||
if (!bAlreadyLaunched || UserSettings.Default.CurrentDir.Equals(gameLauncherViewModel.SelectedDirectory))
|
||||
return gameLauncherViewModel.SelectedDirectory;
|
||||
|
||||
// UserSettings.Save(); // ??? change key then change game, key saved correctly what?
|
||||
UserSettings.Default.CurrentDir = gameLauncherViewModel.SelectedDirectory;
|
||||
RestartWithWarning();
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ public class CustomDirectoriesViewModel : ViewModel
|
|||
public void Add(CustomDirectory dir)
|
||||
{
|
||||
_directories.Add(new MenuItem { Header = dir.Header, Tag = dir.DirectoryPath, ItemsSource = EnumerateCommands(dir) });
|
||||
Save();
|
||||
}
|
||||
|
||||
public void Edit(int index, CustomDirectory newDir)
|
||||
|
|
@ -46,11 +47,13 @@ public class CustomDirectoriesViewModel : ViewModel
|
|||
|
||||
dir.Header = newDir.Header;
|
||||
dir.Tag = newDir.DirectoryPath;
|
||||
Save();
|
||||
}
|
||||
|
||||
public void Delete(int index)
|
||||
{
|
||||
_directories.RemoveAt(index);
|
||||
Save();
|
||||
}
|
||||
|
||||
public void Save()
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public class GameSelectorViewModel : ViewModel
|
|||
_detectedDirectories = new ObservableCollection<DirectorySettings>(EnumerateDetectedGames().Where(x => x != null));
|
||||
foreach (var dir in UserSettings.Default.PerDirectory.Values.Where(x => x.IsManual))
|
||||
{
|
||||
_detectedDirectories.Add(dir);
|
||||
_detectedDirectories.Add((DirectorySettings) dir.Clone());
|
||||
}
|
||||
|
||||
DetectedDirectories = new ReadOnlyObservableCollection<DirectorySettings>(_detectedDirectories);
|
||||
|
|
|
|||
|
|
@ -164,7 +164,6 @@ public class SettingsViewModel : ViewModel
|
|||
public ReadOnlyObservableCollection<ETextureFormat> TextureExportFormats { get; private set; }
|
||||
public ReadOnlyObservableCollection<ETexturePlatform> Platforms { get; private set; }
|
||||
|
||||
private readonly FGame _game;
|
||||
private string _outputSnapshot;
|
||||
private string _rawDataSnapshot;
|
||||
private string _propertiesSnapshot;
|
||||
|
|
@ -189,9 +188,9 @@ public class SettingsViewModel : ViewModel
|
|||
|
||||
private bool _mappingsUpdate = false;
|
||||
|
||||
public SettingsViewModel(FGame game)
|
||||
public SettingsViewModel()
|
||||
{
|
||||
_game = game;
|
||||
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user