Files
Sam Sung 93e5042194 Reference at c854c4e; player-field events carry their watch's arguments (#1386)
Re-vendors `reference/` at benilla-re `c854c4e`, which now resolves computed event ids at their fire sites. 97 events gain a producer: the 93 `CHAT_MSG_*` events and the player-field watcher's `"player"` events.

The fires change to match:

- `PLAYER_XP_UPDATE`, `PLAYER_PVP_KILLS_CHANGED` and `PLAYER_PVP_RANK_CHANGED` carry `"player"`, once per changed watch (`0x5de4b0`). A level-up fires twice.
- `UPDATE_EXHAUSTION` fires bare from the rest byte (`0x5de4e0`) and `"player"` from the pool. `UPDATE_FACTION` fires bare from the list, twice on initialize, and `"player"` from the watched index. Everything fires in field order.
- `PLAYER_DAMAGE_DONE_MODS` is produced (`0x5ddbc0`, `0x5ddbe7`, `0x5ddc0e`), and `UNIT_DAMAGE` keeps only its own fields.
- The rank watch covers all of `PLAYER_BYTES_3`, so its deviation goes.
- The shape gate reads the chat fire's shared ten-value list.

Tests: the shape gate, plus feed tests for each watch and its order.

Fixes #237
Fixes #244
Fixes #296

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

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

reference/: benilla-re's tables, vendored

Byte-for-byte copies of the benilla-re tables benilla reads, under their benilla-re names, taken at the commit PIN holds (40 hex digits). benilla-re documents every column (tables/README.md) and rebuilds each table from the client's exe; nothing here is edited by hand, and nothing here is Blizzard content.

The pin moves when a change needs a row benilla-re has after it, and with that change: to a commit on benilla-re's main (the script refuses any other), then the sync, then the tests that read the table. Update: put the new benilla-re commit in PIN, then

scripts/sync-reference.py <benilla-re checkout>            # copy the tables at the PIN
scripts/sync-reference.py <benilla-re checkout> --check    # fail when a copy differs

scripts/gates.sh runs the check when it finds a benilla-re checkout (BENILLA_RE, ../benilla-re beside the repo or beside the main checkout) and skips with a line otherwise; it fails instead where the gates require the install data. cargo xtask vendored <benilla> --strict in benilla-re makes the same comparison from its side. To vendor another table, add its name to TABLES in the script.

file read by
bindings.tsv ui_script/shape_gate.rs, script/tests/widget_surface.rs, script/tests/glue_surface.rs
events.tsv script/glue.rs (the in-game event table, compiled in), ui_script/event_shape_gate.rs
glue_events.tsv script/glue.rs (the glue event table, compiled in), script/tests/glue_surface.rs
event_args.tsv ui_script/event_shape_gate.rs
verb_events.tsv ui_script/verb_event_gate.rs
glue_surface.tsv script/tests/glue_surface.rs, ui_script/glue.rs
lua_globals.tsv script/tests/reference_surface.rs, ui_script/surface_gate.rs, ui_script/layer_tests.rs, ui_script/reference_ui.rs, tests/message_keys.rs, examples/addon_harness.rs, scripts/api-coverage.sh
messages.tsv scripts/gen-message-catalog.py, which writes messages/catalog.rs; the gates check it regenerates byte for byte
chat_types.tsv script/chat_types.rs (its DEFAULTS test)
chat_groups.tsv script/chat_window.rs (its MESSAGE_GROUPS test)
cvars.tsv cvars/reference_table.rs (the CVar table's reference column)