• src/doors/syncconquer/PROVENANCE.md src/doors/syncconquer/vanilla/reda

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Fri Jul 10 23:41:57 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/334b2006e09f9201ac4c2afc
    Modified Files:
    src/doors/syncconquer/PROVENANCE.md src/doors/syncconquer/vanilla/redalert/function.h goptions.cpp menus.cpp version.cpp
    Log Message:
    syncalert: show the door version in the Red Alert menus

    Add SyncAlert_Version_Name() (version.cpp) -- "<ver> <date> synchro.net"
    from SYNCALERT_VERSION (a #define, bump per release) plus the build's git commit date (common/gitinfo.h). It is drawn next to the engine's
    Version_Name() in the main-menu and options footers, so the engine revision
    and edition/expansion markers (E/CS/AM/D) are preserved and the door version sits with them. The git short-hash is left to the engine line -- it is the identical value, so the door line omits it to avoid duplication.

    Placement adapts to the dialog width: the options box is wide enough for one combined line (scenario name, then engine + door version); the narrower main menu puts the door version on its own centered line below the engine version, both centered as two separate prints (a single "%s\r%s" TPF_CENTER print only centers one line).

    Vendored menu edits recorded in PROVENANCE.md (patch 12).

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Jul 12 05:11:38 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/aba585c60b398ba1212259c7
    Modified Files:
    src/doors/syncconquer/PROVENANCE.md src/doors/syncconquer/vanilla/redalert/visudlg.cpp src/doors/syncconquer/vanilla/tiberiandawn/gamedlg.cpp goptions.cpp menus.cpp visudlg.cpp
    Log Message:
    syncconquer: menu-version placement + wider option sliders

    Live-test polish for both titles' terminal menus.

    syncdawn version line (PROVENANCE #26 refined): main-menu footer now
    centers the engine version and the door version as two stacked rows,
    raised one row off the dialog's bottom edge (like Red Alert); the
    options-menu footer is shifted left off the box edge so it clears the
    buttons. menus.cpp / goptions.cpp.

    Wider option sliders for SyncTERM's cell-granular (~16px) mouse -- the
    same fix as the Sound Controls sliders (patches 13/25):

    - syncdawn Scroll Rate slider (tiberiandawn/gamedlg.cpp): 6->8 factor =
    16px = one cell row (PROVENANCE #27). Game Speed left as-is (hittable
    in practice).
    - Visual Controls sliders (Brightness/Color/Contrast/Tint) in BOTH
    redalert/visudlg.cpp and tiberiandawn/visudlg.cpp: the shared slider
    height 5->8 factor = 16px; the 22px inter-slider spacing already leaves
    room (PROVENANCE #28). This also clears a pre-existing visual artifact
    on the RA sliders that the door's software-fill fix had already fixed.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tue Jul 14 21:04:15 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7830701b3722cbb378548619
    Modified Files:
    src/doors/syncconquer/PROVENANCE.md src/doors/syncconquer/vanilla/redalert/display.cpp src/doors/syncconquer/vanilla/tiberiandawn/display.cpp
    Log Message:
    syncconquer: full tactical redraw on scroll (fix staircase/black tearing)

    DisplayClass::Draw_It() scrolls the map by reusing already-drawn pixels -- shifting the replicable block via an overlapping self-blit (HidPage.Blit(HidPage, ...)) or, for a DirectDraw hid page, a SeenBuff.Blit(HidPage, ...) -- then redraws only the newly exposed edge. Neither moves content correctly in the door's plain software framebuffer,
    so any scroll (most visibly the Home/End jump) left staircase remnants of shifted sprites plus black gaps in the 640x400 buffer. It showed the same
    under sixel and JXL -- the framebuffer itself was torn, not the transport.

    Force forced = true as soon as a scroll is detected, so the blit-shift
    branch is skipped and the engine's own full-redraw path (its existing else fallback, already used for full-size scrolls) runs instead. Same class as
    the AllowHardwareBlitFills FillRect no-op. Costs the door nothing -- it re-encodes the whole frame every present regardless. Applied to both
    engines; PROVENANCE patch #35.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

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