mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Lots of little compiler fixes
This commit is contained in:
parent
7a681778a2
commit
fd37835532
@ -1,9 +1,10 @@
|
|||||||
### Changelog
|
### Changelog
|
||||||
|
|
||||||
#### Version - 3.0.0.5 -
|
#### Version - 3.0.0.5 - 8/22/2022
|
||||||
* No longer rehashes files on every compile
|
* No longer rehashes files on every compile (faster Add Roots step during compilation)
|
||||||
* Editing paths in the install/compile settings won't crash the app
|
* Editing paths in the install/compile settings won't crash the app
|
||||||
* Fix for .refcache files not being ignored during compilation
|
* Fix for .refcache files not being ignored during compilation
|
||||||
|
* Greatly reduce the amount of UI hangups during compilation
|
||||||
|
|
||||||
#### Version - 3.0.0.4 - 8/20/2022
|
#### Version - 3.0.0.4 - 8/20/2022
|
||||||
* Fix for: when some optional game files weren't present (like CreationKit.exe), the app would refuse to recognize any files from that game
|
* Fix for: when some optional game files weren't present (like CreationKit.exe), the app would refuse to recognize any files from that game
|
||||||
|
@ -278,7 +278,9 @@ namespace Wabbajack
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await compiler.Begin(token);
|
var result = await compiler.Begin(token);
|
||||||
|
if (!result)
|
||||||
|
throw new Exception("Compilation Failed");
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
@ -447,6 +447,8 @@ public abstract class ACompiler
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected async Task BuildPatches(CancellationToken token)
|
protected async Task BuildPatches(CancellationToken token)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
NextStep("Compiling","Looking for patches");
|
||||||
var toBuild = InstallDirectives.OfType<PatchedFromArchive>()
|
var toBuild = InstallDirectives.OfType<PatchedFromArchive>()
|
||||||
.Where(p => _patchOptions.GetValueOrDefault(p, Array.Empty<VirtualFile>()).Length > 0)
|
.Where(p => _patchOptions.GetValueOrDefault(p, Array.Empty<VirtualFile>()).Length > 0)
|
||||||
.SelectMany(p => _patchOptions[p].Select(c => new PatchedFromArchive
|
.SelectMany(p => _patchOptions[p].Select(c => new PatchedFromArchive
|
||||||
@ -487,7 +489,7 @@ public abstract class ACompiler
|
|||||||
_logger.LogInformation("Patch size {patchSize} for {to}", patchSize, match.To);
|
_logger.LogInformation("Patch size {patchSize} for {to}", patchSize, match.To);
|
||||||
}, token);
|
}, token);
|
||||||
}
|
}
|
||||||
}, token);
|
}, token, runInParallel: false);
|
||||||
|
|
||||||
// Load in the patches
|
// Load in the patches
|
||||||
await InstallDirectives.OfType<PatchedFromArchive>()
|
await InstallDirectives.OfType<PatchedFromArchive>()
|
||||||
|
@ -99,11 +99,11 @@ public class Context
|
|||||||
/// <param name="files">Predefined list of files to extract, all others will be skipped</param>
|
/// <param name="files">Predefined list of files to extract, all others will be skipped</param>
|
||||||
/// <param name="callback">Func called for each file extracted</param>
|
/// <param name="callback">Func called for each file extracted</param>
|
||||||
/// <param name="tempFolder">Optional: folder to use for temporary storage</param>
|
/// <param name="tempFolder">Optional: folder to use for temporary storage</param>
|
||||||
/// <param name="updateTracker">Optional: Status update tracker</param>
|
/// <param name="runInParallel">Optional: run `callback`s in parallel</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="Exception"></exception>
|
/// <exception cref="Exception"></exception>
|
||||||
public async Task Extract(HashSet<VirtualFile> files, Func<VirtualFile, IExtractedFile, ValueTask> callback,
|
public async Task Extract(HashSet<VirtualFile> files, Func<VirtualFile, IExtractedFile, ValueTask> callback,
|
||||||
CancellationToken token, AbsolutePath? tempFolder = null)
|
CancellationToken token, AbsolutePath? tempFolder = null, bool runInParallel = true)
|
||||||
{
|
{
|
||||||
var top = new VirtualFile();
|
var top = new VirtualFile();
|
||||||
var filesByParent = files.SelectMany(f => f.FilesInFullPath)
|
var filesByParent = files.SelectMany(f => f.FilesInFullPath)
|
||||||
@ -144,8 +144,18 @@ public class Context
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await filesByParent[top].PDoAll(
|
if (runInParallel)
|
||||||
async file => await HandleFile(file, new ExtractedNativeFile(file.AbsoluteName) {CanMove = false}));
|
{
|
||||||
|
await filesByParent[top].PDoAll(
|
||||||
|
async file => await HandleFile(file, new ExtractedNativeFile(file.AbsoluteName) {CanMove = false}));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var file in filesByParent[top])
|
||||||
|
{
|
||||||
|
await HandleFile(file, new ExtractedNativeFile(file.AbsoluteName) {CanMove = false});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#region KnownFiles
|
#region KnownFiles
|
||||||
|
Loading…
Reference in New Issue
Block a user