feat: gump art reader + backpack container background (#19) #38
No reviewers
Labels
No labels
alpha:wave-0
alpha:wave-1
alpha:wave-2
alpha:wave-3
area:assets
area:combat
area:ecology
area:infra
area:render
area:scripting
area:ui
area:world
enhancement
epic
migration
post-alpha
roadmap
tech-debt
type:bug
type:chore
type:design
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
marco/IsoMmo!38
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/gump-art"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Partially addresses #19 (Phase A + a first Phase B/C pass).
Summary
Real UO gump art, starting with the backpack container background.
GumpMulReaderdecodes legacygumpidx.mul/gumpart.mul(extra=(w<<16)|h; per-row DWORD lookups;(colour, count)RLE; ARGB1555 with transparent runs; no hue). Unit-tested against synthetic bytes (multi-row RLE — transparent run = alpha 0, coloured run = opaque — and null on an empty/absent entry).gumpsextractor command:gumps <client> [out] --range/--idsdumps gumps to PNG (discovery), or--map name=idpacks them. Verified against the real client:0x003Cdecodes to the UO backpack (230×204) — confirmed by eye.gump/container_backpack; the client loadsgump/textures andInventoryPaneldraws the real backpack art behind the grid, falling back to the plain panel when the pack is absent (repo stays shippable).Gumps are pure client presentation — no protocol, no server, no authoritative state.
Scope / honest notes
0x003C) is confirmed and shipped.0x07D0turned out to be a decorative dragon frame, not the paperdoll — excluded. Finding the paperdoll frame + buttons (and a faithful UO layout — UO's paperdoll is a separate window; the backpack shows free-positioned items, not a grid) is the extend step; thegumpsdump command is the tool (dumped PNGs can be inspected to identify ids).How it was tested
GumpMulReaderunit tests (synthetic multi-row RLE + null cases); dump verified against~/Games/UO(0x003C = backpack, correct dimensions, visually the UO backpack). 209 tests green, zero warnings, CSharpier clean.assets.isoarepacked (38 anims).Needs your eyes (GUI)
Open the inventory (I): the backpack should show the real UO backpack art behind the slots (with no pack, the plain panel). Tell me and I'll dump/identify the paperdoll frame + buttons next.
Checklist
just lintclean · [x]just testgreen (209) · [x] whole solution builds, 0 warnings · [x] multi-platform preserved · [x] tests added