From 5361dad5f027e4d1ee02297d1fa03e9b3dff20e3 Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Sat, 29 Jun 2024 08:51:17 +0100 Subject: [PATCH] Improve data integrity checks (#720) Resolves #719. --- CHANGELOG.md | 1 + Deps/TRGE.Coord.dll | Bin 4358144 -> 4358144 bytes Deps/TRGE.Core.dll | Bin 250880 -> 250880 bytes TRRandomizerCore/Helpers/ChecksumTester.cs | 1 + TRRandomizerCore/TRRandomizerController.cs | 7 +- TRRandomizerCore/TRRandomizerCoord.cs | 9 ++- .../Controls/EditorControl.xaml.cs | 54 ++++++++++----- .../Controls/FolderLoadControl.xaml.cs | 13 ++-- TRRandomizerView/Events/EditorEventArgs.cs | 1 + TRRandomizerView/Windows/MainWindow.xaml.cs | 6 +- TRRandomizerView/Windows/MessageWindow.xaml | 20 ++++-- .../Windows/MessageWindow.xaml.cs | 64 +++++++++++++----- .../Windows/OpenProgressWindow.xaml.cs | 6 +- USING.md | 9 +-- 14 files changed, 130 insertions(+), 61 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24ee8ef13..1264ef870 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ ## [Unreleased](https://github.com/LostArtefacts/TR-Rando/compare/V1.9.1...master) - xxxx-xx-xx +- improved data integrity checks when opening a folder and prior to randomization (#719) ## [V1.9.1](https://github.com/LostArtefacts/TR-Rando/compare/V1.9.0...V1.9.1) - 2024-06-23 - fixed a missing reference related to Willard, which would cause enemy randomization to fail if he was selected (#712) diff --git a/Deps/TRGE.Coord.dll b/Deps/TRGE.Coord.dll index 15df017f96911405d0f7d2c1f379428291801d80..4e4e8d50ba1028bdb34b30cf73cd640a38aaa5f9 100644 GIT binary patch delta 10838 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 EU(OxX)&Kwi diff --git a/TRRandomizerCore/Helpers/ChecksumTester.cs b/TRRandomizerCore/Helpers/ChecksumTester.cs index aa51039a4..6a5259f25 100644 --- a/TRRandomizerCore/Helpers/ChecksumTester.cs +++ b/TRRandomizerCore/Helpers/ChecksumTester.cs @@ -111,6 +111,7 @@ public bool Test(string file) "1e7d0d88ff9d569e22982af761bb006b", // FLOATING.TR2 (Multipatch/EPC) "fd8c45efc3f5e690edd0796d350a28ba", // XIAN.TR2 "b56c04ea52227eb7fdebd0665b45357a", // HOUSE.TR2 + "2241125203a4af81fc4889ed844d5b22", // HOUSE.TR2 (rando-generated for texture optimisation) "04ad2f33e48081a6b27a7f0ebf90968d", // LEVEL1.TR2 "d9b53b88dd70eec1e4b31182f3286bf5", // LEVEL2.TR2 "ca4294e3bd8835ebf06e114b479a22c2", // LEVEL3.TR2 diff --git a/TRRandomizerCore/TRRandomizerController.cs b/TRRandomizerCore/TRRandomizerController.cs index deb7cac5a..a26874913 100644 --- a/TRRandomizerCore/TRRandomizerController.cs +++ b/TRRandomizerCore/TRRandomizerController.cs @@ -20,10 +20,11 @@ public class TRRandomizerController internal AbstractTRScriptEditor ScriptEditor => _editor.ScriptEditor; internal RandomizerSettings LevelRandomizer => (_editor.LevelEditor as ISettingsProvider).Settings; - internal TRRandomizerController(string directoryPath, bool performChecksumTest) + internal TRRandomizerController(string directoryPath) { - // If there is a checksum mismatch, we will just ignore the previous backup and open the folder afresh - _editor = TRCoord.Instance.Open(directoryPath, TRScriptOpenOption.DiscardBackup, performChecksumTest ? TRBackupChecksumOption.PerformCheck : TRBackupChecksumOption.IgnoreIssues); + // If there is a script checksum mismatch, we will just ignore the previous backup and open the folder afresh. If the + // data files fail the checksum test, the folder cannot be opened. + _editor = TRCoord.Instance.Open(directoryPath, TRScriptOpenOption.DiscardBackup, TRBackupChecksumOption.PerformCheck); _editor.SaveProgressChanged += Editor_SaveProgressChanged; _editor.RestoreProgressChanged += Editor_RestoreProgressChanged; StoreExternalOrganisations(); diff --git a/TRRandomizerCore/TRRandomizerCoord.cs b/TRRandomizerCore/TRRandomizerCoord.cs index 813a7b563..f6e5bc428 100644 --- a/TRRandomizerCore/TRRandomizerCoord.cs +++ b/TRRandomizerCore/TRRandomizerCoord.cs @@ -68,10 +68,10 @@ public void Initialise(string applicationID, string version, string taggedVersio TRCoord.Instance.BackupProgressChanged += TRCoord_BackupProgressChanged; } - public TRRandomizerController Open(string directoryPath, bool performChecksumTest) + public TRRandomizerController Open(string directoryPath) { _openEventArgs = new(); - return new(directoryPath, performChecksumTest); + return new(directoryPath); } public static void ClearHistory() @@ -79,6 +79,11 @@ public static void ClearHistory() TRCoord.Instance.ClearHistory(); } + public static void CheckBackupIntegrity() + { + TRCoord.Instance.CheckBackupIntegrity(); + } + public static void ClearCurrentBackup() { TRCoord.Instance.ClearCurrentBackup(); diff --git a/TRRandomizerView/Controls/EditorControl.xaml.cs b/TRRandomizerView/Controls/EditorControl.xaml.cs index 4ae1b273f..1bf938091 100644 --- a/TRRandomizerView/Controls/EditorControl.xaml.cs +++ b/TRRandomizerView/Controls/EditorControl.xaml.cs @@ -7,6 +7,7 @@ using System.Windows; using System.Windows.Controls; using System.Windows.Threading; +using TRGE.Core; using TRRandomizerCore; using TRRandomizerView.Events; using TRRandomizerView.Model; @@ -88,6 +89,7 @@ private void FireEditorStateChanged() { EditorStateChanged?.Invoke(this, new EditorEventArgs { + IsLoaded = Controller != null, IsDirty = _dirty, CanExport = Controller != null && Controller.IsExportPossible, ReloadRequested = _reloadRequested @@ -158,6 +160,23 @@ public bool Randomize() return false; } + try + { + TRRandomizerCoord.CheckBackupIntegrity(); + } + catch (ChecksumMismatchException) + { + MessageWindow.ShowError("Game backup data integrity check failed. Randomization cannot be performed as the game data files in the backup directory are not original." + + "\n\nPlease uninstall the game and remove any external mods you may have applied.\n\nOnce complete, reinstall the game afresh, and open the data folder again in the randomizer to proceed.", + "https://github.com/LostArtefacts/TR-Rando/blob/master/USING.md#troubleshooting"); + + if (DeleteBackupImpl()) + { + Unload(); + } + return false; + } + if (_options.DevelopmentMode) { if (!MessageWindow.ShowConfirm("Development mode is switched on and so the generated level files will not be playable.\n\nDo you wish to continue?")) @@ -284,23 +303,26 @@ public void RestoreDefaults() public bool DeleteBackup() { - if (MessageWindow.ShowConfirm("The files that were backed up when this folder was first opened will be deleted and the editor will be closed.\n\nDo you wish to proceed?")) + return MessageWindow.ShowConfirm("The files that were backed up when this folder was first opened will be deleted and the editor will be closed.\n\nDo you wish to proceed?") + && DeleteBackupImpl(); + } + + private bool DeleteBackupImpl() + { + try { - try - { - _showExternalModPrompt = false; - TRRandomizerCoord.ClearCurrentBackup(); - _dirty = false; - return true; - } - catch (Exception e) - { - MessageWindow.ShowException(e); - } - finally - { - _showExternalModPrompt = true; - } + _showExternalModPrompt = false; + TRRandomizerCoord.ClearCurrentBackup(); + _dirty = false; + return true; + } + catch (Exception e) + { + MessageWindow.ShowException(e); + } + finally + { + _showExternalModPrompt = true; } return false; diff --git a/TRRandomizerView/Controls/FolderLoadControl.xaml.cs b/TRRandomizerView/Controls/FolderLoadControl.xaml.cs index e5eeb261b..4a8775c38 100644 --- a/TRRandomizerView/Controls/FolderLoadControl.xaml.cs +++ b/TRRandomizerView/Controls/FolderLoadControl.xaml.cs @@ -93,9 +93,9 @@ public void OpenDataFolder(RecentFolder folder) OpenDataFolder(folder.FolderPath); } - public void OpenDataFolder(string folderPath, bool performChecksumTest = true) + public void OpenDataFolder(string folderPath) { - OpenProgressWindow opw = new(folderPath, performChecksumTest); + OpenProgressWindow opw = new(folderPath); try { if (opw.ShowDialog() ?? false) @@ -109,12 +109,9 @@ public void OpenDataFolder(string folderPath, bool performChecksumTest = true) } catch (ChecksumMismatchException) { - if (!MessageWindow.ShowConfirm(folderPath + "\n\nGame data integrity check failed. Randomization may not perform as expected as the game data files in the chosen directory are not original." + - "\n\nThe recommended action is for you to re-install the game. Once complete, open the data folder again in the randomizer to proceed." + - "\n\nDo you want to cancel the current operation and take the recommended action?")) - { - OpenDataFolder(folderPath, false); - } + MessageWindow.ShowError(folderPath + "\n\nGame data integrity check failed. Randomization cannot be performed as the game data files in the chosen directory are not original." + + "\n\nPlease uninstall the game and remove any external mods you may have applied.\n\nOnce complete, reinstall the game afresh, and open the data folder again in the randomizer to proceed.", + "https://github.com/LostArtefacts/TR-Rando/blob/master/USING.md#troubleshooting"); } catch (Exception e) { diff --git a/TRRandomizerView/Events/EditorEventArgs.cs b/TRRandomizerView/Events/EditorEventArgs.cs index ee929a2c9..ff0962e47 100644 --- a/TRRandomizerView/Events/EditorEventArgs.cs +++ b/TRRandomizerView/Events/EditorEventArgs.cs @@ -4,6 +4,7 @@ namespace TRRandomizerView.Events; public class EditorEventArgs : EventArgs { + public bool IsLoaded { get; set; } public bool IsDirty { get; set; } public bool CanExport { get; set; } public bool ReloadRequested { get; set; } diff --git a/TRRandomizerView/Windows/MainWindow.xaml.cs b/TRRandomizerView/Windows/MainWindow.xaml.cs index 7bd2ecd9a..d71116329 100644 --- a/TRRandomizerView/Windows/MainWindow.xaml.cs +++ b/TRRandomizerView/Windows/MainWindow.xaml.cs @@ -244,7 +244,11 @@ private void EditorControl_EditorStateChanged(object sender, EditorEventArgs e) IsEditorDirty = e.IsDirty; EditorCanExport = e.CanExport; _developmentModeMenuItem.IsChecked = _editorControl.DevelopmentMode; - if (e.ReloadRequested) + if (!e.IsLoaded) + { + IsEditorActive = false; + } + else if (e.ReloadRequested) { _editorControl.Unload(); IsEditorActive = false; diff --git a/TRRandomizerView/Windows/MessageWindow.xaml b/TRRandomizerView/Windows/MessageWindow.xaml index f628c07f6..4a400d04c 100644 --- a/TRRandomizerView/Windows/MessageWindow.xaml +++ b/TRRandomizerView/Windows/MessageWindow.xaml @@ -50,12 +50,20 @@ -