void TickCClientFetchTask() { if (fetchCClientTask == null) { return; } fetchCClientTask.Tick(); UpdateProgress(fetchCClientTask); if (!fetchCClientTask.Completed) { return; } if (!fetchCClientTask.Success) { view.statusText = "&cFailed to fetch update"; UpdateStatus(); } else { cExe = fetchCClientTask.File; ApplyUpdate(); } fetchCClientTask = null; }
void UpdateBuild(bool release, bool dx) { DateTime last = release ? view.LastStable : view.LastDev; Build build = release ? stable : dev; if (last == DateTime.MinValue || fetchTask != null) { return; } if (fetchCClientTask != null) { return; } if (build.DirectXSize < 50000 || build.OpenGLSize < 50000) { return; } bool gameOpen = CheckClientInstances(); view.statusText = gameOpen ? "&cThe game must be closed before updating" : ""; UpdateStatus(); if (gameOpen) { return; } string path; path = dx ? build.DirectXPath : build.OpenGLPath; fetchTask = new UpdateDownloadTask(path); fetchTask.RunAsync(game); path = GetCExe(dx); fetchCClientTask = new UpdateCClientTask(path); fetchCClientTask.RunAsync(game); if (release && dx) { buildName = "&eFetching latest release (Direct3D9)"; } if (release && !dx) { buildName = "&eFetching latest release (OpenGL)"; } if (!release && dx) { buildName = "&eFetching latest dev build (Direct3D9)"; } if (!release && !dx) { buildName = "&eFetching latest dev build (OpenGL)"; } buildProgress = -1; Applier.PatchTime = build.TimeBuilt; view.statusText = buildName + ".."; UpdateStatus(); }