#pragma once // Custom Classes #include "CDTable.h" #include "dCommonVars.h" struct CDItemComponent { unsigned int id; //!< The Component ID std::string equipLocation; //!< The equip location unsigned int baseValue; //!< The monetary base value of the item bool isKitPiece; //!< Whether or not the item belongs to a kit unsigned int rarity; //!< The rarity of the item unsigned int itemType; //!< The item type int64_t itemInfo; //!< The item info bool inLootTable; //!< Whether or not the item is in a loot table bool inVendor; //!< Whether or not the item is in a vendor inventory bool isUnique; //!< ??? bool isBOP; //!< ??? bool isBOE; //!< ??? unsigned int reqFlagID; //!< User must have completed this flag to get the item unsigned int reqSpecialtyID; //!< ??? unsigned int reqSpecRank; //!< ??? unsigned int reqAchievementID; //!< The required achievement must be completed unsigned int stackSize; //!< The stack size of the item unsigned int color1; //!< Something to do with item color... unsigned int decal; //!< The decal of the item unsigned int offsetGroupID; //!< Something to do with group IDs unsigned int buildTypes; //!< Something to do with building std::string reqPrecondition; //!< The required precondition unsigned int animationFlag; //!< The Animation Flag unsigned int equipEffects; //!< The effect played when the item is equipped bool readyForQA; //!< ??? unsigned int itemRating; //!< ??? bool isTwoHanded; //!< Whether or not the item is double handed unsigned int minNumRequired; //!< Maybe the minimum number required for a mission, or to own this object? unsigned int delResIndex; //!< ??? unsigned int currencyLOT; //!< ??? unsigned int altCurrencyCost; //!< ??? std::string subItems; //!< A comma seperate string of sub items (maybe for multi-itemed things like faction test gear set) UNUSED(std::string audioEventUse); //!< ??? bool noEquipAnimation; //!< Whether or not there is an equip animation unsigned int commendationLOT; //!< The commendation LOT unsigned int commendationCost; //!< The commendation cost UNUSED(std::string audioEquipMetaEventSet); //!< ??? std::string currencyCosts; //!< Used for crafting UNUSED(std::string ingredientInfo); //!< Unused unsigned int locStatus; //!< ??? unsigned int forgeType; //!< Forge Type float SellMultiplier; //!< Something to do with early vendors perhaps (but replaced) }; class CDItemComponentTable : public CDTable { private: std::map entries; public: CDItemComponentTable(); static std::map ParseCraftingCurrencies(const CDItemComponent& itemComponent); // Gets an entry by ID const CDItemComponent& GetItemComponentByID(unsigned int id); static CDItemComponent Default; };