• src/doors/syncduke/syncduke_stubs.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tue Jun 30 22:32:03 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/668f41fb2a540e168c059fc8
    Modified Files:
    src/doors/syncduke/syncduke_stubs.c
    Log Message:
    syncduke: prefix the music cache name with the track filename

    The door-side / client cache key was the bare content hash (d_<hash>); make
    it "<trackname>_<hash>" (e.g. STALKER_3f2a8b1c) so the cached OGGs are legible when inspecting a client's SyncTERM cache. The hash still does the work -- stable cross-session and collision-free across GRPs; the name is just for readability. Strip the source extension and neutralise any dots first so termgfx's extension-stripping doesn't eat the hash. SyncDOOM stays hash-only (its music module only gets the lump bytes, not the lump name).

    Co-Authored-By: Claude Opus 4.8 <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 Jun 30 22:32:03 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/42acf099383d7ebe27db5348
    Modified Files:
    src/doors/syncduke/syncduke_stubs.c
    Log Message:
    syncduke: treat 0% music volume as OFF

    SyncDuke's Setup Sound has no separate MUSIC:OFF toggle, so 0% on the music slider is the off switch. At 0%, PlayMusic() now skips the render/encode/upload entirely (no silent transfer) and MUSIC_SetVolume() stops the loop; the most- recent track is remembered so raising the slider back off 0 replays it.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

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