Skip to content

Commit

Permalink
Adding HDiff patching and old file removal for ZZZ
Browse files Browse the repository at this point in the history
  • Loading branch information
neon-nyan committed Aug 12, 2024
1 parent 4271e13 commit d66c2b4
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1137,21 +1137,19 @@ private async ValueTask<int> RunPackageVerificationRoutine(GameInstallPackage as

private long GetAssetIndexTotalUncompressSize(List<GameInstallPackage> assetIndex)
{
long returnSize = 0;
ArgumentNullException.ThrowIfNull(assetIndex);

foreach (GameInstallPackage asset in assetIndex)
{
using (Stream stream = GetSingleOrSegmentedDownloadStream(asset))
using (ArchiveFile archiveFile = new ArchiveFile(stream!))
{
returnSize += archiveFile.Entries.Sum(x => (long)x!.Size);
}
}

long returnSize = assetIndex.Sum(GetSingleOrSegmentedUncompressedSize);
return returnSize;
}

private long GetSingleOrSegmentedUncompressedSize(GameInstallPackage asset)
{
using Stream stream = GetSingleOrSegmentedDownloadStream(asset);
using ArchiveFile archiveFile = new ArchiveFile(stream!);
return archiveFile.Entries.Sum(x => (long)x!.Size);
}

private Stream GetSingleOrSegmentedDownloadStream(GameInstallPackage asset)
{
if (asset == null) return null;
Expand Down Expand Up @@ -1213,6 +1211,9 @@ protected virtual async Task StartPackageInstallationInner(List<GameInstallPacka
_status!.IsProgressAllIndetermined = false;
UpdateStatus();

_progressPerFileSizeCurrent = 0;
_progressPerFileSizeTotal = GetSingleOrSegmentedUncompressedSize(asset);

// Assign extractor
string packageExtension = Path.GetExtension(asset!.PathOutput).ToLower();
#if USENEWZIPDECOMPRESS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;

// ReSharper disable GrammarMistakeInComment
// ReSharper disable CommentTypo
Expand Down Expand Up @@ -81,6 +82,26 @@ public ZenlessInstall(UIElement parentUI, IGameVersionCheck GameVersionManager,
ZenlessSettings = zenlessSettings;
}

#region Override Methods - StartPackageInstallationInner
protected override async Task StartPackageInstallationInner(List<GameInstallPackage>? gamePackage = null,
bool isOnlyInstallPackage = false,
bool doNotDeleteZipExplicit = false)
{
// Run the base installation process
await base.StartPackageInstallationInner(gamePackage, isOnlyInstallPackage, doNotDeleteZipExplicit);

// Then start on processing hdifffiles list and deletefiles list
await ApplyHdiffListPatch();
ApplyDeleteFileAction();

// Update the audio lang list if not in isOnlyInstallPackage mode
if (!isOnlyInstallPackage)
{
WriteAudioLangList(_assetIndex);
}
}
#endregion

#region Override Methods - Audio Lang List
protected override void WriteAudioLangList(List<GameInstallPackage> gamePackage)
{
Expand Down

0 comments on commit d66c2b4

Please sign in to comment.