• src/doors/syncrpg/README.md src/doors/syncrpg/door/help_term.cpp input

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thu Jul 23 23:03:46 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d4b4d3213194318deab72fd4
    Modified Files:
    src/doors/syncrpg/README.md src/doors/syncrpg/door/help_term.cpp input_term.cpp syncrpg.cpp ui_term.cpp video_term.cpp video_term.h xtrn/yumenikki/install-xtrn.ini syncrpg.example.ini
    Log Message:
    syncrpg: sandbox engine config off XDG; add game-resolution control

    Config sandboxing:

    - Pass EasyRPG --config-path and --log-file, pointed at a door-owned
    directory (the per-user --save-path, else CWD), so the engine never
    reads or writes the global per-OS-user config under ~/.config/EasyRPG/
    or its log under ~/.local/state/ -- one set of files every caller would
    share. The boot-time config READ alone creates that dir, so the
    redirect is needed even though the door already blocks the F1 settings
    UI that would write it. The CWD fallback must be absolute: EasyRPG's
    MakeCanonical() drops "." components, silently re-enabling the XDG
    fallback, so it is resolved with FULLPATH().

    Game resolution -- Original 320x240, Widescreen 416x240, or Ultrawide
    560x240 (the latter two EasyRPG's experimental fake-resolution modes):

    - Sysop default from syncrpg.ini [video] resolution, passed to the engine
    as --game-resolution.
    - Player F4 cycles it live (video_term_cycle_resolution), a no-op for a
    game that pins its own resolution.
    - The F4 choice persists per-user, written as [Video] GameResolution to
    that caller's own config.ini, so boot precedence is saved-choice >
    sysop default > engine default.
    - Ctrl-S shows the current resolution via termgfx_termio_set_stats_extra.
    - The display erases once per change (termgfx) so a shrink leaves no
    stale pixels.

    Other:

    - Keyboard-only: termgfx_termio_set_mouse(0), so a hovering mouse's motion
    no longer resets the idle clock -- the inactivity timeout now fires at
    the opening menu regardless of the mouse.
    - Help overlay: list F4; move the build-stamp to its own centered row (it
    overlapped the prompt at 320px wide); drop "any key to close".
    - README, the syncrpg.ini template, and install-xtrn.ini updated to match.

    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

    ---
    � Synchronet � Vertrauen � Home of Synchronet � [vert/cvs/bbs].synchro.net