From b3840ae4d8c87b792a68034f0c524dd763103aef Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Mon, 6 Jan 2020 16:08:19 -0700 Subject: [PATCH] Allow .mohidden files to be patched --- Wabbajack.Lib/CompilationSteps/IncludePatches.cs | 10 ++++++++-- Wabbajack.Test/TestUtils.cs | 5 ++++- Wabbajack.Test/ZEditIntegrationTests.cs | 2 ++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Wabbajack.Lib/CompilationSteps/IncludePatches.cs b/Wabbajack.Lib/CompilationSteps/IncludePatches.cs index 0677fbbf..48f86990 100644 --- a/Wabbajack.Lib/CompilationSteps/IncludePatches.cs +++ b/Wabbajack.Lib/CompilationSteps/IncludePatches.cs @@ -22,8 +22,14 @@ namespace Wabbajack.Lib.CompilationSteps public override async ValueTask Run(RawSourceFile source) { - if (!_indexed.TryGetValue(Path.GetFileName(source.File.Name.ToLower()), out var choices)) - return null; + var name = Path.GetFileName(source.File.Name.ToLower()); + string nameWithoutExt = name; + if (Path.GetExtension(name) == ".mohidden") + nameWithoutExt = Path.GetFileNameWithoutExtension(name); + + if (!_indexed.TryGetValue(Path.GetFileName(name), out var choices)) + if (!_indexed.TryGetValue(Path.GetFileName(nameWithoutExt), out choices)) + return null; var mod_ini = ((MO2Compiler)_compiler).ModMetas.FirstOrDefault(f => source.Path.StartsWith(f.Key)); var installationFile = mod_ini.Value?.General?.installationFile; diff --git a/Wabbajack.Test/TestUtils.cs b/Wabbajack.Test/TestUtils.cs index 0f68c4f0..b2bc22f4 100644 --- a/Wabbajack.Test/TestUtils.cs +++ b/Wabbajack.Test/TestUtils.cs @@ -185,12 +185,15 @@ namespace Wabbajack.Test public void VerifyAllFiles() { + var skip_files = new HashSet {"portable.txt"}; foreach (var dest_file in Directory.EnumerateFiles(InstallFolder, "*", DirectoryEnumerationOptions.Recursive)) { var rel_file = dest_file.RelativeTo(InstallFolder); if (rel_file.StartsWith(Consts.LOOTFolderFilesDir) || rel_file.StartsWith(Consts.GameFolderFilesDir)) continue; - Assert.IsTrue(File.Exists(Path.Combine(MO2Folder, rel_file)), $"Only in Destination: {rel_file}"); + + if (!skip_files.Contains(Path.GetExtension(rel_file))) + Assert.IsTrue(File.Exists(Path.Combine(MO2Folder, rel_file)), $"Only in Destination: {rel_file}"); } var skip_extensions = new HashSet {".txt", ".ini"}; diff --git a/Wabbajack.Test/ZEditIntegrationTests.cs b/Wabbajack.Test/ZEditIntegrationTests.cs index a4b19234..4d683aba 100644 --- a/Wabbajack.Test/ZEditIntegrationTests.cs +++ b/Wabbajack.Test/ZEditIntegrationTests.cs @@ -73,6 +73,8 @@ namespace Wabbajack.Test }); + + var modlist = await CompileAndInstall(profile); var directive = modlist.Directives.Where(m => m.To == $"mods\\{moddest}\\merged.esp").FirstOrDefault();