diff --git a/assets/hpatchz.exe b/assets/hpatchz.exe index 6849641..ed63972 100644 Binary files a/assets/hpatchz.exe and b/assets/hpatchz.exe differ diff --git a/frontend/src/hooks/useGlobalEvents.tsx b/frontend/src/hooks/useGlobalEvents.tsx index b497862..0464de6 100644 --- a/frontend/src/hooks/useGlobalEvents.tsx +++ b/frontend/src/hooks/useGlobalEvents.tsx @@ -19,24 +19,25 @@ export function useGlobalEvents() { const onProxyExit = () => setProxyRunning(false); const onDownload = (event: any) => { - const { percent, speed } = event.data[0]; + const { percent, speed } = event.data; setProgressDownload(Number(percent)); setDownloadSpeed(speed); }; const onUpdateProgress = (event: any) => { - const { progress, maxProgress } = event.data[0]; + console.log(event) + const { progress, maxProgress } = event.data; setProgressUpdate(Number(progress)); setMaxProgressUpdate(Number(maxProgress)); }; const onMessageUpdate = (event: any) => { - const { message } = event.data[0]; + const { message } = event.data; setMessageUpdate(message); }; const onStageUpdate = (event: any) => { - const { stage } = event.data[0]; + const { stage } = event.data; setStageType(stage); }; @@ -49,7 +50,7 @@ export function useGlobalEvents() { Events.On("diff:message", onMessageUpdate); Events.On("diff:stage", onStageUpdate); Events.On("diff:error", (event: any) => { - const { message } = event.data[0]; + const { message } = event.data; toast.error(message); }); Events.On("window:close", async () => { diff --git a/internal/diff-service/hdiffz.go b/internal/diff-service/hdiffz.go index 56f87cf..ff8e2ce 100644 --- a/internal/diff-service/hdiffz.go +++ b/internal/diff-service/hdiffz.go @@ -68,9 +68,11 @@ func (h *DiffService) VersionValidate(gamePath, patchPath string) (bool, string) if err := sevenzip.ExtractAFileFromZip(patchPath, "StarRail_Data\\StreamingAssets\\BinaryVersion.bytes.hdiff", constant.TempUrl); err != nil { return false, err.Error() } + patchBinFile := filepath.Join(constant.TempUrl, "BinaryVersion.bytes.hdiff") sourceBinFile := oldBinPath tempBinFile = filepath.Join(constant.TempUrl, "BinaryVersion.bytes") + if err := hpatchz.ApplyPatch(sourceBinFile, patchBinFile, tempBinFile); err != nil { os.Remove(patchBinFile) return false, err.Error() @@ -172,9 +174,11 @@ func (h *DiffService) HDiffPatchData(gamePath string) (bool, string) { if err != nil { return false, err.Error() } - if err := json.Unmarshal(data, &jsonData); err != nil { + var hdiffJson []*models.HDiffData + if err := json.Unmarshal(data, &hdiffJson); err != nil { return false, err.Error() } + jsonData.DiffMap = append(jsonData.DiffMap, hdiffJson...) } else if _, err := os.Stat(hdiffFilesPath); err == nil { files, err := models.LoadHDiffFiles(hdiffFilesPath) if err != nil { @@ -188,6 +192,7 @@ func (h *DiffService) HDiffPatchData(gamePath string) (bool, string) { } application.Get().Event.Emit("diff:stage", map[string]string{"stage": "Patching HDiff"}) + for i, entry := range jsonData.DiffMap { application.Get().Event.Emit( "diff:progress", map[string]int{ diff --git a/pkg/constant/constant.go b/pkg/constant/constant.go index dfe68ea..c2da17f 100644 --- a/pkg/constant/constant.go +++ b/pkg/constant/constant.go @@ -10,7 +10,7 @@ const ProxyFile = "firefly-go-proxy.exe" const LauncherFile = "firefly-launcher.exe" const TempUrl = "./temp" -const CurrentLauncherVersion = "2.3.4" +const CurrentLauncherVersion = "2.3.5" type ToolFile string