Walk-up callsign/mech request: join menu -> relay -> the session egg

The 1995 front-desk conversation, over the internet.  join.bat/
join_lan.bat now open a JOIN-GAME menu (the FE in BT_FE_JOIN trim:
CALLSIGN edit + the 18-mech list + JOIN); the choice relaunches into the
normal join with BT_CALLSIGN/BT_MECH env, rides the relay SEAT_REQUEST
as {callsign NUL mech NUL} (empty payload = roster defaults, wire-
compatible), and the relay validates the mech tag, HOLDS egg delivery
until every pod's console pad is connected, rewrites the egg via
eggmodel (vehicle= + rasterized callsign bitmaps, graceful no-PySide6
fallback) and streams it to all pads -- so every player's egg copy
carries every player's callsign.

The hold is gated on CONSOLE-PAD count, not game-side registration: a
pod HELLOs only after parsing the egg's roster, so a registration gate
deadlocks (hit live in the first run; pods animate in WAITING FOR
MISSION ASSIGNMENT during the hold).

Verified 2-node e2e (env-injected requests): thor/vulture requested over
roster defaults bhk1/ava1 -> relay held 1/2, released at 2/2, rewrote
both seats (relay log), the delivered egg carries vehicle=thor/vulture +
name=VIPER/MONGOOSE, both pods launched and built [cyl] tables for both
requested mechs.  Join-menu layout screenshot-verified; the menu's
click-through relaunch awaits live human verification.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
arcattack
2026-07-22 13:58:51 -05:00
co-authored by Claude Opus 4.8
parent eb618fe9e6
commit fcedc046cf
9 changed files with 239 additions and 25 deletions
+6 -3
View File
@@ -6,15 +6,18 @@ Do NOT run anything from inside the zip. The .bat files must sit next
to the 'content' and 'build' folders.
TO JOIN AN INTERNET GAME: double-click join.bat
(waits for the operator's session if it's not up yet)
TO JOIN A LAN GAME: double-click join_lan.bat (operator's LAN)
-- pick your CALLSIGN and MECH, click JOIN (your choice is sent to
the operator; waits for the session if it's not up yet)
TO JOIN A LAN GAME: double-click join_lan.bat (operator's LAN;
same callsign/mech menu)
SINGLE-PLAYER: double-click play_solo.bat -- opens the
mission menu: pick your mech (all 18), map, experience level,
colours, weather and mission length, then launch
{STEAM}STEAM INTERNET PLAY: double-click play_steam.bat (EXPERIMENTAL --
{STEAM} needs the Steam client running; host or join from the menu)
Your seat and mech are assigned automatically by the operator.
Your seat is assigned automatically; you'll pilot the mech you picked
in the join menu (the operator can override it).
If the game closes unexpectedly, send the operator content\join.log.
AFTER A MULTIPLAYER SESSION: the game writes a small match report,
+4 -1
View File
@@ -13,7 +13,10 @@ set BT_LOG=join.log
set BT_START_INSIDE=1
set BT_DEV_GAUGES=1
cd content
..\build\Release\btl4.exe -egg OPERATOR.EGG -net 1501
rem JOIN-GAME menu (2026-07-22): pick your CALLSIGN + MECH, click JOIN --
rem your choice is sent to the operator and lands in the mission roster.
set BT_FE_JOIN=1
..\build\Release\btl4.exe
echo.
echo The game has exited. If you did NOT quit on purpose
echo (crash, or it never connected), send the operator the
+4 -1
View File
@@ -16,7 +16,10 @@ set BT_LOG=join.log
set BT_START_INSIDE=1
set BT_DEV_GAUGES=1
cd content
..\build\Release\btl4.exe -egg OPERATOR.EGG -net 1501
rem JOIN-GAME menu (2026-07-22): pick your CALLSIGN + MECH, click JOIN --
rem your choice is sent to the operator and lands in the mission roster.
set BT_FE_JOIN=1
..\build\Release\btl4.exe
echo.
echo The game has exited. If you did NOT quit on purpose
echo (crash, or it never connected), send the operator the