Files
moonwell-client-core/docs
Sam Sung 77cea16e72 Closes run their engine half at the packet and signal at its place (#2779)
A close that a packet handler ran fired at once when its own lane was empty, ahead of earlier packets' events on other lanes. benilla also closed the binder, pet-untrain and talent-wipe confirms itself when you walked away.

Reference: each close core releases, clears its cell and sends in the handler, then signals. The stock OnHide's close verb re-enters it: trade's release re-enters at `0x493365`, so a latched partner gets three CMSG_CANCEL_TRADE. The confirms' latches are never cleared (`0x5dfa21`); StaticPopup.lua hides them.

Changed:
- the engine half of every close runs at the handler, and the signals park behind the lane;
- one shared guard keeps a re-entered close verb off a newer session, replacing auction's own;
- the range-close systems go, and the polls test range at the call.

Tests: quest detail Accept sends its NPC, and the trade cancels and Begin go in order.

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 00:18:47 +07:00
..