Comparing my own bag with camelot's, side by side and pixel by pixel, named
what was wrong.
The panel let the world through. Camelot's interior is (16,14,12) and opaque:
the gaps between slots went blue on mine. The colour is now the measured one,
at full opacity.
The title and the bag icon were missing. The metal nine-slice sat in OVERLAY,
where the modern client can afford it because its portrait and title live in
child frames at high level; 3.3.5 keeps them as plain regions of the frame,
in BACKGROUND and ARTWORK, so the metal covered both. The nine-slice moves to
BORDER.
Every slot in camelot wears a frame, full or empty, dark grey: edges between
25 and 49, corners near 100, which is WhiteIconFrame at a tint of 0.39. Mine
showed it white and only on full slots. It is now on every slot at that tint,
and the quality colour takes over only from uncommon up -- the common items
of the capture keep the grey.
Both captures are kept in docs/reference/.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The bag windows take the modern panel: the flat background and the metal
nine-slice border of HeldBagLayout, the portrait in the ring of the top left
corner, the title centred in the bar, and item slots on bags-item-slot64.
ForeverUI.SetPanelArt builds that panel and is written to serve every panel
still to come.
The search box and the sort button sit where the reference puts them, on the
backpack alone: the box 96 x 18 at (42, -37), the button 28 x 26 at (-9, -34).
Neither of the two things they call exists in 3.3.5, so both are written here:
- the search compares the typed text with the name, the type and the subtype
of each item, and veils what does not match with the same black 80% overlay
the reference uses;
- the sort merges partial stacks, then orders the items by the game's own
category order (GetAuctionItemClasses), quality, name and stack size, one
move every tenth of a second because each swap must be confirmed before the
next.
tools/ajouter_feuilles.py brings a sheet into the workspace with its preview
and regenerates the atlas table; seven sheets came in this way. Previews are
now exported with the alpha channel, without which they cannot be judged.
docs/AMELIORATIONS.md lists what departs from the reference here, the sort
order first: it is decided inside the client and cannot be read.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The addon and the art it needs, read from a modern client and served to
3.3.5 through texture coordinates, since that client has no atlas.
What is in place: player frame with its states, death knight runes, target
frame and its classification rings, cast bar, action bar with its page block
and end caps, micro menu, bags bar, experience and reputation bars. Every
piece registers itself as a movable system.
This folder is the workspace. The addon in a client and the art in patch-Z
are copies tools/deployer.py makes, and what sits under Interface\ForeverUI
in the patch is exactly what data/art holds -- the deployer removes from the
archive anything this folder no longer carries. Each .blp comes with the .png
that shows what it holds.
docs/AMELIORATIONS.md lists what is known to be improvable: where the
reproduction departs from the reference and why, what the 2010 client cannot
do, and the debts left in the tooling.
The repository README also gains the row for mod-limit-break, which was
written earlier and had not been committed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>