diff --git a/Dalamud/Game/UnlockState/UnlockState.cs b/Dalamud/Game/UnlockState/UnlockState.cs index 7e8f64adf..4b83e114a 100644 --- a/Dalamud/Game/UnlockState/UnlockState.cs +++ b/Dalamud/Game/UnlockState/UnlockState.cs @@ -33,9 +33,6 @@ internal unsafe class UnlockState : IInternalDisposableService, IUnlockState { private static readonly ModuleLog Log = new(nameof(UnlockState)); - [ServiceManager.ServiceDependency] - private readonly TargetSigScanner sigScanner = Service.Get(); - [ServiceManager.ServiceDependency] private readonly DataManager dataManager = Service.Get(); @@ -49,8 +46,8 @@ internal unsafe class UnlockState : IInternalDisposableService, IUnlockState private readonly RecipeData recipeData = Service.Get(); private readonly ConcurrentDictionary> cachedUnlockedRowIds = []; - private readonly Hook setAchievementCompletedHook; - private readonly Hook setTitleUnlockedHook; + private readonly Hook setAchievementCompletedHook; + private readonly Hook setTitleUnlockedHook; [ServiceManager.ServiceConstructor] private UnlockState() @@ -59,22 +56,18 @@ internal unsafe class UnlockState : IInternalDisposableService, IUnlockState this.clientState.Logout += this.OnLogout; this.gameGui.AgentUpdate += this.OnAgentUpdate; - this.setAchievementCompletedHook = Hook.FromAddress( - this.sigScanner.ScanText("81 FA ?? ?? ?? ?? 0F 87 ?? ?? ?? ?? 53"), + this.setAchievementCompletedHook = Hook.FromAddress( + (nint)CSAchievement.MemberFunctionPointers.SetAchievementCompleted, this.SetAchievementCompletedDetour); - this.setTitleUnlockedHook = Hook.FromAddress( - this.sigScanner.ScanText("B8 ?? ?? ?? ?? 66 3B D0 73 ?? 44 0F B7 C2 49 C1 E8 ?? 4C 03 C1 0F B7 C2 83 E0 ?? 41 0F B6 48 ?? 0F AB C1"), + this.setTitleUnlockedHook = Hook.FromAddress( + (nint)TitleList.MemberFunctionPointers.SetTitleUnlocked, this.SetTitleUnlockedDetour); this.setAchievementCompletedHook.Enable(); this.setTitleUnlockedHook.Enable(); } - private delegate void SetAchievementCompletedDelegate(CSAchievement* thisPtr, uint id); - - private delegate void SetTitleUnlockedDelegate(TitleList* thisPtr, ushort id); - /// public event IUnlockState.UnlockDelegate Unlock;