# File: `Items.h` ## Classes - `MasterItemList` - `Player` - `Entity` - `ItemStatsValues` - `ItemCore` - `ItemStat` - `ItemSet` - `Classifications` - `ItemLevelOverride` - `ItemClass` - `ItemAppearance` - `QuestRewardData` - `PlayerItemList` - `Item` - `ItemStatString` - `Generic_Info` - `Armor_Info` - `Adornment_Info` - `Weapon_Info` - `Shield_Info` - `Ranged_Info` - `Bag_Info` - `Food_Info` - `Bauble_Info` - `Book_Info` - `Book_Info_Pages` - `Skill_Info` - `HouseItem_Info` - `HouseContainer_Info` - `RecipeBook_Info` - `ItemSet_Info` - `Thrown_Info` - `ItemEffect` - `BookPage` - `MasterItemList` - `PlayerItemList` - `EquipmentItemList` ## Functions - `void AddEffect(string effect, int8 percentage, int8 subbulletflag);` - `void AddBookPage(int8 page, string page_text,int8 valign, int8 halign);` - `int32 GetMaxSellValue();` - `void SetMaxSellValue(int32 val);` - `void SetItem(Item* old_item);` - `int16 GetOverrideLevel(int8 adventure_class, int8 tradeskill_class);` - `void AddLevelOverride(int8 adventure_class, int8 tradeskill_class, int16 level);` - `void AddLevelOverride(ItemLevelOverride* class_);` - `bool CheckClassLevel(int8 adventure_class, int8 tradeskill_class, int16 level);` - `bool CheckClass(int8 adventure_class, int8 tradeskill_class);` - `bool CheckArchetypeAdvClass(int8 adventure_class, map* adv_class_levels = 0);` - `bool CheckArchetypeAdvSubclass(int8 adventure_class, map* adv_class_levels = 0);` - `bool CheckLevel(int8 adventure_class, int8 tradeskill_class, int16 level);` - `void SetAppearance(int16 type, int8 red, int8 green, int8 blue, int8 highlight_red, int8 highlight_green, int8 highlight_blue);` - `void SetAppearance(ItemAppearance* appearance);` - `void AddStat(ItemStat* in_stat);` - `bool HasStat(uint32 statID, std::string statName = std::string(""));` - `void DeleteItemSets();` - `void AddSet(ItemSet* in_set);` - `void AddStatString(ItemStatString* in_stat);` - `void AddStat(int8 type, int16 subtype, float value, int8 level, char* name = 0);` - `void AddSet(int32 item_id, int32 item_crc, int16 item_icon, int32 item_stack_size, int32 item_list_color, std::string name, int8 language);` - `void SetWeaponType(int8 type);` - `int8 GetWeaponType();` - `bool HasSlot(int8 slot, int8 slot2 = 255);` - `bool HasAdorn0();` - `bool HasAdorn1();` - `bool HasAdorn2();` - `bool IsNormal();` - `bool IsWeapon();` - `bool IsArmor();` - `bool IsDualWieldAble(Client* client, Item* item, int8 slot = -1);` - `bool IsRanged();` - `bool IsBag();` - `bool IsFood();` - `bool IsBauble();` - `bool IsSkill();` - `bool IsHouseItem();` - `bool IsHouseContainer();` - `bool IsShield();` - `bool IsAdornment();` - `bool IsAmmo();` - `bool IsBook();` - `bool IsChainArmor();` - `bool IsClothArmor();` - `bool IsCollectable();` - `bool IsCloak();` - `bool IsCrushWeapon();` - `bool IsFoodFood();` - `bool IsFoodDrink();` - `bool IsJewelry();` - `bool IsLeatherArmor();` - `bool IsMisc();` - `bool IsPierceWeapon();` - `bool IsPlateArmor();` - `bool IsPoison();` - `bool IsPotion();` - `bool IsRecipeBook();` - `bool IsSalesDisplay();` - `bool IsSlashWeapon();` - `bool IsSpellScroll();` - `bool IsTinkered();` - `bool IsTradeskill();` - `bool IsThrown();` - `bool IsHarvest();` - `bool IsBodyDrop();` - `void SetItemScript(string name);` - `int32 CalculateRepairCost();` - `string CreateItemLink(int16 client_Version, bool bUseUniqueID=false);` - `void SetItemType(int8 in_type);` - `void serialize(PacketStruct* packet, bool show_name = false, Player* player = 0, int16 packet_type = 0, int8 subtype = 0, bool loot_item = false, bool inspect = false);` - `bool CheckFlag(int32 flag);` - `bool CheckFlag2(int32 flag);` - `void AddSlot(int8 slot_id);` - `void SetSlots(int32 slots);` - `int16 GetIcon(int16 version);` - `void AddItem(Item* item);` - `bool IsBag(int32 item_id);` - `void RemoveAll();` - `int32 GetItemStatIDByName(std::string name);` - `std::string GetItemStatNameByID(int32 id);` - `void AddMappedItemStat(int32 id, std::string lower_case_name);` - `void AddBrokerItemMapRange(int32 min_version, int32 max_version, int64 client_bitmask, int64 server_bitmask);` - `int32 SetMaxItemIndex();` - `bool SharedBankAddAllowed(Item* item);` - `bool HasItem(int32 id, bool include_bank = false);` - `void MoveItem(Item* item, sint32 inv_slot, int16 slot, int8 appearance_type, bool erase_old); // erase old was true` - `bool MoveItem(sint32 to_bag_id, int16 from_index, sint8 to, int8 appearance_type, int8 charges);` - `void EraseItem(Item* item);` - `sint32 GetAllStackCountItemFromID(int32 item_id, int8 count = 0, bool include_bank = false, bool lock = true);` - `bool AssignItemToFreeSlot(Item* item);` - `int16 GetNumberOfFreeSlots();` - `int16 GetNumberOfItems();` - `int32 GetWeight();` - `bool HasFreeSlot();` - `bool HasFreeBagSlot();` - `void DestroyItem(int16 index);` - `void RemoveItem(Item* item, bool delete_item = false);` - `bool AddItem(Item* item);` - `bool HasFreeBankSlot();` - `int8 FindFreeBankSlot();` - `bool GetFirstFreeSlot(sint32* bag_id, sint16* slot);` - `bool GetFirstFreeBankSlot(sint32* bag_id, sint16* slot);` - `bool AddOverflowItem(Item* item);` - `void RemoveOverflowItem(Item* item);` - `void ResetPackets();` - `int32 CheckSlotConflict(Item* tmp, bool check_lore_only = false, bool lock_mutex = true, int16* lore_stack_count = 0);` - `int32 GetItemCountInBag(Item* bag);` - `int16 GetFirstNewItem();` - `int16 GetNewItemByIndex(int16 in_index);` - `void AddItemToPacket(PacketStruct* packet, Player* player, Item* item, int16 i, bool overflow = false, int16 new_index = 0);` - `void Stack(Item* orig_item, Item* item);` - `void ResetPackets();` - `bool HasItem(int32 id);` - `int8 GetNumberOfItems();` - `int32 GetWeight();` - `void SetItem(int8 slot_id, Item* item, bool locked = false);` - `void RemoveItem(int8 slot, bool delete_item = false);` - `bool AddItem(int8 slot, Item* item);` - `bool CheckEquipSlot(Item* tmp, int8 slot);` - `bool CanItemBeEquippedInSlot(Item* tmp, int8 slot);` - `int8 GetFreeSlot(Item* tmp, int8 slot_id = 255, int16 version = 0);` - `int32 CheckSlotConflict(Item* tmp, bool check_lore_only = false, int16* lore_stack_count = 0);` - `int8 GetSlotByItem(Item* item);` - `void SendEquippedItems(Player* player);` - `void SetAppearanceType(int8 type) { AppearanceType = type; }` - `int8 GetAppearanceType() { return AppearanceType; }` ## Notable Comments - /* - */ - // FLAGS - // FLAGS2 - //DOV defines everything till 13 is the same - //#define ITEM_TYPE_BOOK 13 - //#define ITEM_TYPE_ADORNMENT 14 - //#define ITEM_TYPE_PATTERN 15 - //#define ITEM_TYPE_ARMORSET 16 - //#define ITEM_STAT_VS_HEAT 203 //just so no build error