diff --git a/Redirect/GameHooks.cs b/Redirect/GameHooks.cs index 13b334d..d6145ce 100644 --- a/Redirect/GameHooks.cs +++ b/Redirect/GameHooks.cs @@ -171,12 +171,12 @@ private CursorStatus ValidateCursorPlacement(IntPtr action_manager, Lumina.Excel } } - public GameObject? ResolveTarget(string target) { - return target switch { + public GameObject? ResolveTarget(string targetOption, ulong originalTarget) { + return targetOption switch { "UI Mouseover" => CurrentUIMouseover, "Model Mouseover" => TargetManager.MouseOverTarget, "Self" => Services.ClientState.LocalPlayer, - "Target" => TargetManager.Target, + "Target" => Services.ObjectTable.SearchById(originalTarget) ?? TargetManager.Target, "Focus" => TargetManager.FocusTarget, "Target of Target" => TargetManager.Target is { } ? TargetManager.Target.TargetObject : null, "Soft Target" => TargetManager.SoftTarget, @@ -257,7 +257,7 @@ private unsafe bool TryActionCallback(IntPtr action_manager, ActionType type, ui } } else { - GameObject? nt = ResolveTarget(t); + GameObject? nt = ResolveTarget(t, target); if (nt is not null) { bool ok = adjusted_row.TargetInRangeAndLOS(nt, out var err); bool tt_ok = adjusted_row.TargetTypeValid(nt);