ba96e0ccd4
The CVar set path differed from 1.12.1's: values compared case-sensitively, text on a numeric CVar was refused, a read-only CVar still took console and host writes, `ConsoleExec` ran commands a frame late, and console `set` kept the whole line. 1.12.1's InternalSet (`0x63e0b0`) returns for a read-only record (`0x63e0ba`), compares with `SStrCmpI` (`0x63e0ec`) and stores any text, with the record's int and float by `SStrToInt`/`SStrToFloat` (`0x63e127`). `ConsoleExec` runs the line inside the call (`0x515f43`), and `set` tokenizes with `SStrTokenize` (`0x64ae50`). Now there is one set path: the registered default strings, one `SStrToInt`, read-only refusing every writer, CVar commands run inside `ConsoleExec`, and the host copies are gone. Saved values match 1.12.1: a slider at its default writes "1" over "1.0", and hand-edited text reads 0. Fixes #1478 Fixes #1853 Fixes #1278 Fixes #1319 Fixes #1274 Fixes #1640 Fixes #1851 Fixes #1475 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>