feat: enhance item tooltips with binding, description, speed, and spell effects

- Parse Bonding and Description fields from SMSG_ITEM_QUERY_SINGLE_RESPONSE
  (read after the 5 spell slots: bindType uint32, then description cstring)
- Add bindType and description to ItemQueryResponseData and ItemDef
- Propagate bindType and description through all 5 rebuildOnlineInventory paths
- Tooltip now shows: "Binds when picked up/equipped/used/quest item"
- Tooltip now shows weapon damage range ("X - Y Damage") and speed ("Speed 2.60")
  on same line, plus DPS in parentheses below
- Tooltip now shows spell effects ("Use: <SpellName>", "Equip: <SpellName>",
  "Chance on Hit: ...") using existing getSpellName() lookup
- Tooltip now shows item flavor/lore description in italic-style yellow text
This commit is contained in:
Kelsi 2026-03-10 16:47:55 -07:00
parent f53f16a59b
commit 76bd6b409e
5 changed files with 64 additions and 3 deletions

View file

@ -50,6 +50,8 @@ struct ItemDef {
uint32_t maxDurability = 0;
uint32_t itemLevel = 0;
uint32_t requiredLevel = 0;
uint32_t bindType = 0; // 0=none, 1=BoP, 2=BoE, 3=BoU, 4=BoQ
std::string description; // Flavor/lore text shown in tooltip (italic yellow)
};
struct ItemSlot {

View file

@ -1561,6 +1561,8 @@ struct ItemQueryResponseData {
uint32_t spellTrigger = 0; // 0=Use, 1=Equip, 2=ChanceOnHit, 5=Learn
};
std::array<ItemSpell, 5> spells{};
uint32_t bindType = 0; // 0=none, 1=BoP, 2=BoE, 3=BoU, 4=BoQ
std::string description; // Flavor/lore text
bool valid = false;
};