From b98dc9f5d3e740bec2ca3ea079e06caf25890fb4 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Thu, 14 Mar 2024 19:58:01 +0800 Subject: [PATCH] fix unlocking fps --- .../Launching/Handler/LaunchExecutionUnlockFpsHandler.cs | 6 ++++-- .../Snap.Hutao/Service/Game/Unlocker/GameFpsUnlocker.cs | 3 ++- .../Snap.Hutao/Service/Game/Unlocker/IGameFpsUnlocker.cs | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Launching/Handler/LaunchExecutionUnlockFpsHandler.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Launching/Handler/LaunchExecutionUnlockFpsHandler.cs index d2e05f03..28df662b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Launching/Handler/LaunchExecutionUnlockFpsHandler.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Launching/Handler/LaunchExecutionUnlockFpsHandler.cs @@ -23,8 +23,10 @@ internal sealed class LaunchExecutionUnlockFpsHandler : ILaunchExecutionDelegate try { - await unlocker.UnlockAsync(context.CancellationToken).ConfigureAwait(false); - unlocker.PostUnlockAsync(context.CancellationToken).SafeForget(); + if (await unlocker.UnlockAsync(context.CancellationToken).ConfigureAwait(false)) + { + unlocker.PostUnlockAsync(context.CancellationToken).SafeForget(); + } } catch (InvalidOperationException ex) { diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/GameFpsUnlocker.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/GameFpsUnlocker.cs index fa6a996a..71ba37be 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/GameFpsUnlocker.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/GameFpsUnlocker.cs @@ -28,7 +28,7 @@ internal sealed class GameFpsUnlocker : IGameFpsUnlocker } /// - public async ValueTask UnlockAsync(CancellationToken token = default) + public async ValueTask UnlockAsync(CancellationToken token = default) { HutaoException.ThrowIfNot(state.IsUnlockerValid, HutaoExceptionKind.GameFpsUnlockingFailed, "This Unlocker is invalid"); (FindModuleResult result, RequiredGameModule gameModule) = await GameProcessModule.FindModuleAsync(state).ConfigureAwait(false); @@ -37,6 +37,7 @@ internal sealed class GameFpsUnlocker : IGameFpsUnlocker GameFpsAddress.UnsafeFindFpsAddress(state, gameModule); state.Report(); + return state.FpsAddress != 0U; } public async ValueTask PostUnlockAsync(CancellationToken token = default) diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/IGameFpsUnlocker.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/IGameFpsUnlocker.cs index 21fe40dd..a2eda5b6 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/IGameFpsUnlocker.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/IGameFpsUnlocker.cs @@ -11,5 +11,5 @@ internal interface IGameFpsUnlocker { ValueTask PostUnlockAsync(CancellationToken token = default); - ValueTask UnlockAsync(CancellationToken token = default); + ValueTask UnlockAsync(CancellationToken token = default); } \ No newline at end of file