diff --git a/Penumbra/Interop/Resolver/PathResolver.Animation.cs b/Penumbra/Interop/Resolver/PathResolver.Animation.cs index 026c4a5a..363ce1e2 100644 --- a/Penumbra/Interop/Resolver/PathResolver.Animation.cs +++ b/Penumbra/Interop/Resolver/PathResolver.Animation.cs @@ -58,4 +58,18 @@ public unsafe partial class PathResolver CharacterBaseLoadAnimationHook!.Original( drawObject ); _animationLoadCollection = last; } + + public delegate ulong LoadSomeAvfx( uint a1, IntPtr gameObject, IntPtr gameObject2 ); + + [Signature( "E8 ?? ?? ?? ?? 45 0F B6 F7", DetourName = nameof( LoadSomeAvfxDetour ) )] + public Hook< LoadSomeAvfx >? LoadSomeAvfxHook; + + private ulong LoadSomeAvfxDetour( uint a1, IntPtr gameObject, IntPtr gameObject2 ) + { + var last = _animationLoadCollection; + _animationLoadCollection = IdentifyCollection( ( GameObject* )gameObject ); + var ret = LoadSomeAvfxHook!.Original( a1, gameObject, gameObject2 ); + _animationLoadCollection = last; + return ret; + } } \ No newline at end of file diff --git a/Penumbra/Interop/Resolver/PathResolver.Data.cs b/Penumbra/Interop/Resolver/PathResolver.Data.cs index 11d09ad2..00b92905 100644 --- a/Penumbra/Interop/Resolver/PathResolver.Data.cs +++ b/Penumbra/Interop/Resolver/PathResolver.Data.cs @@ -92,6 +92,7 @@ public unsafe partial class PathResolver Penumbra.CollectionManager.CollectionChanged += CheckCollections; LoadTimelineResourcesHook?.Enable(); CharacterBaseLoadAnimationHook?.Enable(); + LoadSomeAvfxHook?.Enable(); } private void DisableDataHooks() @@ -103,6 +104,7 @@ public unsafe partial class PathResolver CharacterBaseDestructorHook?.Disable(); LoadTimelineResourcesHook?.Disable(); CharacterBaseLoadAnimationHook?.Disable(); + LoadSomeAvfxHook?.Disable(); } private void DisposeDataHooks() @@ -113,6 +115,7 @@ public unsafe partial class PathResolver CharacterBaseDestructorHook?.Dispose(); LoadTimelineResourcesHook?.Dispose(); CharacterBaseLoadAnimationHook?.Dispose(); + LoadSomeAvfxHook?.Dispose(); } // This map links DrawObjects directly to Actors (by ObjectTable index) and their collections.