aa25486d78
Loot went wrong: - Takes, closes and master gives queued, then ran in a fixed order. - The last row closed a frame late. - Auto-loot opened before it swept, read Shift when the loot arrived, and looted over an open window. - `GetNumLootItems` counted taken rows, and a response for an object the client lacked opened a window. The reference: - `LootSlot` is the confirm form (`0x4c2e70`). A row click takes after its `<OnClick>` (`0x4c1867`). `CloseLoot` zeroes only the source (`0x4c1da0`). - `SMSG_LOOT_REMOVED` closes an empty window in the packet (`0x4c1f8d`). - The sweep runs before `LOOT_OPENED` (`0x4c1ed3`, `0x4c2240`). Each interaction stores the byte (`0x5df460`), and `CanLootNow` refuses an open session (`0x5ec1e1`). - A missing object shows `ERR_LOOT_DIDNT_KILL` (`0x5ebb3f`). Each fact is tested against its address, with the stock `LootFrame` for the replacing window. Part of #2202 Fixes #2167 Fixes #2181 Fixes #2180 Fixes #2190 Fixes #1228 Fixes #784 Fixes #2189 Fixes #72 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>