diff --git a/Dalamud/Game/ClientState/Objects/Types/Character.cs b/Dalamud/Game/ClientState/Objects/Types/Character.cs index 67f8c8b62..c4c91f5b0 100644 --- a/Dalamud/Game/ClientState/Objects/Types/Character.cs +++ b/Dalamud/Game/ClientState/Objects/Types/Character.cs @@ -93,6 +93,11 @@ public interface ICharacter : IGameObject /// Gets the status flags. /// public StatusFlags StatusFlags { get; } + + /// + /// Gets the current mount for this character. Will be null if the character doesn't have a mount. + /// + public ExcelResolver? CurrentMount { get; } } /// @@ -172,6 +177,18 @@ internal unsafe class Character : GameObject, ICharacter (this.Struct->IsAllianceMember ? StatusFlags.AllianceMember : StatusFlags.None) | (this.Struct->IsFriend ? StatusFlags.Friend : StatusFlags.None) | (this.Struct->IsCasting ? StatusFlags.IsCasting : StatusFlags.None); + + /// + public ExcelResolver? CurrentMount + { + get + { + if (this.Struct->IsNotMounted()) return null; // safety i guess? + + var mountId = this.Struct->Mount.MountId; + return mountId == 0 ? null : new ExcelResolver(mountId); + } + } /// /// Gets the underlying structure.