/** * Ashita - Copyright (c) 2014 - 2021 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to * Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. * * By using Ashita, you agree to the above license and its terms. * * Attribution - You must give appropriate credit, provide a link to the license and indicate if changes were * made. You must do so in any reasonable manner, but not in any way that suggests the licensor * endorses you or your use. * * Non-Commercial - You may not use the material (Ashita) for commercial purposes. * * No-Derivatives - If you remix, transform, or build upon the material (Ashita), you may not distribute the * modified material. You are, however, allowed to submit the modified works back to the original * Ashita project in attempt to have it added to the original project. * * You may not apply legal terms or technological measures that legally restrict others * from doing anything the license permits. * * No warranties are given. */ #ifndef __ASHITA_AS_FFXI_INVENTORY_INCLUDED__ #define __ASHITA_AS_FFXI_INVENTORY_INCLUDED__ #if defined (_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif namespace Ashita { namespace FFXI { struct item_t { uint16_t Id; // The item id. uint16_t Index; // The item index. uint32_t Count; // The item count. uint32_t Flags; // The item flags. (5 = Equipped, 25 = Bazaar) uint32_t Price; // The item price, if being sold in bazaar. uint8_t Extra[28]; // The item extra data. (Weaponskill Points, Charges, Augments, etc.) }; struct items_t { item_t Item[81]; // The items within a storage container. }; struct treasureitem_t { uint32_t Flags; // The item flags. uint32_t ItemId; // The item id. uint32_t Count; // The item count. uint32_t Unknown0000[9]; // Unknown uint32_t Status; // The item status. uint16_t Lot; // The local players lot on the item. uint16_t WinningLot; // The current winning lot. uint32_t WinningEntityServerId; // The winning lotters server id. uint32_t WinningEntityTargetIndex; // The winning lotters target index. char WinningLotterName[16]; // The winning lotters name. uint32_t TimeToLive; // The time left to til the item leaves the pool. uint32_t DropTime; // The time the item entered the pool. }; struct equipment_t { uint32_t Slot; // The slot id of the equipment. uint32_t ItemIndex; // The item index where the item is located. }; struct ffxi_inventory_t { uint8_t Unknown0000[0x9860]; items_t Storage[(uint32_t)Enums::Containers::ContainerMax]; uint8_t Unknown0001[0x021C]; // Potential future storage space. treasureitem_t TreasurePool[0x000A]; uint32_t Unknown0002; // Unknown (Treasure related. Set to 1 after zoning, 2 when something has dropped to the pool.) uint8_t Unknown0003; // Unknown (Treasure related.) uint8_t StorageMaxCapacity1[(uint32_t)Enums::Containers::ContainerMax]; uint16_t StorageMaxCapacity2[(uint32_t)Enums::Containers::ContainerMax]; uint32_t Unknown0004; uint8_t Unknown0005[0x0184]; equipment_t Equipment[(uint32_t)Enums::EquipmentSlots::EquipmentSlotMax]; uint8_t Unknown0006[0x0240]; uint8_t Unknown0007[0x00BC]; uint32_t CraftWait; // Handles if the player is crafting or able to craft again. }; }; // namespace FFXI }; // namespace Ashita #endif // __ASHITA_AS_FFXI_INVENTORY_INCLUDED__