#118 fix-the-fix: armed eject routes ONLY the invite cells + Panic
Field-caught by the operator within minutes: the blanket MFD key-space routing (0x00-0x2F) made the DISPLAY navigation key eject the mech mid-page-switch while armed. Narrowed to exactly the guarded PANIC button (0x3D) and the three eng-page EJECT INVITE cells (0x0B/0x23/0x03, the addresses the engEject 0x85 alarm lamp flashes on). Navigation is safe while armed; the flashing cell still punches out (re-verified through the click seam: armed -> press 0x0B -> PUNCH-OUT). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
b9430cc5a7
commit
b4b98a64c0
@@ -469,17 +469,17 @@ void
|
||||
// PANIC-ARMED EJECT keys: the binary's ONLY armed press binding is
|
||||
// keyboardGroup[KeyboardPilot].Add(mode 0x200000, mech, msg 0x19 =
|
||||
// EjectPilot) in the RIO mapper ctor (FUN_004d266c) -- an E8+data scan
|
||||
// finds NO other 0x200000 consumer in the image. So on the pod, EVERY
|
||||
// key that ejects while armed (the guarded PANIC key AND the MFD
|
||||
// side-column cells the engEject alarm lamp flashes on -- addresses
|
||||
// 0x0B/0x23/0x03 = kBTEngBankTop-4 per bank) reports through the PILOT
|
||||
// KEYPAD matrix. Mirror that: desktop presses of the MFD key space
|
||||
// (0x00-0x2F: keypads + side columns) and the Panic button ALSO land as
|
||||
// pilot-keypad keys. Outside panic mode the binding is mode-masked dead
|
||||
// (KeyboardPilot has no other active consumer), so normal MFD operation
|
||||
// is untouched; while ARMED, hitting the flashing eject cell -- or any
|
||||
// keypad key, the pod semantic -- punches out.
|
||||
if (pressed && (address <= 0x2F || address == 0x3D))
|
||||
// finds NO other 0x200000 consumer in the image. Desktop mirror: the
|
||||
// guarded PANIC button (0x3D) and the THREE eng-page EJECT INVITE cells
|
||||
// (0x0B/0x23/0x03 = kBTEngBankTop-4 per MFD bank -- the cells the
|
||||
// engEject 0x85 alarm lamp flashes on) also land as pilot-keypad keys.
|
||||
// ONLY those: a first cut routed the whole MFD key space (0x00-0x2F)
|
||||
// and the DISPLAY navigation key self-destructed the operator's mech
|
||||
// mid-page-switch (field-caught 2026-08-03). Outside panic mode the
|
||||
// binding is mode-masked dead, so the invite cells keep their normal
|
||||
// side-column function when not armed.
|
||||
if (pressed && (address == 0x3D
|
||||
|| address == 0x0B || address == 0x23 || address == 0x03))
|
||||
EmitKeypad(LBE4ControlsManager::KeyboardPilot, address & 0xF);
|
||||
|
||||
RIOEvent event;
|
||||
|
||||
Reference in New Issue
Block a user