diff --git a/Dalamud/Game/Addon/Lifecycle/AddonArgTypes/AddonRefreshArgs.cs b/Dalamud/Game/Addon/Lifecycle/AddonArgTypes/AddonRefreshArgs.cs
index d28631c3c..83a0ba3e3 100644
--- a/Dalamud/Game/Addon/Lifecycle/AddonArgTypes/AddonRefreshArgs.cs
+++ b/Dalamud/Game/Addon/Lifecycle/AddonArgTypes/AddonRefreshArgs.cs
@@ -1,3 +1,5 @@
+using Dalamud.Utility;
+
using FFXIVClientStructs.FFXIV.Component.GUI;
namespace Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
@@ -31,6 +33,8 @@ public class AddonRefreshArgs : AddonArgs, ICloneable
///
/// Gets the AtkValues in the form of a span.
///
+ [Api14ToDo(Api14ToDoAttribute.Remove)]
+ [Obsolete($"Exposed ClientStructs type; use {nameof(AtkValues)}/{nameof(AtkValueCount)} instead.", false)]
public unsafe Span AtkValueSpan => new(this.AtkValues.ToPointer(), (int)this.AtkValueCount);
///
diff --git a/Dalamud/Game/Addon/Lifecycle/AddonArgTypes/AddonSetupArgs.cs b/Dalamud/Game/Addon/Lifecycle/AddonArgTypes/AddonSetupArgs.cs
index 0dd9ecee2..b5f50b551 100644
--- a/Dalamud/Game/Addon/Lifecycle/AddonArgTypes/AddonSetupArgs.cs
+++ b/Dalamud/Game/Addon/Lifecycle/AddonArgTypes/AddonSetupArgs.cs
@@ -1,3 +1,5 @@
+using Dalamud.Utility;
+
using FFXIVClientStructs.FFXIV.Component.GUI;
namespace Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
@@ -31,6 +33,8 @@ public class AddonSetupArgs : AddonArgs, ICloneable
///
/// Gets the AtkValues in the form of a span.
///
+ [Api14ToDo(Api14ToDoAttribute.Remove)]
+ [Obsolete($"Exposed ClientStructs type; use {nameof(AtkValues)}/{nameof(AtkValueCount)} instead.", false)]
public unsafe Span AtkValueSpan => new(this.AtkValues.ToPointer(), (int)this.AtkValueCount);
///
diff --git a/Dalamud/Game/Addon/Lifecycle/AddonEvent.cs b/Dalamud/Game/Addon/Lifecycle/AddonEvent.cs
index 5fd0ac964..b5a7e4919 100644
--- a/Dalamud/Game/Addon/Lifecycle/AddonEvent.cs
+++ b/Dalamud/Game/Addon/Lifecycle/AddonEvent.cs
@@ -12,11 +12,11 @@ public enum AddonEvent
///
/// An event that is fired prior to an addon being setup with its implementation of
/// . This event is useful for modifying the initial data contained within
- /// prior to the addon being created.
+ /// prior to the addon being created.
///
///
PreSetup,
-
+
///
/// An event that is fired after an addon has finished its initial setup. This event is particularly useful for
/// developers seeking to add custom elements to now-initialized and populated node lists, as well as reading data
@@ -64,7 +64,7 @@ public enum AddonEvent
///
///
PreFinalize,
-
+
///
/// An event that is fired before a call to is made in response to a
/// change in the subscribed or
@@ -81,13 +81,13 @@ public enum AddonEvent
/// to the Free Company's overview.
///
PreRequestedUpdate,
-
+
///
/// An event that is fired after an addon has finished processing an ArrayData update.
/// See for more information.
///
PostRequestedUpdate,
-
+
///
/// An event that is fired before an addon calls its method. Refreshes are
/// generally triggered in response to certain user interactions such as changing tabs, and are primarily used to
@@ -96,13 +96,13 @@ public enum AddonEvent
///
///
PreRefresh,
-
+
///
/// An event that is fired after an addon has finished its refresh.
/// See for more information.
///
PostRefresh,
-
+
///
/// An event that is fired before an addon begins processing a user-driven event via
/// , such as mousing over an element or clicking a button. This event
@@ -112,7 +112,7 @@ public enum AddonEvent
///
///
PreReceiveEvent,
-
+
///
/// An event that is fired after an addon finishes calling its method.
/// See for more information.
diff --git a/Dalamud/Game/ClientState/JobGauge/Types/SMNGauge.cs b/Dalamud/Game/ClientState/JobGauge/Types/SMNGauge.cs
index 899ea78eb..0bb5d2463 100644
--- a/Dalamud/Game/ClientState/JobGauge/Types/SMNGauge.cs
+++ b/Dalamud/Game/ClientState/JobGauge/Types/SMNGauge.cs
@@ -1,4 +1,6 @@
using Dalamud.Game.ClientState.JobGauge.Enums;
+using Dalamud.Utility;
+
using FFXIVClientStructs.FFXIV.Client.Game.Gauge;
namespace Dalamud.Game.ClientState.JobGauge.Types;
@@ -69,6 +71,7 @@ public unsafe class SMNGauge : JobGaugeBase
/// Gets the current aether flags.
/// Use the summon accessors instead.
///
+ [Api14ToDo("Declare our own enum for this to avoid CS type.")]
public AetherFlags AetherFlags => this.Struct->AetherFlags;
///
diff --git a/Dalamud/Game/Gui/Dtr/DtrBarEntry.cs b/Dalamud/Game/Gui/Dtr/DtrBarEntry.cs
index 6fdc504ca..42268a5ec 100644
--- a/Dalamud/Game/Gui/Dtr/DtrBarEntry.cs
+++ b/Dalamud/Game/Gui/Dtr/DtrBarEntry.cs
@@ -143,7 +143,7 @@ internal sealed unsafe class DtrBarEntry : IDisposable, IDtrBarEntry
}
///
- [Api13ToDo("Maybe make this config scoped to internal name?")]
+ [Api14ToDo("Maybe make this config scoped to internal name?")]
public bool UserHidden => this.configuration.DtrIgnore?.Contains(this.Title) ?? false;
///
diff --git a/Dalamud/Interface/Animation/Easing.cs b/Dalamud/Interface/Animation/Easing.cs
index 0d2057b3b..cc1f48ce7 100644
--- a/Dalamud/Interface/Animation/Easing.cs
+++ b/Dalamud/Interface/Animation/Easing.cs
@@ -48,7 +48,7 @@ public abstract class Easing
/// Gets the current value of the animation, following unclamped logic.
///
[Obsolete($"This field has been deprecated. Use either {nameof(ValueClamped)} or {nameof(ValueUnclamped)} instead.", true)]
- [Api13ToDo("Map this field to ValueClamped, probably.")]
+ [Api14ToDo("Map this field to ValueClamped, probably.")]
public double Value => this.ValueUnclamped;
///
diff --git a/Dalamud/Interface/Components/ImGuiComponents.HelpMarker.cs b/Dalamud/Interface/Components/ImGuiComponents.HelpMarker.cs
index 57a4bd150..71edfc759 100644
--- a/Dalamud/Interface/Components/ImGuiComponents.HelpMarker.cs
+++ b/Dalamud/Interface/Components/ImGuiComponents.HelpMarker.cs
@@ -1,5 +1,7 @@
using Dalamud.Bindings.ImGui;
using Dalamud.Interface.Utility.Raii;
+using Dalamud.Utility;
+
using FFXIVClientStructs.FFXIV.Common.Math;
namespace Dalamud.Interface.Components;
@@ -21,6 +23,7 @@ public static partial class ImGuiComponents
/// The text to display on hover.
/// The icon to use.
/// The color of the icon.
+ [Api14ToDo("Replace CS Vector4 with System.Numerics.Vector4")]
public static void HelpMarker(string helpText, FontAwesomeIcon icon, Vector4? color = null)
{
using var col = new ImRaii.Color();
diff --git a/Dalamud/Utility/Api13ToDoAttribute.cs b/Dalamud/Utility/Api14ToDoAttribute.cs
similarity index 64%
rename from Dalamud/Utility/Api13ToDoAttribute.cs
rename to Dalamud/Utility/Api14ToDoAttribute.cs
index 576401cda..f24fcb539 100644
--- a/Dalamud/Utility/Api13ToDoAttribute.cs
+++ b/Dalamud/Utility/Api14ToDoAttribute.cs
@@ -4,7 +4,7 @@ namespace Dalamud.Utility;
/// Utility class for marking something to be changed for API 13, for ease of lookup.
///
[AttributeUsage(AttributeTargets.All, Inherited = false)]
-internal sealed class Api13ToDoAttribute : Attribute
+internal sealed class Api14ToDoAttribute : Attribute
{
///
/// Marks that this should be made internal.
@@ -12,11 +12,16 @@ internal sealed class Api13ToDoAttribute : Attribute
public const string MakeInternal = "Make internal.";
///
- /// Initializes a new instance of the class.
+ /// Marks that this should be removed entirely.
+ ///
+ public const string Remove = "Remove.";
+
+ ///
+ /// Initializes a new instance of the class.
///
/// The explanation.
/// The explanation 2.
- public Api13ToDoAttribute(string what, string what2 = "")
+ public Api14ToDoAttribute(string what, string what2 = "")
{
_ = what;
_ = what2;
diff --git a/Dalamud/Utility/Util.cs b/Dalamud/Utility/Util.cs
index a1c2eb6b2..cb13c463e 100644
--- a/Dalamud/Utility/Util.cs
+++ b/Dalamud/Utility/Util.cs
@@ -75,7 +75,7 @@ public static partial class Util
///
/// Gets the Dalamud version.
///
- [Api13ToDo("Remove. Make both versions here internal. Add an API somewhere.")]
+ [Api14ToDo("Remove. Make both versions here internal. Add an API somewhere.")]
public static string AssemblyVersion { get; } =
Assembly.GetAssembly(typeof(ChatHandlers))!.GetName().Version!.ToString();