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>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user