Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b14b37b13d | ||
|
|
8ae74cd2f1 |
@@ -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
|
what keeps 0x16/0x17/0x1F/0x1E reachable. That class of bug is why the verification below tests
|
||||||
first-hit reachability, not mere presence.
|
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]
|
## 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
|
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 minimumStrip = 6;
|
||||||
const int defaultGap = 4;
|
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
|
// Per-column horizontal nudge for the 4 MFD buttons, left->right, so
|
||||||
// they line up with the (unevenly spaced) DISPLAY / PROGRAM / ...
|
// they line up with the (unevenly spaced) DISPLAY / PROGRAM / ...
|
||||||
@@ -111,6 +151,7 @@ void
|
|||||||
|
|
||||||
int strip = Scaled(nativeStrip, shortAxis, nativeShortAxis);
|
int strip = Scaled(nativeStrip, shortAxis, nativeShortAxis);
|
||||||
if (strip < minimumStrip) strip = minimumStrip;
|
if (strip < minimumStrip) strip = minimumStrip;
|
||||||
|
strip += ProtrudeBonus(); // player-requested reach (see above)
|
||||||
|
|
||||||
out->strip = strip;
|
out->strip = strip;
|
||||||
out->gap = defaultGap;
|
out->gap = defaultGap;
|
||||||
|
|||||||
@@ -394,6 +394,20 @@ static const char *kEnvironIniDefault =
|
|||||||
"# Phosphor colour of the mono MFDs, RRGGBB. Default is a green tube.\n"
|
"# Phosphor colour of the mono MFDs, RRGGBB. Default is a green tube.\n"
|
||||||
"#BT_COCKPIT_TINT=21FF42\n"
|
"#BT_COCKPIT_TINT=21FF42\n"
|
||||||
"\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"
|
"# ---- Display ----------------------------------------------------------------\n"
|
||||||
"\n"
|
"\n"
|
||||||
"# The cockpit is fitted into the window at ONE uniform scale, centred, with\n"
|
"# The cockpit is fitted into the window at ONE uniform scale, centred, with\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user