feat: parse and display item skill/reputation requirements in tooltips

- Store requiredSkill, requiredSkillRank, allowableClass, allowableRace,
  requiredReputationFaction, and requiredReputationRank from
  SMSG_ITEM_QUERY_SINGLE_RESPONSE in ItemQueryResponseData (was discarded)
- Show "Requires <Skill> (<rank>)" in item tooltip, highlighted red when
  the player doesn't have sufficient skill level
- Show "Requires <Rank> with <Faction>" for reputation-gated items
- Skill names resolved from SkillLine.dbc; faction names from Faction.dbc
- Also fix loot window tooltip suppressing items with names starting with 'I'
This commit is contained in:
Kelsi 2026-03-13 11:11:33 -07:00
parent a6c4f6d2e9
commit b0b47c354a
6 changed files with 96 additions and 20 deletions

View file

@ -1619,6 +1619,13 @@ struct ItemQueryResponseData {
std::array<uint32_t, 3> socketColor{};
uint32_t socketBonus = 0; // enchantmentId of socket bonus; 0=none
uint32_t itemSetId = 0; // ItemSet.dbc entry; 0=not part of a set
// Requirement fields
uint32_t requiredSkill = 0; // SkillLine.dbc ID (0 = no skill required)
uint32_t requiredSkillRank = 0; // Minimum skill value
uint32_t allowableClass = 0; // Class bitmask (0 = all classes)
uint32_t allowableRace = 0; // Race bitmask (0 = all races)
uint32_t requiredReputationFaction = 0; // Faction.dbc ID (0 = none)
uint32_t requiredReputationRank = 0; // 0=Hated..8=Exalted
bool valid = false;
};