https://gitlab.synchro.net/main/sbbs/-/commit/61a7cb32ca2a6120501186b6
Modified Files:
src/doors/syncduke/README.md xtrn/syncduke/lobby.js syncduke.example.ini syncduke_lib.js
Log Message:
syncduke: lobby picker for sysop-curated user maps & add-on GRPs
Let players choose what to play. The sysop lists third-party content in syncduke.ini, one [map:<Name>] section per choice:
[map:Roch]
file = maps/Roch.map ; a user map (.map)
[map:Duke It Out In D.C.]
grp = addons/dukedc.grp ; an add-on GRP overlaid on the base
con = addons/dukedc.con ; its CON script, if it ships one
When any are configured, Solo and Create first prompt "what to play"
(stock Duke is always choice #1); with none configured no prompt
appears and stock launches exactly as before. Paths are absolute or
relative to the door dir; the lobby always hands the door absolutes
(it chdir's to the GRP dir at startup).
The choice maps to engine arguments: file -> -map "<path>" (a user map
plays in the engine's usermap slot, so Create skips the level picker
and net games drop /v /l), grp/con -> /g<path> / /x<path> with /g kept
last per the engine's usage. A multiplayer entry carries the choice as
its [map:*] name -- shown in the game listing, and resolved back
through the joiner's own (shared) syncduke.ini so both peers launch
with matching content; a host whose ini lacks the name refuses cleanly
before burning the game's one claim marker.
Solo user maps live-validated (Roch via the picker); multiplayer-with-
usermap and add-on GRPs wired per the engine's documented options but
not yet exercised.
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net