Merge pull request #2604 from wabbajack-tools/fo3-bsa-fix

Fix FO3 / FNV / Skyrim LE files with special characters in the path corrupting when being packed
This commit is contained in:
trawzified 2024-08-11 23:28:03 +02:00 committed by GitHub
commit ec36b8ab4a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 17 additions and 1 deletions

View File

@ -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.

View File

@ -23,6 +23,7 @@ public static class BinaryHelperExtensions
return version switch
{
VersionType.TES3 => Encoding.ASCII,
VersionType.FO3 => Encoding.UTF8,
VersionType.SSE => Windows1252,
_ => Encoding.UTF7
};

View File

@ -247,7 +247,16 @@ public class StandardInstaller : AInstaller<StandardInstaller>
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<string> meta;