• src/doors/syncscumm/door/help_term.cpp help_term.hsrc/doors/syncscumm/

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Sat Jul 25 23:10:03 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a11cddf07ac34e7c2a33c51a
    Added Files:
    src/doors/syncscumm/door/help_term.cpp help_term.h
    Modified Files:
    src/doors/syncscumm/door/module.mk syncscumm.cpp video_term.cpp src/doors/termgfx/termgfx_termio.c termgfx_termio.h
    Log Message:
    syncscumm: a key-help card, on Ctrl-K and F1

    This was the only termgfx door with no help of any kind, and the games it
    hosts are the ones that need it most: SCUMM v1/v2 (Maniac Mansion) has no
    menu bar to stumble into, so a caller who wanted OUT had nothing to find.
    The one key that mattered -- the GMM hotkey, which is where Quit lives --
    was announced only to stderr, and a BBS-launched door has its stderr
    discarded, so the single place it was written down was invisible in
    exactly the situation it was needed.

    The card names the menu key the sysop configured (not a hardcoded
    Ctrl-G), the graphics tier and stats keys, and the blunt exit.

    That exit is Ctrl-Q, or Ctrl-C, and it deserves its own note. On a
    terminal in a native key mode -- kitty, or the evdev protocol SyncTERM negotiates, so what a caller here almost always has -- the bare letter is deliberately left alone so it can reach ScummVM's text entry, and only
    the CTRL form quits; only a terminal with neither protocol falls back to
    the raw byte path where the letter itself is reserved. Quitting saves
    nothing on the way out, but ScummVM's autosave is on at its five-minute
    default and the door does not override it, so what is lost is the last
    few minutes rather than the session. Told only "no save", a caller would
    assume the worse of the two, so the card says both and points at the menu
    for a real save.

    A dedicated key, not "any unmapped key" the way syncretro does it:
    syncretro owns its entire binding table, so "unbound" is a fact it knows,
    while this door is a HOST that forwards nearly every key to ScummVM and
    cannot see whether the engine consumed one. Worse, ScummVM's save/load
    dialogs take free text, so a catch-all would fire on every letter of a save-game name. Ctrl-K is what syncconquer chose and is free in SCUMM;
    F1 matches the other doors' muscle memory. NOT Ctrl-H: that is Backspace,
    which SCUMM needs for name entry, and terminals disagree about whether Backspace sends 0x08 or 0x7f.

    The panel is plain positioned ANSI with no box-drawing glyphs (those
    split CP437 vs UTF-8 across SyncTERM and Windows Terminal), the door
    stops presenting frames while it is up so the picture cannot repaint over
    it, and any key takes it down -- a help page you cannot get out of is
    worse than no help page.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)