403f999892
What differed from 1.12.1: - **Ticket results** show their lines: create and update codes 1, 3 and 5, a fetch status of 0 and a failed delete (`0x5e4432`, `0x5e44ff`). Update text is cut at 1999 bytes (`0x5efacd`). - **UPDATE_TICKET** clamps a negative age to 0 and passes the client's NaN and denormal bits for the no-ticket answer. Arguments the client fills from stack residue are a `Deviation:`. - **Ticket status** 2 sends the no-ticket answer; status 3 fires GMSURVEY_DISPLAY (`0x5e78f0`). - **Casting** reads the cursor first: a held spell goes through pickup, and anything else is cleared (`0x4b3310`). - **Hover:** Disable fires OnLeave first, Enable fires OnEnter after (`0x779160`). - **Gossip:** leaving the world resets the gossip lists (`0x4e1f60`). - **Nameplates:** a name flashes red for 5 seconds on damage (`0x7cba77`). Each fix has a test. Fixes #2462 Fixes #2472 Fixes #2476 Fixes #2478 Fixes #2481 Fixes #2484 Fixes #2536 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>