diff --git a/engine/MUNGA_L4/L4PADRIO.cpp b/engine/MUNGA_L4/L4PADRIO.cpp index 59379f3..5fe5ac0 100644 --- a/engine/MUNGA_L4/L4PADRIO.cpp +++ b/engine/MUNGA_L4/L4PADRIO.cpp @@ -466,21 +466,20 @@ void << (pressed ? "HELD" : "released") << "\n" << std::flush; } - // 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. 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); + // PANIC (0x3D) -> pilot-keypad key. The binary's ONLY pilot-eject input + // is keyboardGroup[KeyboardPilot].Add(mode 0x200000, mech, msg 0x19) + // (FUN_004d266c; exhaustive scan: no other 0x200000 consumer, and the + // streamed .CTL tables carry NO 0x200000 records either -- the MFD soft + // keys keep their authored per-page functions even while armed, so they + // must NEVER route here; two field-caught regressions (DISPLAY, then the + // weapon ammo-eject soft key 0x0B) came from over-routing them). The + // guarded PANIC key has no button-space consumer anywhere in the image, + // so on the pod it reported through the pilot keypad matrix -- this is + // that wire. The flashing engEject soft-key LAMP (0x85 alarm code) is + // the INVITE indicator; the press that ejects is panic / any pilot- + // keypad key while armed. + if (address == 0x3D && pressed) + EmitKeypad(LBE4ControlsManager::KeyboardPilot, 0); RIOEvent event; event.Type = pressed ? ButtonPressedEvent : ButtonReleasedEvent;