Stanzilla / WoWUIBugs

World of Warcraft UI Bug Tracker
166 stars 7 forks source link

Registering the `TRAIT_TREE_CHANGED` event breaks the `CLASS_TALENTSLOAD_ERROR` StaticPopup text #510

Closed Ghostopheles closed 4 months ago

Ghostopheles commented 10 months ago

The CLASS_TALENTSLOAD_ERROR StaticPopup shows up when you attempt to change your talent loadout while one of the altered ability nodes is on cooldown. This popup does not exist until you encounter this condition and it is not created anywhere in the UI code, hinting at this being defined C-side. It is supposed to appear like this: image

If you register the event TRAIT_TREE_CHANGED, this popup breaks and displays nonsensical text instead of the intended string. Seeing as the above popup is defined C-side, there's probably some pointer for the string that should be displayed, but for whatever reason, it's disrupted by frames registering the TRAIT_TREE_CHANGED event, in which case it'll appear like this, or some other combination of nonsense letters and symbols: image

Repro

  1. Create two talent loadouts, one containing some ability, one without that ability
  2. Run /run EventRegistry:RegisterFrameEventAndCallback("TRAIT_TREE_CHANGED", function() end);
  3. Use the ability mentioned in step 1 to put it on cooldown, then attempt to change to your other talent loadout
  4. ???
  5. Broken popup

Alternatively, simply having the EventTrace window open when you trigger the popup works as well, and additionally causes the game to freeze for a moment, then gives you a much longer broken string. Curiously, this particular instance of the broken string appears to be consistent every time you trigger it, while the other method can result in varying strings. image

Ghostopheles commented 4 months ago

Appears to have been fixed as of 10.2.7.54673