• docs/superpowers/specs/2026-07-17-syncscumm-m3-input-design.md

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Saturday, July 18, 2026 03:02:49
    https://gitlab.synchro.net/main/sbbs/-/commit/e3df945410f392ae2268c9ed
    Added Files:
    docs/superpowers/specs/2026-07-17-syncscumm-m3-input-design.md
    Log Message:
    syncscumm: design M3, keyboard and mouse input

    Design for making a ScummVM adventure playable over the terminal --
    Beneath a Steel Sky first. Today the backend's pollEvent() only ever
    emits EVENT_QUIT, so no key or pointer input reaches the engine.

    The cursor compositor already exists (built in M2 for the GUI overlay),
    so M3 is purely input plumbing: turn terminal input into Common::Events
    and call warpMouse() so the existing compositor draws the pointer.

    Mouse is absolute point-and-click, modelled on syncconquer: SGR pixel
    mouse (DEC 1016) with an automatic cell (DEC 1006) fallback that the
    terminal selects by what it reports back. Per the user's decision, the
    mouse handshake is extracted into a shared termgfx/mouse module first
    and syncconquer refactored onto it, before syncscumm consumes it.
    Keyboard reuses termgfx's key-mode negotiator, mapping decoded keys to
    ScummVM KeyState.

    Also records the resolved hotkey conflict (drop the door +/- volume key,
    pass it to the engine, whose GMM Options dialog has the volume sliders)
    and the decision to defer the sixel quantizer-stability gate out of M3.

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