diff --git a/CHANGELOG.md b/CHANGELOG.md index f17def0a..8d76f815 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ### Changelog +#### Version - 3.7.1.0 - ? +* Fixed file paths with special characters corrupting when packed into BSAs + * This issue only affected Fallout 3, Fallout NV and Skyrim LE +* Added logging to determine which downloaded files cannot be hashed + * This could occur in the downloading phase when installing a modlist when there are broken/corrupted files in the downloads folder + #### Version - 3.7.0.0 - 6/21/2024 * Added Starfield support * Note: Hashes were added earlier, but the earlier version was not fully compatible due to Wabbajack extracting the BA2 archives incorrectly. This has been fixed. diff --git a/Wabbajack.Compression.BSA/BinaryHelperExtensions.cs b/Wabbajack.Compression.BSA/BinaryHelperExtensions.cs index 203dd9c1..96bba0b3 100644 --- a/Wabbajack.Compression.BSA/BinaryHelperExtensions.cs +++ b/Wabbajack.Compression.BSA/BinaryHelperExtensions.cs @@ -23,6 +23,7 @@ public static class BinaryHelperExtensions return version switch { VersionType.TES3 => Encoding.ASCII, + VersionType.FO3 => Encoding.UTF8, VersionType.SSE => Windows1252, _ => Encoding.UTF7 }; diff --git a/Wabbajack.Installer/StandardInstaller.cs b/Wabbajack.Installer/StandardInstaller.cs index b839c09d..c77b149f 100644 --- a/Wabbajack.Installer/StandardInstaller.cs +++ b/Wabbajack.Installer/StandardInstaller.cs @@ -247,7 +247,16 @@ public class StandardInstaller : AInstaller var metaFile = download.WithExtension(Ext.Meta); var found = bySize[download.Size()]; - var hash = await FileHashCache.FileHashCachedAsync(download, token); + Hash hash = default; + try + { + hash = await FileHashCache.FileHashCachedAsync(download, token); + } + catch(Exception ex) + { + _logger.LogError($"Failed to get hash for file {download}!"); + throw; + } var archive = found.FirstOrDefault(f => f.Hash == hash); IEnumerable meta;