Add some other AVFX collection identification.

This commit is contained in:
Ottermandias 2022-06-12 11:59:53 +02:00
parent 5f1dac98d6
commit 46c5d52a92
2 changed files with 17 additions and 0 deletions

View file

@ -58,4 +58,18 @@ public unsafe partial class PathResolver
CharacterBaseLoadAnimationHook!.Original( drawObject ); CharacterBaseLoadAnimationHook!.Original( drawObject );
_animationLoadCollection = last; _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;
}
} }

View file

@ -92,6 +92,7 @@ public unsafe partial class PathResolver
Penumbra.CollectionManager.CollectionChanged += CheckCollections; Penumbra.CollectionManager.CollectionChanged += CheckCollections;
LoadTimelineResourcesHook?.Enable(); LoadTimelineResourcesHook?.Enable();
CharacterBaseLoadAnimationHook?.Enable(); CharacterBaseLoadAnimationHook?.Enable();
LoadSomeAvfxHook?.Enable();
} }
private void DisableDataHooks() private void DisableDataHooks()
@ -103,6 +104,7 @@ public unsafe partial class PathResolver
CharacterBaseDestructorHook?.Disable(); CharacterBaseDestructorHook?.Disable();
LoadTimelineResourcesHook?.Disable(); LoadTimelineResourcesHook?.Disable();
CharacterBaseLoadAnimationHook?.Disable(); CharacterBaseLoadAnimationHook?.Disable();
LoadSomeAvfxHook?.Disable();
} }
private void DisposeDataHooks() private void DisposeDataHooks()
@ -113,6 +115,7 @@ public unsafe partial class PathResolver
CharacterBaseDestructorHook?.Dispose(); CharacterBaseDestructorHook?.Dispose();
LoadTimelineResourcesHook?.Dispose(); LoadTimelineResourcesHook?.Dispose();
CharacterBaseLoadAnimationHook?.Dispose(); CharacterBaseLoadAnimationHook?.Dispose();
LoadSomeAvfxHook?.Dispose();
} }
// This map links DrawObjects directly to Actors (by ObjectTable index) and their collections. // This map links DrawObjects directly to Actors (by ObjectTable index) and their collections.