Use some CS sigs.

This commit is contained in:
Ottermandias 2023-10-31 11:32:40 +01:00
parent 06e06b81e9
commit 8e63452e84
2 changed files with 12 additions and 8 deletions

@ -1 +1 @@
Subproject commit e1a62d8e6b4e1d8c482253ad14850fd3dc372d86 Subproject commit 04ddadb44600a382e26661e1db08fd16c3b671d8

View file

@ -4,6 +4,7 @@ using Dalamud.Utility.Signatures;
using Penumbra.GameData; using Penumbra.GameData;
using FFXIVClientStructs.FFXIV.Client.Game.Character; using FFXIVClientStructs.FFXIV.Client.Game.Character;
using FFXIVClientStructs.FFXIV.Client.Game.Object; using FFXIVClientStructs.FFXIV.Client.Game.Object;
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
using Penumbra.Interop.Structs; using Penumbra.Interop.Structs;
namespace Penumbra.Interop.Services; namespace Penumbra.Interop.Services;
@ -27,7 +28,13 @@ public unsafe class GameEventManager : IDisposable
_copyCharacterHook = _copyCharacterHook =
interop.HookFromAddress<CopyCharacterDelegate>((nint)CharacterSetup.MemberFunctionPointers.CopyFromCharacter, CopyCharacterDetour); interop.HookFromAddress<CopyCharacterDelegate>((nint)CharacterSetup.MemberFunctionPointers.CopyFromCharacter, CopyCharacterDetour);
_characterBaseCreateHook =
interop.HookFromAddress<CharacterBaseCreateDelegate>((nint)CharacterBase.MemberFunctionPointers.Create, CharacterBaseCreateDetour);
_characterBaseDestructorHook =
interop.HookFromAddress<CharacterBaseDestructorEvent>((nint)CharacterBase.MemberFunctionPointers.Destroy,
CharacterBaseDestructorDetour);
_weaponReloadHook =
interop.HookFromAddress<WeaponReloadFunc>((nint)DrawDataContainer.MemberFunctionPointers.LoadWeapon, WeaponReloadDetour);
_characterDtorHook.Enable(); _characterDtorHook.Enable();
_copyCharacterHook.Enable(); _copyCharacterHook.Enable();
_resourceHandleDestructorHook.Enable(); _resourceHandleDestructorHook.Enable();
@ -148,8 +155,7 @@ public unsafe class GameEventManager : IDisposable
private delegate nint CharacterBaseCreateDelegate(uint a, nint b, nint c, byte d); private delegate nint CharacterBaseCreateDelegate(uint a, nint b, nint c, byte d);
[Signature(Sigs.CharacterBaseCreate, DetourName = nameof(CharacterBaseCreateDetour))] private readonly Hook<CharacterBaseCreateDelegate> _characterBaseCreateHook;
private readonly Hook<CharacterBaseCreateDelegate> _characterBaseCreateHook = null!;
private nint CharacterBaseCreateDetour(uint a, nint b, nint c, byte d) private nint CharacterBaseCreateDetour(uint a, nint b, nint c, byte d)
{ {
@ -194,8 +200,7 @@ public unsafe class GameEventManager : IDisposable
public delegate void CharacterBaseDestructorEvent(nint drawBase); public delegate void CharacterBaseDestructorEvent(nint drawBase);
[Signature(Sigs.CharacterBaseDestructor, DetourName = nameof(CharacterBaseDestructorDetour))] private readonly Hook<CharacterBaseDestructorEvent> _characterBaseDestructorHook;
private readonly Hook<CharacterBaseDestructorEvent> _characterBaseDestructorHook = null!;
private void CharacterBaseDestructorDetour(IntPtr drawBase) private void CharacterBaseDestructorDetour(IntPtr drawBase)
{ {
@ -222,8 +227,7 @@ public unsafe class GameEventManager : IDisposable
private delegate void WeaponReloadFunc(nint a1, uint a2, nint a3, byte a4, byte a5, byte a6, byte a7); private delegate void WeaponReloadFunc(nint a1, uint a2, nint a3, byte a4, byte a5, byte a6, byte a7);
[Signature(Sigs.WeaponReload, DetourName = nameof(WeaponReloadDetour))] private readonly Hook<WeaponReloadFunc> _weaponReloadHook;
private readonly Hook<WeaponReloadFunc> _weaponReloadHook = null!;
private void WeaponReloadDetour(nint a1, uint a2, nint a3, byte a4, byte a5, byte a6, byte a7) private void WeaponReloadDetour(nint a1, uint a2, nint a3, byte a4, byte a5, byte a6, byte a7)
{ {