mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
Update ClientStructs
This commit is contained in:
parent
cce11a82be
commit
290539c499
3 changed files with 9 additions and 9 deletions
|
|
@ -25,8 +25,8 @@ internal unsafe class AddonEventListener : IDisposable
|
||||||
this.eventListener = (AtkEventListener*)Marshal.AllocHGlobal(sizeof(AtkEventListener));
|
this.eventListener = (AtkEventListener*)Marshal.AllocHGlobal(sizeof(AtkEventListener));
|
||||||
this.eventListener->VirtualTable = (AtkEventListener.AtkEventListenerVirtualTable*)Marshal.AllocHGlobal(sizeof(void*) * 3);
|
this.eventListener->VirtualTable = (AtkEventListener.AtkEventListenerVirtualTable*)Marshal.AllocHGlobal(sizeof(void*) * 3);
|
||||||
this.eventListener->VirtualTable->Dtor = (delegate* unmanaged<AtkEventListener*, byte, void>)(delegate* unmanaged<void>)&NullSub;
|
this.eventListener->VirtualTable->Dtor = (delegate* unmanaged<AtkEventListener*, byte, void>)(delegate* unmanaged<void>)&NullSub;
|
||||||
this.eventListener->VirtualTable->ReceiveGlobalEvent = (delegate* unmanaged<AtkEventListener*, AtkEventType, int, AtkEvent*, nint, void>)(delegate* unmanaged<void>)&NullSub;
|
this.eventListener->VirtualTable->ReceiveGlobalEvent = (delegate* unmanaged<AtkEventListener*, AtkEventType, int, AtkEvent*, AtkEventData*, void>)(delegate* unmanaged<void>)&NullSub;
|
||||||
this.eventListener->VirtualTable->ReceiveEvent = (delegate* unmanaged<AtkEventListener*, AtkEventType, int, AtkEvent*, nint, void>)Marshal.GetFunctionPointerForDelegate(this.receiveEventDelegate);
|
this.eventListener->VirtualTable->ReceiveEvent = (delegate* unmanaged<AtkEventListener*, AtkEventType, int, AtkEvent*, AtkEventData*, void>)Marshal.GetFunctionPointerForDelegate(this.receiveEventDelegate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -35,9 +35,9 @@ internal unsafe class AddonEventListener : IDisposable
|
||||||
/// <param name="self">Pointer to the event listener.</param>
|
/// <param name="self">Pointer to the event listener.</param>
|
||||||
/// <param name="eventType">Event type.</param>
|
/// <param name="eventType">Event type.</param>
|
||||||
/// <param name="eventParam">Unique Id for this event.</param>
|
/// <param name="eventParam">Unique Id for this event.</param>
|
||||||
/// <param name="eventData">Event Data.</param>
|
/// <param name="eventPtr">Pointer to the AtkEvent.</param>
|
||||||
/// <param name="unknown">Unknown Parameter.</param>
|
/// <param name="eventDataPtr">Pointer to the AtkEventData.</param>
|
||||||
public delegate void ReceiveEventDelegate(AtkEventListener* self, AtkEventType eventType, uint eventParam, AtkEvent* eventData, nint unknown);
|
public delegate void ReceiveEventDelegate(AtkEventListener* self, AtkEventType eventType, uint eventParam, AtkEvent* eventPtr, AtkEventData* eventDataPtr);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the address of this listener.
|
/// Gets the address of this listener.
|
||||||
|
|
|
||||||
|
|
@ -184,15 +184,15 @@ internal unsafe class PluginEventController : IDisposable
|
||||||
this.EventListener.UnregisterEvent(atkResNode, eventType, eventEntry.ParamKey);
|
this.EventListener.UnregisterEvent(atkResNode, eventType, eventEntry.ParamKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PluginEventListHandler(AtkEventListener* self, AtkEventType eventType, uint eventParam, AtkEvent* eventData, IntPtr unknown)
|
private void PluginEventListHandler(AtkEventListener* self, AtkEventType eventType, uint eventParam, AtkEvent* eventPtr, AtkEventData* eventDataPtr)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (eventData is null) return;
|
if (eventPtr is null) return;
|
||||||
if (this.Events.FirstOrDefault(handler => handler.ParamKey == eventParam) is not { } eventInfo) return;
|
if (this.Events.FirstOrDefault(handler => handler.ParamKey == eventParam) is not { } eventInfo) return;
|
||||||
|
|
||||||
// We stored the AtkUnitBase* in EventData->Node, and EventData->Target contains the node that triggered the event.
|
// We stored the AtkUnitBase* in EventData->Node, and EventData->Target contains the node that triggered the event.
|
||||||
eventInfo.Handler.Invoke((AddonEventType)eventType, (nint)eventData->Node, (nint)eventData->Target);
|
eventInfo.Handler.Invoke((AddonEventType)eventType, (nint)eventPtr->Node, (nint)eventPtr->Target);
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
catch (Exception exception)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 7d52e20142037b9d64b9af1b09aca34ad58aebef
|
Subproject commit b43e14244224fa3e04b0900d5d3266e385dedaf3
|
||||||
Loading…
Add table
Add a link
Reference in a new issue