Files
BT411/players/play_solo.bat
T
arcattackandClaude Opus 4.8 41e899a9d7 Issue #41: launch forensics in the player bats -- exit code + never-started detection
David's failures leave a 0-byte (or absent) join.log -- the exe can't
testify about a death before WinMain.  The bats now bracket it from
OUTSIDE: launch_report.txt records the launch timestamp, the exe's
EXIT CODE (fingerprints the failure class: 0xC0000135 DLL-not-found,
0xC0000005 AV, AV-kill signatures, our clean exits), whether join.log
was ever created (never-created = blocked before our first
instruction), and its size.  Verified with a synthetic -1073741819
exit.  The 'exited' message now asks players to send BOTH files.

With this + the 507 first-breath line + the crash self-report, every
failure mode now leaves evidence somewhere: bat report (pre-WinMain),
first-breath (WinMain reached), [crash] stack (anything after).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 10:02:51 -05:00

50 lines
2.1 KiB
Batchfile

@echo off
rem BT411 -- single-player play. Opens the MISSION MENU: pick your mech
rem (all 18), map, experience level, colours, weather, mission length and
rem more, then launch. SOLO MISSION = timed with scoring; RAW SOLO =
rem endless practice. The menu returns after each mission.
cd /d %~dp0
rem ONE unified build (2026-07-21): the exe carries every layer; the GLASS
rem platform env arms the desktop cockpit (clickable MFD buttons, trigger
rem config, bindings.txt keymap).
set BT_PLATFORM=glass
if not exist "build\Release\btl4.exe" goto badpath
if not exist "content\OPERATOR.EGG" goto badpath
set BT_START_INSIDE=1
set BT_DEV_GAUGES=1
rem one fresh log per bat run; the menu->game relaunch chain APPENDS
rem so every generation's lines survive (0-byte logs = killed pre-start)
if exist content\join.log del content\join.log
set BT_LOG=join.log
set BT_LOG_APPEND=1
set BT_FE_SOLO=1
cd content
rem LAUNCH FORENSICS (#41): bracket the exe from outside -- if it dies
rem before it can write its own log, this report still records when it
rem ran, how it exited, and whether it ever created its log at all.
echo [%DATE% %TIME%] launching btl4.exe > launch_report.txt
..\build\Release\btl4.exe
set BT_EXITCODE=%ERRORLEVEL%
echo [%DATE% %TIME%] btl4.exe exited with code %BT_EXITCODE% >> launch_report.txt
if not exist join.log echo join.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
if exist join.log for %%A in (join.log) do echo join.log size: %%~zA bytes >> launch_report.txt
echo.
echo The game has exited. If it closed unexpectedly,
echo send the operator content\join.log.
pause
exit /b
:badpath
echo.
echo ==================================================
echo ERROR: this file is not in the right place.
echo.
echo It must sit in the EXTRACTED game folder, next to
echo the 'content' and 'build' folders.
echo.
echo Fix: right-click the .zip - Extract All, open the
echo extracted folder, and run this file from THERE.
echo (Do NOT run it from inside the zip.)
echo ==================================================
echo.
pause