Skip to content

Fix socket icons not following character-sheet equipment order - #2111

Merged
EllesmereGaming merged 1 commit into
EllesmereGaming:mainfrom
dfrisone:fix/socket-character-sheet-order
Sep 17, 2026
Merged

EllesmereGaming merged 1 commit into
EllesmereGaming:mainfrom
dfrisone:fix/socket-character-sheet-order

Conversation

@dfrisone

Copy link
Copy Markdown
Contributor

What does this PR do?

Fixes Stickybackpack's report that character-sheet socket icons appear in a different order from the equipment slots. The strip previously followed inventory slot IDs, putting waist/legs/feet before wrists/hands and the back slot after trinkets.

Orders the same 16 supported slots down the left column, down the right column, then weapons: head, neck, shoulders, back, chest, wrists, hands, waist, legs, feet, rings, trinkets, main hand, off hand. Items without sockets are skipped and sockets within an item retain their socket-index order.

This is a separate ordering correction from #2109 (overflow paging), with no dependency on that PR.

How was it tested?

  • Reviewed against Blizzard's character-sheet slot anchors in PaperDollFrame.xml.
  • Verified the slot list retains exactly the same 16 unique IDs; the only consumer scans them with ipairs and preserves the real equipment slot/socket index on each record.
  • Complete runtime file compiles under Lua 5.1. EUI style gate and git diff --check pass. No locale strings changed.
  • Review found no issues requiring changes: one file, no public API or SavedVariables changes, new events/hooks, allocations, or additional runtime work.
  • A reporter test ZIP combines this ordering correction with Fix character-sheet socket strip overflowing with many gems #2109. In-game confirmation of the new order is pending; no client build is recorded. Earlier paging validation does not establish ordering validation.

Screenshots

Before/after screenshots for this ordering change are missing.

Checklist

  • New settings default OFF (no behavior change without opt-in) - N/A: no new setting; corrects the socket strip's equipment order.
  • Zero cost while disabled: no events registered, no polling, no hooks doing work, no frames built - only reorders existing constants; no added work.
  • Cheap while enabled: event-driven (no polling, no timer-based logic, no per-frame allocations) - same existing scan over 16 slots.
  • No writes onto Blizzard-owned frames (weak-table pattern used); HookScript/hooksecurefunc only, never SetScript on Blizzard frames - N/A: no frame writes or hooks changed.
  • Tested in-game on live; no version gates or pre-Midnight APIs added - in-game ordering verification pending. No APIs or version gates added; Midnight 12.1+ scope retained.

Dancing kitten

@EllesmereGaming
EllesmereGaming merged commit 1a61e4d into EllesmereGaming:main Sep 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants