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:
@@ -1,7 +1,9 @@
|
||||
#include "mungal4.h"
|
||||
#pragma hdrstop
|
||||
|
||||
#ifdef BT412
|
||||
#include "l4padrio.h"
|
||||
#endif
|
||||
|
||||
#include "l4ctrl.h"
|
||||
#include "l4keybd.h"
|
||||
@@ -834,6 +836,7 @@ LBE4ControlsManager::LBE4ControlsManager():
|
||||
}
|
||||
else if (strcmpi(temp, "PAD") == 0)
|
||||
{
|
||||
#ifdef BT412
|
||||
//------------------------------------------------------
|
||||
// Cockpit-less play: PadRIO speaks the RIO control
|
||||
// surface from an XInput pad + the PC keyboard, so the
|
||||
@@ -844,6 +847,12 @@ LBE4ControlsManager::LBE4ControlsManager():
|
||||
Register_Object(rioPointer);
|
||||
flags.RIOExists = 1;
|
||||
primaryControlType = LBE4ControlsManager::PrimaryRIO;
|
||||
#else
|
||||
// BT412=OFF (pod-minimal build): PadRIO is compiled out;
|
||||
// the token is ignored and a later token (KEYBOARD) or the
|
||||
// no-device default carries the controls, as on BT411.
|
||||
Tell("L4CONTROLS=PAD ignored: PadRIO not in this build (BT412=OFF)\n");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
while (temp[0] != '\0');
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
#include "l4gauge.h"
|
||||
#include "..\munga\mission.h"
|
||||
#include "l4plasma.h"
|
||||
#ifdef BT412
|
||||
#include "l4plasmascreen.h"
|
||||
#endif
|
||||
#include "..\munga\notation.h"
|
||||
|
||||
// #define LOCAL_TEST
|
||||
@@ -103,8 +105,15 @@ L4GaugeRenderer::L4GaugeRenderer(bool windowed, int *secondaryIndex, int *aux1In
|
||||
//}
|
||||
if (_stricmp(plasma_string, "SCREEN") == 0)
|
||||
{
|
||||
#ifdef BT412
|
||||
Tell("Plasma display created as an on-screen window\n");
|
||||
externalDisplay = new PlasmaScreen();
|
||||
#else
|
||||
// BT412=OFF (pod-minimal build): the desktop PlasmaScreen is
|
||||
// compiled out; no external display (Register below is
|
||||
// NULL-guarded), as on BT411.
|
||||
Tell("L4PLASMA=SCREEN ignored: PlasmaScreen not in this build (BT412=OFF)\n");
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
#include "mungal4.h"
|
||||
#ifdef BT412
|
||||
#include "l4padrio.h" // PadRIO::GetLampState / SetScreenButton (cockpit buttons)
|
||||
#else
|
||||
// BT412=OFF (pod-minimal build): PadRIO is compiled out. This inert stub
|
||||
// keeps every call site below identical in both flavors -- the on-screen
|
||||
// cockpit buttons draw unlit and screen-button presses are ignored.
|
||||
struct PadRIO
|
||||
{
|
||||
static int IsActive() { return 0; }
|
||||
static int GetLampState(int) { return 0; }
|
||||
static void SetScreenButton(int, int) {}
|
||||
};
|
||||
#endif
|
||||
#pragma hdrstop
|
||||
|
||||
#include "l4vb16.h"
|
||||
|
||||
Reference in New Issue
Block a user