• src/doors/syncdoom/MULTIPLAYER.md README.md dstrings.c i_system.c m_co

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sat Jun 20 14:04:42 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/464e781cad8a71b774bc9c2c
    Modified Files:
    src/doors/syncdoom/MULTIPLAYER.md README.md dstrings.c i_system.c m_config.c m_menu.c net_udp.c syncdoom.c xtrn/syncdoom/README.md lobby.js syncdoom.example.ini syncdoom_lib.js
    Log Message:
    syncdoom: persist options, in-game input-feel sliders, skill select, loopback bind, key/quit fixes

    Door (src/doors/syncdoom):
    - Config persistence: doomgeneric had Save/LoadDefaultCollection #if-ORIGCODE'd
    out, so screen size / messages / detail never saved or loaded. Re-enabled both
    (deps were all live). Skip DEFAULT_KEY entries -- the door's fixed terminal->
    Doom keycodes (>=128) don't survive the config scancode round-trip and were
    corrupting strafe/fire/use to 0. Also call M_SaveDefaults on hangup/time-limit
    exits, not just menu quit.
    - I_Quit now actually exits (its exit() was #if-ORIGCODE'd, so menu quit, hangup,
    and the waiting-room cancel fell through into the game).
    - Waiting-room Q cancel: drain stale lobby type-ahead + scan the whole read so a
    buffered Enter can't auto-launch before Q is seen.
    - In-game Options > Input "feel" sliders (KEY TAP/HOLD/TURN) for the key-up-
    synthesis graces, inline on the Options menu, snap-to-grid stepping, bars
    aligned with SCREEN SIZE. Saved per-user (input.ini in -home, root section);
    [input] ini is the house default; -kp* CLI still wins.
    - -skill plumbed through to doomgeneric (was being eaten by the -s prefix
    matcher, which clobbered the client socket and bounced the player to the lobby).
    - net_udp.c: server binds 127.0.0.1 by default (-bindaddr); off-box play is opt-
    in. Client keeps INADDR_ANY. (File reformatted to house style.)
    - Help screen: git hash lower-left, build date lower-right.
    - Quit prompts: "dos" -> "the BBS".

    Lobby (xtrn/syncdoom):
    - [net] bind (defaults to advertise); skill picker with [net]/[wadset] skill
    default; WAD-set picker fits the real terminal width (name-only fallback);
    dropped em-dash "--" separators from user-facing strings.

    Docs: MULTIPLAYER.md, READMEs, and syncdoom.example.ini updated for the bind default, skill, input-feel, and persistence behavior.

    Co-Authored-By: Claude Opus 4.8 <[email protected]>

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