https://gitlab.synchro.net/main/sbbs/-/commit/5c38035bb99b2832e2a85b5a
Added Files:
exec/load/game_lobby.js xtrn/syncduke/controls.msg get-binary.js lobby.js lobby.msg syncduke_lib.js
Modified Files:
src/doors/syncduke/Game/src/game.c menues.c src/doors/syncduke/syncduke.h syncduke_config.c syncduke_door.c syncduke_game.c syncduke_input.c syncduke_net.c src/doors/syncduke/tests/test_keymap.c xtrn/syncduke/.gitignore install-xtrn.ini syncduke.example.ini
Log Message:
syncduke: LAN co-op lobby, chat-sync + alias fixes, door config
The v1 co-op feature set on top of the UDP mmulti transport:
- Lobby (xtrn/syncduke/lobby.js over the shared exec/load/game_lobby.js):
Create/Join a 2-player LAN game, play single-player, or view controls. It
spawns the native door directly (-s socket, no drop file), so it registers
as a JS module (?lobby), not a DOOR32 native. install-xtrn wires it plus
get-binary.js (pre-exec, required) so the door never registers without a
runnable executable.
- Door net args (-netrole/-netport/-netpeer) parsed and stripped before the
engine's command-line parser; syncduke.ini [net] (advertise, port range,
stale) and [video] (sixel_max_width, use_cell_size) knobs.
- Chat OOS fix: typemode() built the message in a local buffer but sent the
stale global tempbuf, corrupting the move FIFO -> "OUT OF SYNC". Send the
built text.
- Alias fix: seed the player name from the door's -name (the BBS alias)
instead of the engine default "XDUKE".
- Controls: SyncDOOM-style action layer (Space=fire, WASD move/strafe, arrows
turn) gated on gameplay so menus and Talk get literal keys.
- Cell-size probe (ESC[16t) for canvas sizing on non-SyncTERM terminals;
main-menu version line.
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net