Gitea #48: add BT_NO_PILOTLIST=1 -- make the operator's comms hypothesis decidable

The operator reports consistently, across two sessions, that the MFD artifacts
began the night the Comm pilot list was enabled (#43) and were never seen before.
Four static theories of mine died -- plane masks (all 7 primitives invert
correctly), L4GraphicLamp (never instantiated, dead code), the sec-port lamps
(wrong plane AND wrong colour, operator confirmed on sight from the decoded art),
vertBar/VertTwoPartBar (clamps every value, sets its cursor per draw).  And no
rig reproduces it: not 2 pilots, not 5 pilots on last night's exact roster, not
autofire + repeated valve moves.

So stop theorising and make the field observation decidable: BT_NO_PILOTLIST=1
makes PilotList::Execute draw nothing, everything else untouched.
  artifacts gone with it / present without => confirmed, and it is the workaround
  artifacts either way                     => not the pilot list

Diagnostic only, default OFF.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0166KTsC7ADm7VXEi1HF1jNg
This commit is contained in:
arcattack
2026-07-25 08:22:08 -05:00
co-authored by Claude Opus 5
parent 81fbfc7eaa
commit cb50a1d491
+32
View File
@@ -454,6 +454,38 @@ void
void
PilotList::Execute()
{
//
// FIELD A/B SWITCH for Gitea #48 (`BT_NO_PILOTLIST=1`). The operator reports
// -- consistently, across two sessions -- that the MFD artifacts began the
// night the Comm pilot list was enabled (#43) and were never seen before it.
// Four static theories of mine died (plane masks, L4GraphicLamp = dead code,
// the sec-port lamps = wrong plane/colour, vertBar = properly clamped), and
// no rig has reproduced the artifact: not 2 pilots, not 5 pilots, not
// autofire + valve moves. So stop theorising and make the operator's own
// hypothesis DECIDABLE in the field: set this and the pilot list draws
// nothing at all, while everything else is untouched.
//
// artifacts GONE with it set, PRESENT without => this widget, confirmed,
// and this is the workaround
// artifacts appear EITHER WAY => not the pilot list; the
// correlation was timing
//
// Diagnostic only, default OFF -- nothing changes unless the gate is set.
//
{
static int s_off = -1;
if (s_off < 0)
{
const char *e = getenv("BT_NO_PILOTLIST");
s_off = (e != NULL && *e != '0') ? 1 : 0;
if (s_off)
DEBUG_STREAM << "[score] BT_NO_PILOTLIST=1 -- the Comm pilot "
"list is DISABLED (Gitea #48 A/B)\n" << std::flush;
}
if (s_off)
return;
}
void *local = BTResolveRosterPilot(0); // slot-0 (local) pilot gates the body
{
static int s_pl = 0;