Files
moonwell-client-core/docs
Sam Sung eee9d1441c An item record's answer walks its callback list at the packet (#2784)
An item record's answer ran its callbacks from hand-placed hooks. The equip replays ran in the drain, the quest log's refire at the frame's end, and the tooltip rebuilds at the tick, so a replay's send followed later packets' sends. A refused record also replayed every frame.

Reference: `ItemCacheReceive` (`0x55bdb0`) stores the record, then walks one callback list per record, oldest first, filled by each lookup's miss (`0x55ba30`). A refusal calls each callback with found 0 and frees the list (`0x55bea8`, `0x55bed2`).

Changed:
- `Items` keeps that list, registered at each miss and walked at the answer's handler;
- a deferred stretch's calls apply at once and its signals park.

The late callbacks stay named in the `Items` row.

Tests: an equip replay sends before a later packet's send; two parked swaps keep their order; a refused record sends nothing.

Part of #2168.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 05:10:21 +07:00
..