Input: split the V key -- look-behind stays, view toggle moves to F1

'V' was double-bound: the authentic look-behind (held) AND the cockpit/chase
view toggle (edge), so a single press flipped the camera while also looking
behind. Move the view toggle to F1 (unused); V is now look-behind only.

The view toggle is a desktop-only convenience (no RIO equivalent) so it stays
on `focused`, always live -- including under PadRIO. Look-behind keeps the
BT_DEVKEYS `gfocus` gate (a RIO device's binding owns it when engaged).

Dist README/environ.ini corrected to match reality: under L4CONTROLS=PAD the
default keyboard driving is the NumPad (WASD are MFD-bank buttons in the default
bindings.txt), the controller left stick drives, F1/backtick/V-hold are the
always-live desktop keys, and BT_DEVKEYS=1 re-enables the built-in quick keys.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-17 10:47:47 -05:00
co-authored by Claude Opus 4.8
parent 6a302f3aed
commit abeb7727e9
2 changed files with 32 additions and 11 deletions
+11 -6
View File
@@ -2684,17 +2684,22 @@ void
const int xNow = gfocus && (pAsync('X') & dn) ? 1 : 0;
if (xNow && !sPrevX) gBTDrive.allStop = 1; // edge -> one all-stop
sPrevX = xNow;
// V: toggle the view between the authentic COCKPIT eyepoint
// (the pod's only view) and the external chase camera.
static int sPrevV = 0, sViewInside = 0;
const int vNow = focused && (pAsync('V') & dn) ? 1 : 0;
if (vNow && !sPrevV)
// F1: toggle the view between the authentic COCKPIT eyepoint
// (the pod's only view) and the external chase camera. Moved
// off 'V' -- which is the authentic look-behind (held) above --
// so the two no longer collide (pressing V used to also flip
// the camera). Desktop-only convenience with no RIO equivalent:
// stays on `focused` (not the BT_DEVKEYS `gfocus` gate), always
// live even under PadRIO.
static int sPrevViewKey = 0, sViewInside = 0;
const int viewKeyNow = focused && (pAsync(0x70 /*VK_F1*/) & dn) ? 1 : 0;
if (viewKeyNow && !sPrevViewKey)
{
sViewInside = !sViewInside;
extern void BTSetViewInside(int inside);
BTSetViewInside(sViewInside);
}
sPrevV = vNow;
sPrevViewKey = viewKeyNow;
// RETICLE = SCREEN CENTER (task #58 correction, supersedes the
// task #39 "body-mounted view" model): the CAMERA yaws with