Join bats: same glass-preference treatment as play_solo
join.bat + join_lan.bat + the btoperator.py generator template now prefer build-glass\Release\btl4.exe when present and set BT_PLATFORM=glass with it -- so MP sessions on a dev checkout get PadRIO (mouse-clickable cockpit buttons: trigger config, MFD banks, radar rails) and the bindings.txt keymap, identical to solo play. Player zips (which ship only build\) fall back to the pod build exactly as before. Verified: 2-node loopback MP smoke on the GLASS build (the documented procedure: A -egg MP.EGG -net 1501 + B -net 1601 + tools/btconsole.py) -- both nodes cross-connected (GameMachineHost 1502/1602), ~150 sim ticks each, no errors. btoperator.py syntax-checked; regenerated bats carry the same guard. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
0e013fd82d
commit
3b17b60c19
+11
-2
@@ -2,14 +2,23 @@
|
||||
rem BT411 -- join 107.202.218.169's game (internet). Seat/mech assigned
|
||||
rem by the operator. Keep this file next to content\ + build\.
|
||||
cd /d %~dp0
|
||||
if not exist "build\Release\btl4.exe" goto badpath
|
||||
rem Prefer the GLASS build when present (dev checkout): PadRIO makes the
|
||||
rem cockpit surround's buttons mouse-clickable (trigger config etc.). The
|
||||
rem pod build renders the same cockpit but clicks are a no-op there; player
|
||||
rem zips ship only build\.
|
||||
set GAME=build\Release\btl4.exe
|
||||
if exist "build-glass\Release\btl4.exe" (
|
||||
set GAME=build-glass\Release\btl4.exe
|
||||
set BT_PLATFORM=glass
|
||||
)
|
||||
if not exist "%GAME%" goto badpath
|
||||
if not exist "content\OPERATOR.EGG" goto badpath
|
||||
set BT_RELAY=107.202.218.169:1500
|
||||
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
|
||||
..\%GAME% -egg OPERATOR.EGG -net 1501
|
||||
echo.
|
||||
echo The game has exited. If you did NOT quit on purpose
|
||||
echo (crash, or it never connected), send the operator the
|
||||
|
||||
+11
-2
@@ -5,14 +5,23 @@ rem unreliable on this network, so it is pinned). If the operator's IP changes,
|
||||
rem update the address below (find it on the operator PC with `ipconfig`).
|
||||
rem Joining over the INTERNET? Use join.bat instead.
|
||||
cd /d %~dp0
|
||||
if not exist "build\Release\btl4.exe" goto badpath
|
||||
rem Prefer the GLASS build when present (dev checkout): PadRIO makes the
|
||||
rem cockpit surround's buttons mouse-clickable (trigger config etc.). The
|
||||
rem pod build renders the same cockpit but clicks are a no-op there; player
|
||||
rem zips ship only build\.
|
||||
set GAME=build\Release\btl4.exe
|
||||
if exist "build-glass\Release\btl4.exe" (
|
||||
set GAME=build-glass\Release\btl4.exe
|
||||
set BT_PLATFORM=glass
|
||||
)
|
||||
if not exist "%GAME%" goto badpath
|
||||
if not exist "content\OPERATOR.EGG" goto badpath
|
||||
set BT_RELAY=10.0.0.46:1500
|
||||
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
|
||||
..\%GAME% -egg OPERATOR.EGG -net 1501
|
||||
echo.
|
||||
echo The game has exited. If you did NOT quit on purpose
|
||||
echo (crash, or it never connected), send the operator the
|
||||
|
||||
+12
-4
@@ -786,7 +786,15 @@ class Operator(QMainWindow):
|
||||
def guarded(header, sets, run, tail):
|
||||
return ("@echo off\n" + header +
|
||||
"cd /d %~dp0\n"
|
||||
"if not exist \"build\\Release\\btl4.exe\" goto badpath\n"
|
||||
# Prefer the GLASS build when present (dev checkout): PadRIO
|
||||
# makes the cockpit buttons mouse-clickable; the pod build's
|
||||
# clicks are a no-op. Player zips ship only build\\.
|
||||
"set GAME=build\\Release\\btl4.exe\n"
|
||||
"if exist \"build-glass\\Release\\btl4.exe\" (\n"
|
||||
" set GAME=build-glass\\Release\\btl4.exe\n"
|
||||
" set BT_PLATFORM=glass\n"
|
||||
")\n"
|
||||
"if not exist \"%GAME%\" goto badpath\n"
|
||||
"if not exist \"content\\" + egg_name +
|
||||
"\" goto badpath\n" +
|
||||
sets +
|
||||
@@ -826,7 +834,7 @@ class Operator(QMainWindow):
|
||||
"set BT_RELAY=%s:%d\nset BT_LOG=join.log\n"
|
||||
"set BT_START_INSIDE=1\nset BT_DEV_GAUGES=1\n"
|
||||
% (host, self.f_port.value()),
|
||||
"..\\build\\Release\\btl4.exe -egg %s -net 1501\n" % egg_name,
|
||||
"..\\%GAME% -egg %s -net 1501\n" % egg_name,
|
||||
net_tail))
|
||||
lan_ip = _detect_lan_ip()
|
||||
lan_relay = ("%s:%d" % (lan_ip, self.f_port.value())) if lan_ip else "auto"
|
||||
@@ -843,7 +851,7 @@ class Operator(QMainWindow):
|
||||
"rem Joining over the INTERNET? Use join.bat instead.\n",
|
||||
"set BT_RELAY=%s\nset BT_LOG=join.log\n"
|
||||
"set BT_START_INSIDE=1\nset BT_DEV_GAUGES=1\n" % lan_relay,
|
||||
"..\\build\\Release\\btl4.exe -egg %s -net 1501\n" % egg_name,
|
||||
"..\\%GAME% -egg %s -net 1501\n" % egg_name,
|
||||
net_tail))
|
||||
with open(os.path.join(out_dir, "play_solo.bat"), "w",
|
||||
newline="\r\n") as f:
|
||||
@@ -854,7 +862,7 @@ class Operator(QMainWindow):
|
||||
"(ARENA2/DBASE/FOGDAY/...).\n",
|
||||
"set BT_START_INSIDE=1\nset BT_DEV_GAUGES=1\n"
|
||||
"set BT_LOG=join.log\n",
|
||||
"..\\build\\Release\\btl4.exe -egg ARENA1.EGG\n",
|
||||
"..\\%GAME% -egg ARENA1.EGG\n",
|
||||
"echo.\necho The game has exited. If it closed unexpectedly,\n"
|
||||
"echo send the operator content\\join.log.\npause\n"))
|
||||
self.log.appendPlainText(
|
||||
|
||||
Reference in New Issue
Block a user