Author SHA1 Message Date
CydandClaude Opus 4.8 b14b37b13d document BT_RIO_PROTRUDE in the generated environ.ini
The button-protrusion dial shipped with no player-facing documentation -- it
lived only in the source comment and the KB, so a tester who found the buttons
too long (or wanted them longer) had no way to discover the knob.

Adds a block to the self-documenting default environ.ini, at the end of the
cockpit section beside the other display-shaping options (BT_MFD_SCALE,
BT_RADAR_SCALE, BT_RADAR_POS, BT_COCKPIT_TINT): what it does, that it is a
LONGER bar rather than a wider button (press target and imagery unchanged),
that it touches only the red MFD and yellow map buttons, the 10 default, 0 for
the original look, the 1-200 range, and the gotcha that it takes a NUMBER --
'on' parses to 0 and turns it off.

Verified by generating a fresh environ.ini from this build and reading the
block back as a player would see it.  The loader has no allowlist and refuses
only BT_JOYCONFIG, so the key applies from the file; a real env var still wins
over it, per the file's own contract.

NB the default is only written when environ.ini is ABSENT (and only beside
BTL4.RES), so existing installs keep their file and will not gain this text --
the handout/KB remain the channel for testers who already have one.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-14 13:50:20 -05:00
CydandClaude Opus 4.8 8ae74cd2f1 bigger RIO buttons: the red + yellow lamps clear the glass by +10px
Player request: more of the RIO buttons should protrude from the displays so a
FLASHING lamp is easier to notice.  BTRioBankMetricsFor now adds a flat +10px
to `strip` -- the lamp bar -- AFTER the scale; BT_RIO_PROTRUDE=<px> tunes it
and 0 restores the pre-2026-08-14 geometry.

FLAT, not scaled, deliberately: the ask is on-screen noticeability, and the
surround runs the glass at HALF scale where the strip lands on the 6px floor --
a scaled bonus would give the least help exactly where the lamps are smallest.
The floor above it already trades strict proportionality for legibility on this
field; this is the same trade, sized by the players.

Scope falls out of the geometry -- only `strip` moves, so:
  - RED MFD buttons and YELLOW radar buttons (+ the radar foot row) grow;
  - they grow OUTWARD ONLY (the layout anchors the inboard edge), so
    under-glass depth, button WIDTH and every press target are unchanged --
    this is a LONGER bar, not a fatter face;
  - BLUE flight cells lay out from cellW/cellH and never see it.

Verified [T2] by BT_RIOBANK_LOG A/B + surround screenshots: Heat MFD top button
y 21->11, h 126->136 with its bottom edge FIXED at 147; bank bounds 252->272
tall (all five MFDs), radar 252->272 wide; flight-bank bounds byte-identical;
no negative coordinates on any bank; imagery still wins every pixel it covers.
The exploded glass windows size their client to bank.bounds, so they simply
grow with it.

Relation to #172: the alert RING (BT_ALERT_RING, default off) answered the same
night-16 miss after a "+8px grown-face bloom" was rejected on the bench as "the
button got fat".  This is a different shape -- the lamp keeps its width and
shows more of its own bar -- so the ring stays optional.  Desktop-glass
affordance; the pod's buttons are physical and backlit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-14 13:23:17 -05:00
3 changed files with 74 additions and 0 deletions
+19
View File
@@ -115,6 +115,25 @@ each, so they cover the foot band too, and the hit test takes the first match
what keeps 0x16/0x17/0x1F/0x1E reachable. That class of bug is why the verification below tests
first-hit reachability, not mere presence.
**Protrusion bonus — `BT_RIO_PROTRUDE` (2026-08-14, player request) [T2 receipt+screenshot].**
Players asked for more of the RIO buttons to clear the glass so a FLASHING lamp is easier to
notice. `BTRioBankMetricsFor` now adds a flat **+10px** to `strip` AFTER the scale, so the bar
reaches that much further out on every renderer; `BT_RIO_PROTRUDE=<px>` tunes it (`0` restores
the pre-2026-08-14 geometry). Deliberately FLAT, not scaled: the surround runs the glass at half
scale where the strip sits on the 6px floor — a scaled bonus would help least exactly where the
lamps are smallest — and that floor already trades proportionality for legibility. Because only
`strip` moves, this touches exactly the **red MFD** and **yellow radar** buttons (+ the radar
foot row) and grows them **outward only**: the layout anchors the inboard edge, so under-glass
depth, button WIDTH and the press targets are unchanged. The **blue flight cells** are laid out
from `cellW/cellH` and never see it (receipt: their bank bounds are byte-identical). Verified by
`BT_RIOBANK_LOG` A/B — e.g. Heat MFD top button `y 21→11, h 126→136` with its bottom edge fixed
at 147, bank bounds `252→272` tall, no negative coordinates — plus a surround screenshot pair.
Relation to **#172**: the alert RING (`BT_ALERT_RING`, default off) answered the same night-16
complaint after a *"+8px grown-face bloom"* was rejected on the bench as "the button got fat";
this is a different shape — the lamp keeps its width and simply shows more of its own bar — so
the ring stays optional. Desktop-glass affordance only; the pod's buttons are physical and
backlit and never had this problem.
## Sticky window placement — BT_GLASS_LAYOUT (2026-07-28) [T2 round-trip-verified]
The `BT_GLASS_PANELS` windows self-place in a pod-faithful ring around the main window
+41
View File
@@ -25,6 +25,46 @@ namespace
const int minimumStrip = 6;
const int defaultGap = 4;
//-------------------------------------------------------------------
// PROTRUSION BONUS (2026-08-14, player request). Flat pixels added to
// the lamp strip AFTER the scale, so the visible bar reaches this much
// further out of the glass on EVERY renderer.
//
// WHY FLAT, not scaled: the ask is on-screen noticeability of a
// FLASHING lamp, and the surround runs the glass at half scale, where
// the strip lands on the `minimumStrip` floor (~6px) -- a scaled bonus
// would give the surround half the help exactly where the lamps are
// smallest. The floor above already establishes legibility over strict
// proportionality for this field; this is the same trade, sized by the
// players. It is a DESKTOP-GLASS affordance: the pod's buttons are
// physical and backlit and have never had this problem.
//
// Scope: only the strip -- so only the RED MFD buttons and the YELLOW
// radar buttons/foot row grow, and they grow OUTWARD ONLY (the layout
// anchors the inboard edge; under-glass depth is unchanged). The BLUE
// flight cells are laid out from cellW/cellH and never see this.
//
// Relation to #172: the alert RING (BT_ALERT_RING, default off) was the
// answer to the same night-16 complaint after a "+8px grown-face bloom"
// was rejected on the bench as "the button got fat". This is a
// different shape -- the lamp keeps its width and simply shows more of
// its own bar -- and it is unconditional, so the ring stays optional.
//-------------------------------------------------------------------
const int defaultProtrude = 10;
int ProtrudeBonus()
{
static int cached = -1;
if (cached < 0)
{
const char *e = getenv("BT_RIO_PROTRUDE"); // tune by eye; 0 = pre-2026-08-14
cached = (e != 0) ? atoi(e) : defaultProtrude;
if (cached < 0) cached = 0;
if (cached > 200) cached = 200;
}
return cached;
}
//-------------------------------------------------------------------
// Per-column horizontal nudge for the 4 MFD buttons, left->right, so
// they line up with the (unevenly spaced) DISPLAY / PROGRAM / ...
@@ -111,6 +151,7 @@ void
int strip = Scaled(nativeStrip, shortAxis, nativeShortAxis);
if (strip < minimumStrip) strip = minimumStrip;
strip += ProtrudeBonus(); // player-requested reach (see above)
out->strip = strip;
out->gap = defaultGap;
+14
View File
@@ -394,6 +394,20 @@ static const char *kEnvironIniDefault =
"# Phosphor colour of the mono MFDs, RRGGBB. Default is a green tube.\n"
"#BT_COCKPIT_TINT=21FF42\n"
"\n"
"# How far the lit RIO buttons reach out past the edge of a display, in pixels.\n"
"# The pod's buttons were physical and backlit; on glass they are a thin bar\n"
"# along the display edge, and a FLASHING one is easy to miss. This is how much\n"
"# more of that bar shows -- a LONGER bar, not a wider button: the button keeps\n"
"# its width, the display picture still covers everything it did before, and the\n"
"# whole display stays clickable. Red (MFD) and yellow (map) buttons only; the\n"
"# blue flight block has no glass to hide behind, so it never changes.\n"
"# 10 the default\n"
"# 0 back to the original thin bar\n"
"# 1-200 anything in between\n"
"# Give it a NUMBER -- a word like 'on' counts as 0 and turns it off. In the\n"
"# exploded view (BT_GLASS_PANELS) the windows grow to fit the longer buttons.\n"
"#BT_RIO_PROTRUDE=10\n"
"\n"
"# ---- Display ----------------------------------------------------------------\n"
"\n"
"# The cockpit is fitted into the window at ONE uniform scale, centred, with\n"