Panel: the vRIO layout + coloration, plasma flip fix, button-trap guard
Per Cyd: the on-screen panel now mirrors vRIO (C:\VWE\vrio -- CockpitLayout.cs
+ PanelCanvas.cs, itself the RIOJoy profile-editor layout from the original
Win32 RIO mockup): five 4x2 MFD clusters (addresses descending), four 1x8
board columns (Throttle/Secondary/Screen/Joystick), the two 4x4 hex keypads
(0x50/0x60 -- cells emit real keypad KeyEvents: internal=pilot unit, external=
operator unit), physical names (Panic/Main/Hat*/Pinky...), vRIO colors: red
lamp cells + yellow Secondary/Screen + neutral-blue keypads, flash half-
periods 500/250/125ms, right-click latch (gold outline). 104 controls.
PlasmaWindow: the gauge renderer writes the 128x32 buffer TOP-DOWN -- the
bottom-up flip rendered the marquee upside down (user-reported); copy straight.
Button-trap guard (the e2c21c4 pattern): the authentic base
ConfigureMappableMessageHandler FAIL trap is abort() under DEBUGOFF -- any
aux/zoom button without its L4 override reconstructed KILLED the game on
press. Default now: loud [FAIL] log + ignore; BT_BUTTON_TRAP=1 restores the
hard trap. Verified live: synthetic click on a Secondary cell -> 2 [FAIL]
lines (press+release through panel->PadRIO->ProcessRIOEvent->streamed
mapping), game survives and keeps ticking.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -441,7 +441,21 @@ void
|
||||
{
|
||||
DEBUG_STREAM << "[FAIL] Unhandled button mapping (base ConfigureMappableMessageHandler)"
|
||||
<< std::endl;
|
||||
Fail("Unhandled button mapping!\n"); // MECHMPPR.CPP:0x7a
|
||||
//
|
||||
// Tester guard (the e2c21c4 '&'-gate pattern): under DEBUGOFF Fail()
|
||||
// is abort() -- ANY aux/zoom button whose L4 override is not yet
|
||||
// reconstructed KILLED the game on press, and the glass panel / PAD
|
||||
// bindings make every button one click away. Default: the loud log
|
||||
// line above + ignore. BT_BUTTON_TRAP=1 restores the authentic hard
|
||||
// trap (the binary's own base body: push "Unhandled button mapping!"
|
||||
// + call Fail).
|
||||
//
|
||||
static const int s_trap =
|
||||
(getenv("BT_BUTTON_TRAP") != 0 && *getenv("BT_BUTTON_TRAP") != '0');
|
||||
if (s_trap)
|
||||
{
|
||||
Fail("Unhandled button mapping!\n"); // MECHMPPR.CPP:0x7a
|
||||
}
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Reference in New Issue
Block a user