b39d928f6f
The action bar answered and signalled where 1.12.1 does not: - `IsActionInRange` measured distance before the target gates. - `GetActionCooldown` answered enable 1 for slots that reach no cooldown query. - `IsCurrentAction` held item slots against nothing. - The cooldown and usable events fired off a button's own state. Reference: `0x4e56f0` runs `0x6e4440`'s relation and implicit-target gates first. Enable starts 0 (`0x4e6f0d`) and only the query sets it (`0x6e1406`). The cast keeps its item's guid (`0xcecab0`). `BAG_UPDATE_COOLDOWN` comes from `0x4f93d0`'s callers, `ACTIONBAR_UPDATE_USABLE` from `0x4e5c00`'s four, and `SPELL_UPDATE_USABLE` from `0x4b31c0`'s fourteen. Placement signals only 213. Changed: a usable cache refreshes at those producers. The push half runs before the unit snapshots and the events after them, so handlers read this frame's state, after the control edge. Tests pin each answer and the order. Fixes #1528 Fixes #1532 Fixes #1537 Fixes #1596 Fixes #1597 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>