Files
benilla-octo/crates/benilla-ui
gromandClaude Opus 5 d2414d9f50 stable: the realm sells four pet slots, and our window drew two
Found by the `StableSlotPrices.dbc` golden: the table has four rows where 1.12
had two, and `NUM_STABLE_SLOTS` was 3 (the current pet plus two). Three
independent sources in the install agree on four, so this is not a guess:

- `StableSlotPrices.dbc` ships 4 rows — 500c, 5g, 250g, and a fourth at one
  copper — against 1.12's two.
- the realm's own `PetStable.lua` (patch-4) declares `NUM_PET_STABLE_SLOTS = 4`.
- the realm's `WoW.exe` caps the purchase at four, and `0x4cb0bf` reads straight
  across: `cmp $0x4,%eax; je refuse` on the bought count, then `inc %eax` and
  `cmp 0xc0d728,%eax; jg refuse` against the price table's max id — which is
  exactly `num_stable_slots != NUM_STABLE_SLOTS - 1 && next_slot_cost != 0`.

So the window drew two slots the server would happily sell, and
`GetStablePetInfo(3)`/`(4)` answered nothing: the last two buttons were dead.
`NUM_STABLE_SLOTS` is 5 now, the gate's comment cites the realm's binary rather
than 1.12's 2, and the test fixture helper takes however many leading slots a
case cares about so the existing three-slot fixtures still read.

Also five goldens re-recorded, two of them findings:

- **The spam filter is one line now.** patch-4 ships a 93-byte
  `SpamMessages.dbc` of one row where `patch.MPQ`'s 2161 bytes held 28, and the
  chain takes the whole winning file rather than merging ids — so Blizzard's 28
  gold-seller patterns are gone and what is left matches a rival server's
  address, whitespace-tolerant between every letter.

- **`md5translate.trs` stopped hashing.** 9794 rows against 8401, and an Azeroth
  tile now resolves to the readable path `Azeroth\map32_48.blp` rather than
  `ea283abc0bf9637c3fad5e840a65b38b.blp`. The realm ships the tile at that path
  in patch-4; 1.12's hashed copy is still in `texture.MPQ` at the same 33940
  bytes, so only the table moved and the lookup still has one job.

- ItemSet 172 -> 363 rows, and Defias Leather (161) gained a sixth item, 81007,
  one of the realm's own. Every one of 1.12's 172 sets also gained a name in
  five more locales — the same five-locale fill the realm gave `EmotesText`.
- NPCSounds 156 -> 247, purely additive; the one pre-existing row patch-4
  touched is 90, which gained two kits.

benilla-formats: 21 -> 16 failures. `cargo fmt` and
`clippy -p benilla-formats -p benilla-ui -p benilla-app --all-targets` clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn
2026-10-31 19:36:30 -06:00
..