Build: the BT412 compile gate -- one tree builds the pod game and the Steam game
option(BT412 ... ON) gates the steamification layer for the merge-back into BT411, so the unified repo serves both fronts: - Default (BT412=ON): pod/dev game + PadRIO / plasma / front end / lobby -- all runtime-gated, so a -egg/-net launch still behaves as 4.11. - Pod-minimal (-DBT412=OFF, build-pod/): compiles OUT L4PADRIO, L4PADBINDINGS, L4KEYLIGHT, L4PLASMASCREEN, L4STEAMTRANSPORT, btl4fe, btl4console, btl4lobby. Seam sites carry #ifdef BT412: L4CTRL.cpp PAD token (log + ignore), L4GREND.cpp L4PLASMA=SCREEN (log + ignore), L4VB16.cpp (inert PadRIO stub -- call sites identical in both flavors), btl4main.cpp (front-end/marshal/lobby blocks out; zero-arg launch = 4.11 behavior). - The NetTransport seam ALWAYS compiles -- it is the wire for both flavors (WinsockNetTransport, verified byte-identical to the pre-seam arcade path). - BT412_STEAM now requires BT412 (configure-time FATAL_ERROR; negative-tested). Verified: OFF -- clean v143 link, solo DEV.EGG mission runs (31 subsystems tick, gait, targeting). ON -- zero-arg launch engages the front-end menu. STEAM -- links clean, ships steam_api.dll. Also: README/context docs for the flavors + the merge-back; corrected the stale Phase 3b DEFERRED note (the single-window cockpit landed 07-16) and the README's leftover 0xBD3 valve-gate claim (it is a damage/explosion hub). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -272,8 +272,10 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||
// platform-profile block, so the DEV keyboard default (below) does not win
|
||||
// (that left the RIO controls inert). An explicit L4CONTROLS still
|
||||
// overrides (e.g. L4CONTROLS=RIO for a real serial board).
|
||||
#ifdef BT412
|
||||
if (getenv("L4MFDSPLIT") != NULL && getenv("L4CONTROLS") == NULL)
|
||||
putenv("L4CONTROLS=PAD");
|
||||
#endif
|
||||
|
||||
int gBTPlatformPod = 0;
|
||||
{
|
||||
@@ -552,7 +554,12 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||
// per mission, and it sidesteps BT's in-process re-init fragility (the
|
||||
// reconstructed gBT* globals hold per-mission entity pointers that a
|
||||
// second in-process mission would trip over). `-egg`/`-net` = single pass.
|
||||
//
|
||||
// BT412=OFF (pod-minimal build): the front end / marshal / lobby are
|
||||
// compiled out -- a zero-arg launch behaves as on BT411 (no menu), and
|
||||
// `-egg`/`-net` runs are identical in both flavors.
|
||||
//=======================================================================//
|
||||
#ifdef BT412
|
||||
extern int BTFrontEnd_Run();
|
||||
extern int BTFrontEnd_LastMissionSeconds();
|
||||
extern int BTFrontEnd_LastLaunchMode();
|
||||
@@ -630,6 +637,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||
<< secs << "s)" << std::endl << std::flush;
|
||||
}
|
||||
}
|
||||
#endif // BT412
|
||||
|
||||
{
|
||||
std::cout << "[boot] opening btl4.res..." << std::endl << std::flush;
|
||||
@@ -677,6 +685,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||
|
||||
Stop_Registering();
|
||||
|
||||
#ifdef BT412
|
||||
//-------------------------------------------------------------------//
|
||||
// LAUNCHER ROLE: if the marshal ended this front-end mission (the
|
||||
// selected time expired), relaunch a fresh instance -- it front-end-modes
|
||||
@@ -714,6 +723,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||
<< std::endl << std::flush;
|
||||
}
|
||||
}
|
||||
#endif // BT412
|
||||
|
||||
return Exit_Code;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user