Fix macro clipboard behavior
This commit is contained in:
@@ -14,7 +14,7 @@ public sealed unsafe class Hooks : IDisposable
|
||||
|
||||
public event OnActionUsedDelegate? OnActionUsed;
|
||||
|
||||
public delegate bool UseActionDelegate(ActionManager* manager, CSActionType actionType, uint actionId, ulong targetId, uint param, uint useType, int pvp, nint a8);
|
||||
public delegate bool UseActionDelegate(ActionManager* manager, CSActionType actionType, uint actionId, ulong targetId, uint extraParam, ActionManager.UseActionMode mode, uint comboRouteId, bool* outOptAreaTargeted);
|
||||
|
||||
public readonly Hook<UseActionDelegate> UseActionHook = null!;
|
||||
|
||||
@@ -31,10 +31,10 @@ public sealed unsafe class Hooks : IDisposable
|
||||
IsActionHighlightedHook.Enable();
|
||||
}
|
||||
|
||||
private bool UseActionDetour(ActionManager* manager, CSActionType actionType, uint actionId, ulong targetId, uint param, uint useType, int pvp, nint a8)
|
||||
private bool UseActionDetour(ActionManager* manager, CSActionType actionType, uint actionId, ulong targetId, uint extraParam, ActionManager.UseActionMode mode, uint comboRouteId, bool* optOutAreaTargeted)
|
||||
{
|
||||
var canCast = manager->GetActionStatus(actionType, actionId) == 0;
|
||||
var ret = UseActionHook.Original(manager, actionType, actionId, targetId, param, useType, pvp, a8);
|
||||
var ret = UseActionHook.Original(manager, actionType, actionId, targetId, extraParam, mode, comboRouteId, optOutAreaTargeted);
|
||||
if (canCast && ret && actionType is CSActionType.CraftAction or CSActionType.Action)
|
||||
{
|
||||
var classJob = ClassJobUtils.GetClassJobFromIdx((byte)(Service.ClientState.LocalPlayer?.ClassJob.Id ?? 0));
|
||||
@@ -42,8 +42,17 @@ public sealed unsafe class Hooks : IDisposable
|
||||
{
|
||||
var simActionType = ActionUtils.GetActionTypeFromId(actionId, classJob.Value, actionType == CSActionType.CraftAction);
|
||||
if (simActionType != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
OnActionUsed?.Invoke(simActionType.Value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error(e, "Failed to invoke OnActionUsed");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -52,6 +61,8 @@ public sealed unsafe class Hooks : IDisposable
|
||||
{
|
||||
var ret = IsActionHighlightedHook.Original(manager, actionType, actionId);
|
||||
|
||||
try
|
||||
{
|
||||
if (!Service.Configuration.SynthHelperAbilityAnts)
|
||||
return ret;
|
||||
|
||||
@@ -75,6 +86,12 @@ public sealed unsafe class Hooks : IDisposable
|
||||
|
||||
if (Service.Plugin.SynthHelperWindow.NextAction != simActionType)
|
||||
return 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex, "Failed to check if action should be highlighted");
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace Craftimizer.Windows;
|
||||
|
||||
public sealed class MacroClipboard : Window, IDisposable
|
||||
{
|
||||
private const ImGuiWindowFlags WindowFlags = ImGuiWindowFlags.None;
|
||||
private const ImGuiWindowFlags WindowFlags = ImGuiWindowFlags.NoCollapse;
|
||||
|
||||
private List<string> Macros { get; }
|
||||
|
||||
@@ -22,6 +22,9 @@ public sealed class MacroClipboard : Window, IDisposable
|
||||
Macros = new(macros);
|
||||
|
||||
IsOpen = true;
|
||||
AllowPinning = false;
|
||||
AllowClickthrough = false;
|
||||
BringToFront();
|
||||
|
||||
Service.WindowSystem.AddWindow(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user