Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentItemSearch.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using FFXIVClientStructs.FFXIV.Client.Game;
using FFXIVClientStructs.FFXIV.Client.UI.Info;
using static FFXIVClientStructs.FFXIV.Common.Configuration.ConfigBase;

namespace FFXIVClientStructs.FFXIV.Client.UI.Agent;
Expand All @@ -12,7 +13,9 @@ namespace FFXIVClientStructs.FFXIV.Client.UI.Agent;
[Inherits<AgentInterface>, Inherits<ChangeEventInterface>]
[StructLayout(LayoutKind.Explicit, Size = 0x3888)]
public unsafe partial struct AgentItemSearch {
[FieldOffset(0x90)] public InfoProxyItemSearch* InfoProxyItemSearch;
[FieldOffset(0x98)] public StringHolder* StringData;

// [FieldOffset(0xA2C), FixedSizeArray] internal FixedSizeArray100<uint> _unkUints;
[FieldOffset(0xA29)] public bool ListingPageLoaded;
[FieldOffset(0xBBC), FixedSizeArray] internal FixedSizeArray100<uint> _listingPageItemIds;
Expand Down
27 changes: 11 additions & 16 deletions FFXIVClientStructs/FFXIV/Client/UI/Info/InfoProxyItemSearch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,41 +84,36 @@ public unsafe partial struct InfoProxyItemSearch {
}

[GenerateInterop]
[StructLayout(LayoutKind.Explicit, Size = Size)]
public unsafe partial struct MarketBoardListing {
public const int Size = 0xB8;

// [FieldOffset(0x00)] private Utf8String Unk0x00;

[StructLayout(LayoutKind.Explicit, Size = 0xB8)]
public partial struct MarketBoardListing {
/// <summary>
/// Only populated when item is being sold as a set (see Addon#6994).
/// </summary>
[FieldOffset(0x00)] public Utf8String CharacterName;
[FieldOffset(0x68)] public ulong ListingId;
[FieldOffset(0x70)] public ulong SellingRetainerContentId; // ??
[FieldOffset(0x78)] public ulong SellingPlayerContentId;
[FieldOffset(0x70)] public ulong RetainerId;
[FieldOffset(0x78)] public ulong ContentId;
[FieldOffset(0x80)] public ulong ArtisanId;

[FieldOffset(0x88)] public uint UnitPrice;
[FieldOffset(0x8C)] public uint TotalTax;
[FieldOffset(0x90)] public uint Quantity;
[FieldOffset(0x94)] public uint ItemId;

/// <summary>
/// The index of the retainer's inventory slot in the RetainerMarket inventory.
/// </summary>
[FieldOffset(0x98)] public ushort ContainerIndex;

[FieldOffset(0x9A)] public ushort Durability;
[FieldOffset(0x9C)] public ushort Spiritbond;

/// <summary>
/// List of materias associated with this item. Only valid up to the count specified in MateriaCount.
/// </summary>
[FieldOffset(0x9E), FixedSizeArray] internal FixedSizeArray5<ushort> _materia;

[FieldOffset(0xA8)] public bool IsHqItem;
[FieldOffset(0xA9)] public byte MateriaCount;
[FieldOffset(0xAA)] public bool IsMannequin;

// [FieldOffset(0xAC)] private ushort Unk0xAC;

[BitField<bool>(nameof(IsSellingAsSet), 0)]
[FieldOffset(0xAC)] private uint Flags; // Not entirely sure. Server sends this as byte, but it's stored as (u)int for the NumberArray
/// <summary>
/// The Town (from EXD) that this marketboard entry is from.
/// </summary>
Expand All @@ -129,7 +124,7 @@ public unsafe partial struct MarketBoardListing {

[StructLayout(LayoutKind.Explicit, Size = 0x24)]
public struct LastPurchasedMarketboardItem {
[FieldOffset(0x00)] public ulong SellingRetainerContentId;
[FieldOffset(0x00)] public ulong RetainerId;
[FieldOffset(0x08)] public ulong ListingId;
[FieldOffset(0x10)] public uint ItemId;
[FieldOffset(0x14)] public uint Quantity;
Expand Down
Loading