diff --git a/Dalamud/Game/ClientState/Statuses/StatusList.cs b/Dalamud/Game/ClientState/Statuses/StatusList.cs
index ee4285dd3..591988e35 100644
--- a/Dalamud/Game/ClientState/Statuses/StatusList.cs
+++ b/Dalamud/Game/ClientState/Statuses/StatusList.cs
@@ -57,10 +57,49 @@ namespace Dalamud.Game.ClientState.Statuses
return null;
var addr = this.GetStatusAddress(index);
- return this.CreateStatusReference(addr);
+ return CreateStatusReference(addr);
}
}
+ ///
+ /// Create a reference to an FFXIV actor status list.
+ ///
+ /// The address of the status list in memory.
+ /// The status object containing the requested data.
+ public static StatusList? CreateStatusListReference(IntPtr address)
+ {
+ // The use case for CreateStatusListReference and CreateStatusReference to be static is so
+ // fake status lists can be generated. Since they aren't exposed as services, it's either
+ // here or somewhere else.
+ var clientState = Service.Get();
+
+ if (clientState.LocalContentId == 0)
+ return null;
+
+ if (address == IntPtr.Zero)
+ return null;
+
+ return new StatusList(address);
+ }
+
+ ///
+ /// Create a reference to an FFXIV actor status.
+ ///
+ /// The address of the status effect in memory.
+ /// The status object containing the requested data.
+ public static Status? CreateStatusReference(IntPtr address)
+ {
+ var clientState = Service.Get();
+
+ if (clientState.LocalContentId == 0)
+ return null;
+
+ if (address == IntPtr.Zero)
+ return null;
+
+ return new Status(address);
+ }
+
///
/// Gets the address of the party member at the specified index of the party list.
///
@@ -73,24 +112,6 @@ namespace Dalamud.Game.ClientState.Statuses
return (IntPtr)(this.Struct->Status + (index * StatusSize));
}
-
- ///
- /// Create a reference to an FFXIV actor status.
- ///
- /// The address of the status effect in memory.
- /// The status object containing the requested data.
- public Status? CreateStatusReference(IntPtr address)
- {
- var clientState = Service.Get();
-
- if (clientState.LocalContentId == 0)
- return null;
-
- if (address == IntPtr.Zero)
- return null;
-
- return new Status(address);
- }
}
///