Files
moonwell-client-core/reference/README.md
T
Sam Sung a5cb73a895 CVar reset, cvarlist, saving and console text follow 1.12.1 (#1931)
The console and CVar store differed from 1.12.1 in seven places.

- `cvar_reset` restores the session-start value (`0x63dff0`), `cvar_default` the default; a latched row moves its value, never the device (RestartGx reads only the stage, `0x639ec0`).
- `cvarlist` prints `  "%s" is "%s"` with the default and reset suffixes, cut at 0x100 bytes.
- A staged latched value is saved (SaveConfig takes stage, value, default, `0x63da27`).
- The setting callbacks refuse what 1.12.1's refuse (MaxLights `0x688bd0`, horizonfarclip `0x689250`, ErrorFilter `0x403200` and nine more), printing their lines.
- Console replies go to the log in 1.12.1's words, never to chat.
- The saved account name is the `accountName` CVar (`0x46cdd0`); the old `benilla-config/account` file moves into config.toml once.

Tests pin each against the bytes; a byte audit re-derived every address.

Fixes #1267
Fixes #1268
Fixes #1269
Fixes #1340
Fixes #1643
Fixes #1650
Fixes #1852

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

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 17:20:24 +07:00

36 lines
2.4 KiB
Markdown

# `reference/`: benilla-re's tables, vendored
Byte-for-byte copies of the [benilla-re](https://github.com/samwhosung/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/listing.rs` (the registry's list order, compiled in), `cvars/reference_table.rs` (the CVar table's reference column) |