fix #213: complete suicide and framerate presentation

Translate suicide response 0x004A as retail's successful self-kill notice. Port /framerate onto the authored SmartBox FPS element with live two-decimal FPS and DEG values, keep diagnostic window chrome independent, and synchronize command-driven settings without discarding panel drafts.

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-13 15:50:47 +02:00
parent 9ea579bdd0
commit 43f7c7807c
17 changed files with 729 additions and 39 deletions

View file

@ -48,7 +48,7 @@ Copy this block when adding a new issue:
## #213 — Retail client commands were sent to ACE as chat text
**Status:** IN-PROGRESS — full named-retail command-family port complete 2026-07-13, pending live gate
**Status:** IN-PROGRESS — command-family gate passed except two corrective fixes, pending re-gate
**Severity:** MEDIUM
**Component:** retained UI / chat commands / net
@ -74,6 +74,15 @@ dialog, and unknown `/` commands still publish `SendServerCommandCmd` in
canonical `@` form so ACE administrator commands continue to work. Both chat
backends use the same router.
**Corrective pass (2026-07-13):** The first connected gate passed all other
representative commands and exposed two presentation gaps. Suicide success
arrives as WeenieError `0x004A`; it now resolves to retail's informational
"Ack! You killed yourself!" instead of the raw numeric fallback. `/framerate`
now mounts and toggles SmartBox LayoutDesc `0x2100000F` element `0x10000047`,
showing the live `FPS` and `DEG` values with the authored font and two-decimal
format. `/framrate` remains unknown because retail registers no misspelled
alias.
**Research:**
`docs/research/2026-07-13-retail-client-command-routing-pseudocode.md`;
`docs/research/2026-07-13-retail-client-command-families-pseudocode.md`;
@ -85,7 +94,9 @@ backends use the same router.
server-backed commands execute without appearing as speech: `/loc`,
`/framerate`, `/saveui test`, `/loadui test`, `/age`, `/friends`, `/afk on`,
and `/marketplace`. `/ls now` shows local usage and sends nothing. An ACE
command such as `/ci 629 1` still works.
command such as `/ci 629 1` still works. `/die` ends with the retail success
text rather than a raw error code, and exact `/framerate` toggles the two-line
in-world SmartBox readout.
---