https://gitlab.synchro.net/main/sbbs/-/commit/71564a02fa7cfd44b359d51b
Modified Files:
src/doors/syncdoom/README.md i_video.c m_menu.c syncdoom.c
Log Message:
syncdoom: gamma correction -- persist it, and reach it with Ctrl-G
F11 cycles Doom's gamma correction and I_SetPalette applies it, but the
setting never survived a session: I_BindVideoVariables() is an empty stub
in the terminal renderer, so usegamma was never bound to the config, and
both the save and load paths skip unbound variables by design. Bind it --
it then rides the existing save-on-exit paths, including the hangup and time-limit exits that bypass I_AtExit.
F11 itself is unreliable over a terminal: host terminals commonly claim it
for their own fullscreen toggle (Windows Terminal does), so it may never
reach the door. Map Ctrl-G to it as well -- "G" for gamma, and 0x07 is the
last free control byte (Ctrl-H/I/J are Backspace/Tab/Enter, which is why
the existing Ctrl-A..F = F1..F6 run stops at F6). Every client path --
legacy bytes, kitty, SyncTERM evdev -- folds Ctrl+letter to its control
byte before map_ascii, so the single mapping covers all of them. F11 keeps working wherever the terminal passes it through.
The in-game F1 controls reference now lists the key, and the README key
table gains a Ctrl-G row.
Also correct a stale claim in the README paragraph being edited: only
cheat codes need typing in UPPERCASE. Save-game names and chat messages do
not -- map_ascii lifts the WASD shadowing whenever menuactive or chat_on
is set, so typed text arrives verbatim.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net