9f683d74cc
Spell packets and cast state went wrong: - A start or go with no record, or a non-unit's start, drew a cast. - An enemy casting at you never became your target. - Cooldown packets for other guids were dropped. - Esc and move cancels reaped the wrong spell. - Timers freed the cast slot. - Spell state outlived a relog. - Openers were scanned by id. The reference: - Both handlers exit first (`0x6e7876`, `0x6e7cd7`). - A start aimed at you selects its caster (`0x6e799c`). - Only the pet's guid routes to the pet (`0x6e9696`). - The cancel reaps the record's spell (`0x6e4a8e`). - No timer frees the slot; an inventory refusal cancels its item's cast (`0x5e3ab3`). - World entry zeroes the spell state (`0x6e7150`). - Openers keep the server's order (`0x5f83d0`). Hold stops are now keyed by spell (`0x614167`). Each fact is tested against its address. Fixes #2162 Fixes #1302 Fixes #1292 Fixes #1301 Fixes #2163 Fixes #2025 Fixes #1327 Fixes #293 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>