mirror of
https://github.com/goatcorp/Dalamud.git
synced 2026-02-07 08:24:37 +01:00
Use generated AgentId
This commit is contained in:
parent
d689c4763a
commit
0c2ce097ed
5 changed files with 22 additions and 22 deletions
|
|
@ -22,7 +22,7 @@ public unsafe class AgentArgs
|
|||
/// <summary>
|
||||
/// Gets the agent id.
|
||||
/// </summary>
|
||||
public uint AgentId { get; internal set; }
|
||||
public AgentId AgentId { get; internal set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the type of these args.
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ internal unsafe class AgentLifecycle : IInternalDisposableService
|
|||
/// Gets a list of all AgentLifecycle Event Listeners.
|
||||
/// </summary> <br/>
|
||||
/// Mapping is: EventType -> ListenerList
|
||||
internal Dictionary<AgentEvent, Dictionary<uint, HashSet<AgentLifecycleEventListener>>> EventListeners { get; } = [];
|
||||
internal Dictionary<AgentEvent, Dictionary<AgentId, HashSet<AgentLifecycleEventListener>>> EventListeners { get; } = [];
|
||||
|
||||
/// <inheritdoc/>
|
||||
void IInternalDisposableService.DisposeService()
|
||||
|
|
@ -128,7 +128,7 @@ internal unsafe class AgentLifecycle : IInternalDisposableService
|
|||
if (!this.EventListeners.TryGetValue(eventType, out var agentListeners)) return;
|
||||
|
||||
// Handle listeners for this event type that don't care which agent is triggering it
|
||||
if (agentListeners.TryGetValue(uint.MaxValue, out var globalListeners))
|
||||
if (agentListeners.TryGetValue((AgentId)uint.MaxValue, out var globalListeners))
|
||||
{
|
||||
foreach (var listener in globalListeners)
|
||||
{
|
||||
|
|
@ -154,7 +154,7 @@ internal unsafe class AgentLifecycle : IInternalDisposableService
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error(e, $"Exception in {blame} during {eventType} invoke, for specific agent {(AgentId)args.AgentId}.");
|
||||
Log.Error(e, $"Exception in {blame} during {eventType} invoke, for specific agent {args.AgentId}.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -208,7 +208,7 @@ internal unsafe class AgentLifecycle : IInternalDisposableService
|
|||
}
|
||||
|
||||
// AgentVirtualTable class handles creating the virtual table, and overriding each of the tracked virtual functions
|
||||
AllocatedTables.Add(new AgentVirtualTable(agentPointer->Value, index, this));
|
||||
AllocatedTables.Add(new AgentVirtualTable(agentPointer->Value, (AgentId)index, this));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
|
@ -243,7 +243,7 @@ internal class AgentLifecyclePluginScoped : IInternalDisposableService, IAgentLi
|
|||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void RegisterListener(AgentEvent eventType, IEnumerable<uint> agentIds, IAgentLifecycle.AgentEventDelegate handler)
|
||||
public void RegisterListener(AgentEvent eventType, IEnumerable<AgentId> agentIds, IAgentLifecycle.AgentEventDelegate handler)
|
||||
{
|
||||
foreach (var agentId in agentIds)
|
||||
{
|
||||
|
|
@ -252,7 +252,7 @@ internal class AgentLifecyclePluginScoped : IInternalDisposableService, IAgentLi
|
|||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void RegisterListener(AgentEvent eventType, uint agentId, IAgentLifecycle.AgentEventDelegate handler)
|
||||
public void RegisterListener(AgentEvent eventType, AgentId agentId, IAgentLifecycle.AgentEventDelegate handler)
|
||||
{
|
||||
var listener = new AgentLifecycleEventListener(eventType, agentId, handler);
|
||||
this.eventListeners.Add(listener);
|
||||
|
|
@ -262,11 +262,11 @@ internal class AgentLifecyclePluginScoped : IInternalDisposableService, IAgentLi
|
|||
/// <inheritdoc/>
|
||||
public void RegisterListener(AgentEvent eventType, IAgentLifecycle.AgentEventDelegate handler)
|
||||
{
|
||||
this.RegisterListener(eventType, uint.MaxValue, handler);
|
||||
this.RegisterListener(eventType, (AgentId)uint.MaxValue, handler);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void UnregisterListener(AgentEvent eventType, IEnumerable<uint> agentIds, IAgentLifecycle.AgentEventDelegate? handler = null)
|
||||
public void UnregisterListener(AgentEvent eventType, IEnumerable<AgentId> agentIds, IAgentLifecycle.AgentEventDelegate? handler = null)
|
||||
{
|
||||
foreach (var agentId in agentIds)
|
||||
{
|
||||
|
|
@ -275,7 +275,7 @@ internal class AgentLifecyclePluginScoped : IInternalDisposableService, IAgentLi
|
|||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void UnregisterListener(AgentEvent eventType, uint agentId, IAgentLifecycle.AgentEventDelegate? handler = null)
|
||||
public void UnregisterListener(AgentEvent eventType, AgentId agentId, IAgentLifecycle.AgentEventDelegate? handler = null)
|
||||
{
|
||||
this.eventListeners.RemoveAll(entry =>
|
||||
{
|
||||
|
|
@ -291,7 +291,7 @@ internal class AgentLifecyclePluginScoped : IInternalDisposableService, IAgentLi
|
|||
/// <inheritdoc/>
|
||||
public void UnregisterListener(AgentEvent eventType, IAgentLifecycle.AgentEventDelegate? handler = null)
|
||||
{
|
||||
this.UnregisterListener(eventType, uint.MaxValue, handler);
|
||||
this.UnregisterListener(eventType, (AgentId)uint.MaxValue, handler);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public class AgentLifecycleEventListener
|
|||
/// <param name="eventType">Event type to listen for.</param>
|
||||
/// <param name="agentId">Agent id to listen for.</param>
|
||||
/// <param name="functionDelegate">Delegate to invoke.</param>
|
||||
internal AgentLifecycleEventListener(AgentEvent eventType, uint agentId, IAgentLifecycle.AgentEventDelegate functionDelegate)
|
||||
internal AgentLifecycleEventListener(AgentEvent eventType, AgentId agentId, IAgentLifecycle.AgentEventDelegate functionDelegate)
|
||||
{
|
||||
this.EventType = eventType;
|
||||
this.AgentId = agentId;
|
||||
|
|
@ -24,7 +24,7 @@ public class AgentLifecycleEventListener
|
|||
/// Gets the agentId of the agent this listener is looking for.
|
||||
/// uint.MaxValue if it wants to be called for any agent.
|
||||
/// </summary>
|
||||
public uint AgentId { get; init; }
|
||||
public AgentId AgentId { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the event type this listener is looking for.
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ internal unsafe class AgentVirtualTable : IDisposable
|
|||
|
||||
private readonly AgentLifecycle lifecycleService;
|
||||
|
||||
private readonly uint agentId;
|
||||
private readonly AgentId agentId;
|
||||
|
||||
// Each agent gets its own set of args that are used to mutate the original call when used in pre-calls
|
||||
private readonly AgentReceiveEventArgs receiveEventArgs = new();
|
||||
|
|
@ -58,9 +58,9 @@ internal unsafe class AgentVirtualTable : IDisposable
|
|||
/// <param name="agent">AgentInterface* for the agent to replace the table of.</param>
|
||||
/// <param name="agentId">Agent ID.</param>
|
||||
/// <param name="lifecycleService">Reference to AgentLifecycle service to callback and invoke listeners.</param>
|
||||
internal AgentVirtualTable(AgentInterface* agent, uint agentId, AgentLifecycle lifecycleService)
|
||||
internal AgentVirtualTable(AgentInterface* agent, AgentId agentId, AgentLifecycle lifecycleService)
|
||||
{
|
||||
Log.Debug($"Initializing AgentVirtualTable for {(AgentId)agentId}, Address: {(nint)agent:X}");
|
||||
Log.Debug($"Initializing AgentVirtualTable for {agentId}, Address: {(nint)agent:X}");
|
||||
|
||||
this.agentInterface = agent;
|
||||
this.agentId = agentId;
|
||||
|
|
@ -384,10 +384,10 @@ internal unsafe class AgentVirtualTable : IDisposable
|
|||
if (loggingEnabled)
|
||||
{
|
||||
// Manually disable the really spammy log events, you can comment this out if you need to debug them.
|
||||
if (caller is "OnAgentUpdate" || (AgentId)this.agentId is AgentId.PadMouseMode)
|
||||
if (caller is "OnAgentUpdate" || this.agentId is AgentId.PadMouseMode)
|
||||
return;
|
||||
|
||||
Log.Debug($"[{caller}]: {(AgentId)this.agentId}");
|
||||
Log.Debug($"[{caller}]: {this.agentId}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public interface IAgentLifecycle : IDalamudService
|
|||
/// <param name="eventType">Event type to trigger on.</param>
|
||||
/// <param name="agentIds">Agent IDs that will trigger the handler to be invoked.</param>
|
||||
/// <param name="handler">The handler to invoke.</param>
|
||||
void RegisterListener(AgentEvent eventType, IEnumerable<uint> agentIds, AgentEventDelegate handler);
|
||||
void RegisterListener(AgentEvent eventType, IEnumerable<AgentId> agentIds, AgentEventDelegate handler);
|
||||
|
||||
/// <summary>
|
||||
/// Register a listener that will trigger on the specified event only for the specified agent.
|
||||
|
|
@ -32,7 +32,7 @@ public interface IAgentLifecycle : IDalamudService
|
|||
/// <param name="eventType">Event type to trigger on.</param>
|
||||
/// <param name="agentId">The agent ID that will trigger the handler to be invoked.</param>
|
||||
/// <param name="handler">The handler to invoke.</param>
|
||||
void RegisterListener(AgentEvent eventType, uint agentId, AgentEventDelegate handler);
|
||||
void RegisterListener(AgentEvent eventType, AgentId agentId, AgentEventDelegate handler);
|
||||
|
||||
/// <summary>
|
||||
/// Register a listener that will trigger on the specified event for any agent.
|
||||
|
|
@ -50,7 +50,7 @@ public interface IAgentLifecycle : IDalamudService
|
|||
/// <param name="eventType">Event type to deregister.</param>
|
||||
/// <param name="agentIds">Agent IDs to deregister.</param>
|
||||
/// <param name="handler">Optional specific handler to remove.</param>
|
||||
void UnregisterListener(AgentEvent eventType, IEnumerable<uint> agentIds, [Optional] AgentEventDelegate handler);
|
||||
void UnregisterListener(AgentEvent eventType, IEnumerable<AgentId> agentIds, [Optional] AgentEventDelegate handler);
|
||||
|
||||
/// <summary>
|
||||
/// Unregister all listeners for the specified event type and agent ID.
|
||||
|
|
@ -61,7 +61,7 @@ public interface IAgentLifecycle : IDalamudService
|
|||
/// <param name="eventType">Event type to deregister.</param>
|
||||
/// <param name="agentId">Agent id to deregister.</param>
|
||||
/// <param name="handler">Optional specific handler to remove.</param>
|
||||
void UnregisterListener(AgentEvent eventType, uint agentId, [Optional] AgentEventDelegate handler);
|
||||
void UnregisterListener(AgentEvent eventType, AgentId agentId, [Optional] AgentEventDelegate handler);
|
||||
|
||||
/// <summary>
|
||||
/// Unregister an event type handler.<br/>This will only remove a handler that is added via <see cref="RegisterListener(AgentEvent, AgentEventDelegate)"/>.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue