diff --git a/FFXIVClientStructs/FFXIV/Client/Game/InstanceContent/InstanceContentCrucible.cs b/FFXIVClientStructs/FFXIV/Client/Game/InstanceContent/InstanceContentCrucible.cs new file mode 100644 index 000000000..9fac7da38 --- /dev/null +++ b/FFXIVClientStructs/FFXIV/Client/Game/InstanceContent/InstanceContentCrucible.cs @@ -0,0 +1,29 @@ +namespace FFXIVClientStructs.FFXIV.Client.Game.InstanceContent; + +// Client::Game::InstanceContent::InstanceContentCrucible +// Client::Game::InstanceContent::InstanceContentDirector +// Client::Game::InstanceContent::ContentDirector +// Client::Game::Event::Director +// Client::Game::Event::LuaEventHandler +// Client::Game::Event::EventHandler +[GenerateInterop] +[Inherits] +[StructLayout(LayoutKind.Explicit, Size = 0x25A0)] +public partial struct InstanceContentCrucible { + [FieldOffset(0x2380), FixedSizeArray] internal FixedSizeArray10 _inventory; + + [StructLayout(LayoutKind.Explicit, Size = 12)] + public struct InventorySlot { + [FieldOffset(4)] public ushort ItemId; + } + + /// + /// Uses a Crucible item. + /// + /// If applicable, the item action will be used on the player's current soft or hard target. + /// Crucible inventory index (0-9). + /// Beast ID (XBMPet row). Only applicable for the "Blessed Horn" item, which must be used on an incapacitated pet. + [MemberFunction("E8 ?? ?? ?? ?? 83 7F 44 00 48 8D 57 44")] + public partial void UseItem(uint slot, int beastId); +} + diff --git a/ida/data.yml b/ida/data.yml index 4ad6db86b..ab73b656f 100644 --- a/ida/data.yml +++ b/ida/data.yml @@ -19728,6 +19728,10 @@ classes: vtbls: - ea: 0x1423861D8 base: Client::Game::InstanceContent::InstanceContentBeginnerTrainingExercise + Client::Game::InstanceContent::InstanceContentCrucible: + vtbls: + - ea: 0x1421F2D68 + base: Client::Game::InstanceContent::InstanceContentDirector Client::Game::InstanceContent::InstanceContentDeepDungeon: vtbls: - ea: 0x14238B010