mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-25 17:16:02 +00:00
e59158764c
Spell.dbc reuses icons freely across unrelated spells, so matching an aura on its icon alone lit the indicator for the wrong buff. Blessing of Sanctuary fired on Lightning Shield and Shadowguard, Blessing of Kings on Mage Armor and Commanding Shout, and Totemic Power on the Blessed Sunfruit food buff -- the last of which the code already carried a comment about. Fixes #55. Each entry is now a spell id, resolved once into the aura's name plus its icon, and a match needs both. Name alone is no better than icon alone: creature and item auras reuse player spell names, so a mob's "Renew" or a trinket's "Rejuvenation" would light a HoT indicator. Every rank of a spell carries the same name and icon, so one id covers the whole rank ladder without listing it. HOT_INDICATORS folds away with this. It existed to name-check exactly the three HoTs whose icons were known to collide; that check is now what every entry does, and the table's only remaining job -- naming a HoT's libpredict key -- is an argument on the Renew, Regrowth and Rejuvenation entries. Deriving the name from an id also picks up this client's renames for free. The paladin blessings are "Hand of Freedom", "Hand of Protection" and "Greater Blessing of Sacrifice" here, which hardcoded English names would have missed. All 65 ids were checked against the client's Spell.dbc, SpellIcon.dbc and SkillLineAbility.dbc: each resolves to the intended aura, with its full rank ladder sitting on the icon the old list matched. That check also turned up five entries matching no spell at all on this client. ability_hunter_misdirection, spell_holy_prayerofmendingtga and inv_misc_herb_felblossom are TBC leftovers and are gone. spell_nature_giftofthewild was never right -- Gift of the Wild uses Mark of the Wild's icon -- and is now covered by id 21849. ability_warrior_rallyingcry hosts no Commanding Shout either, so that entry now points at the real spell (45580) and works for the first time. Unrelated to the above, this file's string.fn(s, ...) calls become s:fn(...).