diff --git a/Patcher/PatchClient/PatchClient.csproj b/Patcher/PatchClient/PatchClient.csproj
index 3fba677..99a4935 100644
--- a/Patcher/PatchClient/PatchClient.csproj
+++ b/Patcher/PatchClient/PatchClient.csproj
@@ -4,8 +4,8 @@
net6.0
true
enable
- 2.9.3
- 2.9.3
+ 2.9.4
+ 2.9.4
diff --git a/Patcher/PatchClient/ViewModels/PatcherViewModel.cs b/Patcher/PatchClient/ViewModels/PatcherViewModel.cs
index d8ba4e2..63a1cc3 100644
--- a/Patcher/PatchClient/ViewModels/PatcherViewModel.cs
+++ b/Patcher/PatchClient/ViewModels/PatcherViewModel.cs
@@ -4,11 +4,13 @@ using PatcherUtils;
using ReactiveUI;
using System;
using System.Collections.ObjectModel;
+using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reactive.Disposables;
using System.Reflection;
using System.Threading.Tasks;
+using System.Timers;
namespace PatchClient.ViewModels
{
@@ -16,6 +18,9 @@ namespace PatchClient.ViewModels
{
private bool _initLineItemProgress = true;
private bool _autoClose = false;
+ private Stopwatch _patchStopwatch;
+ private Timer _udpatePatchElapsedTimer = new Timer(1000);
+
public ObservableCollection LineItems { get; set; } = new ObservableCollection();
private string _ProgressMessage = "";
@@ -39,10 +44,19 @@ namespace PatchClient.ViewModels
set => this.RaiseAndSetIfChanged(ref _PatchMessage, value);
}
+ private string _ElapsedPatchTimeDetails;
+ public string ElapsedPatchTimeDetails
+ {
+ get => _ElapsedPatchTimeDetails;
+ set => this.RaiseAndSetIfChanged(ref _ElapsedPatchTimeDetails, value);
+ }
+
public PatcherViewModel(IScreen Host, bool autoClose) : base(Host)
{
_autoClose = autoClose;
+ ElapsedPatchTimeDetails = "Starting ...";
+ _udpatePatchElapsedTimer.Elapsed += _udpatePatchElapsedTimer_Elapsed;
this.WhenActivated((CompositeDisposable disposables) =>
{
@@ -76,6 +90,14 @@ namespace PatchClient.ViewModels
});
}
+ private void _udpatePatchElapsedTimer_Elapsed(object? sender, ElapsedEventArgs e)
+ {
+ Dispatcher.UIThread.InvokeAsync(() =>
+ {
+ ElapsedPatchTimeDetails = $"Elapsed Patch Time: {_patchStopwatch.Elapsed.ToString("hh':'mm':'ss")}";
+ });
+ }
+
private void RunPatcher()
{
Task.Run(async() =>
@@ -86,8 +108,14 @@ namespace PatchClient.ViewModels
patcher.ProgressChanged += patcher_ProgressChanged;
+ _udpatePatchElapsedTimer.Start();
+ _patchStopwatch = Stopwatch.StartNew();
+
var patchMessage = patcher.ApplyPatches();
+ _patchStopwatch.Stop();
+ _udpatePatchElapsedTimer.Stop();
+
LazyOperations.CleanupTempDir();
Directory.Delete(LazyOperations.PatchFolder, true);
diff --git a/Patcher/PatchClient/Views/PatcherView.axaml b/Patcher/PatchClient/Views/PatcherView.axaml
index 1197554..f9ae578 100644
--- a/Patcher/PatchClient/Views/PatcherView.axaml
+++ b/Patcher/PatchClient/Views/PatcherView.axaml
@@ -20,6 +20,7 @@
+
diff --git a/Patcher/PatchGenerator/PatchGenerator.csproj b/Patcher/PatchGenerator/PatchGenerator.csproj
index a390a60..c1c918f 100644
--- a/Patcher/PatchGenerator/PatchGenerator.csproj
+++ b/Patcher/PatchGenerator/PatchGenerator.csproj
@@ -4,8 +4,8 @@
net6.0
true
enable
- 2.9.3
- 2.9.3
+ 2.9.4
+ 2.9.4
diff --git a/Patcher/PatchGenerator/Resources/PatchClient.exe b/Patcher/PatchGenerator/Resources/PatchClient.exe
index 180a8e9..06b66d1 100644
--- a/Patcher/PatchGenerator/Resources/PatchClient.exe
+++ b/Patcher/PatchGenerator/Resources/PatchClient.exe
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9f2868d7edd46e0d999f0abaad6d3e25ff75c6d32e4e6a58b710e43bc6d9122a
-size 25324204
+oid sha256:4010166d21d2fc4ecbe9abe1bdae048d09612e11dcc254842274454a301ee931
+size 102614473
diff --git a/Patcher/PatchGenerator/ViewModels/PatchGenerationViewModel.cs b/Patcher/PatchGenerator/ViewModels/PatchGenerationViewModel.cs
index d5d1c21..be5ce67 100644
--- a/Patcher/PatchGenerator/ViewModels/PatchGenerationViewModel.cs
+++ b/Patcher/PatchGenerator/ViewModels/PatchGenerationViewModel.cs
@@ -15,6 +15,7 @@ using System.Reactive.Disposables;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
+using System.Timers;
namespace PatchGenerator.ViewModels
{
@@ -48,17 +49,28 @@ namespace PatchGenerator.ViewModels
set => this.RaiseAndSetIfChanged(ref _IndeterminateProgress, value);
}
+ private string _ElapsedTimeDetails;
+ public string ElapsedTimeDetails
+ {
+ get => _ElapsedTimeDetails;
+ set => this.RaiseAndSetIfChanged(ref _ElapsedTimeDetails, value);
+ }
+
private LineItem[] lineItems;
public ObservableCollection PatchItemCollection { get; set; } = new ObservableCollection();
public ObservableCollection PatchItemLegendCollection { get; set; } = new ObservableCollection();
private Stopwatch patchGenStopwatch = new Stopwatch();
+ private Timer updateElapsedTimeTimer = new Timer(1000);
private readonly PatchGenInfo generationInfo;
public PatchGenerationViewModel(IScreen Host, PatchGenInfo GenerationInfo) : base(Host)
{
generationInfo = GenerationInfo;
+ ElapsedTimeDetails = "Starting ...";
+
+ updateElapsedTimeTimer.Elapsed += UpdateElapsedTimeTimer_Elapsed;
foreach (KeyValuePair pair in PatchItemDefinitions.Colors)
{
@@ -75,6 +87,14 @@ namespace PatchGenerator.ViewModels
});
}
+ private void UpdateElapsedTimeTimer_Elapsed(object? sender, ElapsedEventArgs e)
+ {
+ Dispatcher.UIThread.InvokeAsync(() =>
+ {
+ ElapsedTimeDetails = $"Elapsed Patch Time: {patchGenStopwatch.Elapsed.ToString("hh':'mm':'ss")}";
+ });
+ }
+
public void GeneratePatches()
{
Task.Run(() =>
@@ -87,6 +107,7 @@ namespace PatchGenerator.ViewModels
patcher.ProgressChanged += Patcher_ProgressChanged;
+ updateElapsedTimeTimer.Start();
patchGenStopwatch.Start();
var message = patcher.GeneratePatches();
@@ -97,6 +118,7 @@ namespace PatchGenerator.ViewModels
}
patchGenStopwatch.Stop();
+ updateElapsedTimeTimer.Stop();
PrintSummary();
diff --git a/Patcher/PatchGenerator/Views/PatchGenerationView.axaml b/Patcher/PatchGenerator/Views/PatchGenerationView.axaml
index 4bb1117..c2f5697 100644
--- a/Patcher/PatchGenerator/Views/PatchGenerationView.axaml
+++ b/Patcher/PatchGenerator/Views/PatchGenerationView.axaml
@@ -64,6 +64,9 @@
+
+