Extract all signatures to a single file.

This commit is contained in:
Ottermandias 2023-01-09 13:59:24 +01:00
parent 40b7266c22
commit a061ab9b8b
18 changed files with 202 additions and 96 deletions

View file

@ -1,21 +1,24 @@
using Dalamud.Utility.Signatures;
using Penumbra.GameData;
namespace Penumbra.Interop;
public unsafe class ResidentResourceManager
{
// A static pointer to the resident resource manager address.
[Signature( Sigs.ResidentResourceManager, ScanType = ScanType.StaticAddress )]
private readonly Structs.ResidentResourceManager** _residentResourceManagerAddress = null;
// Some attach and physics files are stored in the resident resource manager, and we need to manually trigger a reload of them to get them to apply.
public delegate void* ResidentResourceDelegate( void* residentResourceManager );
[Signature( "E8 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? BA ?? ?? ?? ?? 41 B8 ?? ?? ?? ?? 48 8B 48 30 48 8B 01 FF 50 10 48 85 C0 74 0A" )]
public ResidentResourceDelegate LoadPlayerResources = null!;
[Signature( Sigs.LoadPlayerResources )]
public readonly ResidentResourceDelegate LoadPlayerResources = null!;
[Signature( Sigs.UnloadPlayerResources )]
public readonly ResidentResourceDelegate UnloadPlayerResources = null!;
[Signature( "41 55 48 81 EC ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 33 C4 48 89 84 24 ?? ?? ?? ?? 4C 8B E9 48 83 C1 08" )]
public ResidentResourceDelegate UnloadPlayerResources = null!;
// A static pointer to the resident resource manager address.
[Signature( "0F 44 FE 48 8B 0D ?? ?? ?? ?? 48 85 C9 74 05", ScanType = ScanType.StaticAddress )]
private readonly Structs.ResidentResourceManager** _residentResourceManagerAddress = null;
public Structs.ResidentResourceManager* Address
=> *_residentResourceManagerAddress;