diff --git a/Dalamud/Game/AddonLifecycle/AddonLifecycle.cs b/Dalamud/Game/AddonLifecycle/AddonLifecycle.cs
index 3a8644c4c..a3e9f4be8 100644
--- a/Dalamud/Game/AddonLifecycle/AddonLifecycle.cs
+++ b/Dalamud/Game/AddonLifecycle/AddonLifecycle.cs
@@ -55,7 +55,7 @@ internal unsafe class AddonLifecycle : IDisposable, IServiceType
private delegate void AddonDrawDelegate(AtkUnitBase* addon);
- private delegate void AddonUpdateDelegate(AtkUnitBase* addon);
+ private delegate void AddonUpdateDelegate(AtkUnitBase* addon, float delta);
///
public void Dispose()
@@ -174,8 +174,6 @@ internal unsafe class AddonLifecycle : IDisposable, IServiceType
private void OnAddonDraw(AtkUnitBase* addon)
{
- if (addon is null) return;
-
try
{
this.InvokeListeners(AddonEvent.PreDraw, new IAddonLifecycle.AddonArgs { Addon = (nint)addon });
@@ -185,7 +183,7 @@ internal unsafe class AddonLifecycle : IDisposable, IServiceType
Log.Error(e, "Exception in OnAddonDraw pre-draw invoke.");
}
- ((delegate* unmanaged)addon->AtkEventListener.vfunc[42])(addon);
+ addon->Draw();
try
{
@@ -197,10 +195,8 @@ internal unsafe class AddonLifecycle : IDisposable, IServiceType
}
}
- private void OnAddonUpdate(AtkUnitBase* addon)
+ private void OnAddonUpdate(AtkUnitBase* addon, float delta)
{
- if (addon is null) return;
-
try
{
this.InvokeListeners(AddonEvent.PreUpdate, new IAddonLifecycle.AddonArgs { Addon = (nint)addon });
@@ -209,8 +205,8 @@ internal unsafe class AddonLifecycle : IDisposable, IServiceType
{
Log.Error(e, "Exception in OnAddonUpdate pre-update invoke.");
}
-
- ((delegate* unmanaged)addon->AtkEventListener.vfunc[41])(addon);
+
+ addon->Update(delta);
try
{
diff --git a/Dalamud/Game/AddonLifecycle/AddonLifecycleAddressResolver.cs b/Dalamud/Game/AddonLifecycle/AddonLifecycleAddressResolver.cs
index 0300667a9..688476d82 100644
--- a/Dalamud/Game/AddonLifecycle/AddonLifecycleAddressResolver.cs
+++ b/Dalamud/Game/AddonLifecycle/AddonLifecycleAddressResolver.cs
@@ -33,7 +33,7 @@ internal class AddonLifecycleAddressResolver : BaseAddressResolver
{
this.AddonSetup = sig.ScanText("E8 ?? ?? ?? ?? 8B 83 ?? ?? ?? ?? C1 E8 14");
this.AddonFinalize = sig.ScanText("E8 ?? ?? ?? ?? 48 8B 7C 24 ?? 41 8B C6");
- this.AddonDraw = sig.ScanText("48 8B 01 FF 90 ?? ?? ?? ?? 83 EB 01 79 C1");
+ this.AddonDraw = sig.ScanText("FF 90 ?? ?? ?? ?? 83 EB 01 79 C1");
this.AddonUpdate = sig.ScanText("FF 90 ?? ?? ?? ?? 40 88 AF");
}
}