Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint32 FillMaxDurability(uint32 itemClass, uint32 itemSubClass, uint32 inventoryType, uint32 quality, uint32 itemLevel)
- {
- if (itemClass != ITEM_CLASS_ARMOR && itemClass != ITEM_CLASS_WEAPON)
- return 0;
- static float const qualityMultipliers[MAX_ITEM_QUALITY] =
- {
- 1.0f, 1.0f, 1.0f, 1.17f, 1.37f, 1.68f, 0.0f, 0.0f
- };
- static float const armorMultipliers[MAX_INVTYPE] =
- {
- 0.00f, // INVTYPE_NON_EQUIP
- 0.59f, // INVTYPE_HEAD
- 0.00f, // INVTYPE_NECK
- 0.59f, // INVTYPE_SHOULDERS
- 0.00f, // INVTYPE_BODY
- 1.00f, // INVTYPE_CHEST
- 0.35f, // INVTYPE_WAIST
- 0.75f, // INVTYPE_LEGS
- 0.49f, // INVTYPE_FEET
- 0.35f, // INVTYPE_WRISTS
- 0.35f, // INVTYPE_HANDS
- 0.00f, // INVTYPE_FINGER
- 0.00f, // INVTYPE_TRINKET
- 0.00f, // INVTYPE_WEAPON
- 1.00f, // INVTYPE_SHIELD
- 0.00f, // INVTYPE_RANGED
- 0.00f, // INVTYPE_CLOAK
- 0.00f, // INVTYPE_2HWEAPON
- 0.00f, // INVTYPE_BAG
- 0.00f, // INVTYPE_TABARD
- 1.00f, // INVTYPE_ROBE
- 0.00f, // INVTYPE_WEAPONMAINHAND
- 0.00f, // INVTYPE_WEAPONOFFHAND
- 0.00f, // INVTYPE_HOLDABLE
- 0.00f, // INVTYPE_AMMO
- 0.00f, // INVTYPE_THROWN
- 0.00f, // INVTYPE_RANGEDRIGHT
- 0.00f, // INVTYPE_QUIVER
- 0.00f, // INVTYPE_RELIC
- };
- static float const weaponMultipliers[MAX_ITEM_SUBCLASS_WEAPON] =
- {
- 0.89f, // ITEM_SUBCLASS_WEAPON_AXE
- 1.03f, // ITEM_SUBCLASS_WEAPON_AXE2
- 0.77f, // ITEM_SUBCLASS_WEAPON_BOW
- 0.77f, // ITEM_SUBCLASS_WEAPON_GUN
- 0.89f, // ITEM_SUBCLASS_WEAPON_MACE
- 1.03f, // ITEM_SUBCLASS_WEAPON_MACE2
- 1.03f, // ITEM_SUBCLASS_WEAPON_POLEARM
- 0.89f, // ITEM_SUBCLASS_WEAPON_SWORD
- 1.03f, // ITEM_SUBCLASS_WEAPON_SWORD2
- 0.00f, // ITEM_SUBCLASS_WEAPON_Obsolete
- 1.03f, // ITEM_SUBCLASS_WEAPON_STAFF
- 0.00f, // ITEM_SUBCLASS_WEAPON_EXOTIC
- 0.00f, // ITEM_SUBCLASS_WEAPON_EXOTIC2
- 0.64f, // ITEM_SUBCLASS_WEAPON_FIST_WEAPON
- 0.00f, // ITEM_SUBCLASS_WEAPON_MISCELLANEOUS
- 0.64f, // ITEM_SUBCLASS_WEAPON_DAGGER
- 0.64f, // ITEM_SUBCLASS_WEAPON_THROWN
- 0.00f, // ITEM_SUBCLASS_WEAPON_SPEAR
- 0.77f, // ITEM_SUBCLASS_WEAPON_CROSSBOW
- 0.64f, // ITEM_SUBCLASS_WEAPON_WAND
- 0.64f, // ITEM_SUBCLASS_WEAPON_FISHING_POLE
- };
- float levelPenalty = 1.0f;
- if (itemLevel <= 28)
- levelPenalty = 0.966f - float(28u - itemLevel) / 54.0f;
- if (itemClass == ITEM_CLASS_ARMOR)
- {
- if (inventoryType > INVTYPE_ROBE)
- return 0;
- return 5 * uint32(23.0f * qualityMultipliers[quality] * armorMultipliers[inventoryType] * levelPenalty + 0.5f);
- }
- return 5 * uint32(17.0f * qualityMultipliers[quality] * weaponMultipliers[itemSubClass] * levelPenalty + 0.5f);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement