diff --git a/engine/MUNGA_L4/L4CTRL.cpp b/engine/MUNGA_L4/L4CTRL.cpp index 491f82e..b5ea06d 100644 --- a/engine/MUNGA_L4/L4CTRL.cpp +++ b/engine/MUNGA_L4/L4CTRL.cpp @@ -2631,36 +2631,14 @@ void //---------------------------------------- buttonActivateModeMask[rio_event.Data.Unit] = mode_mask; - // THE ENG-PAGE EJECT KEY [T3 PORT CONVENIENCE -- a marked DEVIATION, - // #118]: side keys 0x0B/0x23/0x03 are the eng-page EJECT position - // (engEject lamp 0x85 = kBTEngBankTop-4). IN THE BINARY these soft - // keys NEVER pilot-eject: every page routes them to a real authored - // function (weapon pages: EjectAmmo 0xB; myomer pages: seek toggle 9; - // the streamed .CTL dump has no 0x200000 records), and the flashing - // engEject lamp is the INVITE -- the 1995 press was the pilot KEYPAD - // / PANIC key beside it. The pod eject chain itself was LIVE in 4.10 - // (master perf FUN_004a9b5c+0x10 evaluates per frame; an earlier - // "unfinished" note here was wrong). This hook adds the glass-layer - // convenience the operator asked for: while PANIC is armed AND that - // bank shows an ENG page, the flashing key ALSO forwards as a - // pilot-keypad press. Runs in the drain (game thread -- mode_mask - // in hand; a first cut queried the mode manager from the window - // thread and crashed on the unbound TU global). - { - const int a = rio_event.Data.Unit; - unsigned engBits = - (a == 0x0B) ? 0x001Eu : // bank 1: eng modes aux 1-4 - (a == 0x23) ? 0x03C0u : // bank 2: eng modes aux 5-8 - (a == 0x03) ? 0x7800u : 0u; // bank 3: eng modes aux 9-12 - if (engBits != 0 - && ((unsigned)mode_mask & 0x200000u) != 0 - && ((unsigned)mode_mask & engBits) != 0) - { - ControlsKey eject_key = '0'; - Check(&keyboardGroup[KeyboardPilot]); - keyboardGroup[KeyboardPilot].ForceUpdate(&eject_key, mode_mask); - } - } + // (NO eng-page eject-key hook: REMOVED 2026-08-03 for strict binary + // fidelity. The soft keys 0x0B/0x23/0x03 never pilot-eject in the + // binary -- every page routes them to authored functions (weapon eng + // pages: EjectAmmo 0xB -- a hook here HIJACKED the unjam while armed, + // self-destructing a pilot trying to clear a jam). The flashing + // engEject lamp is the INVITE; the authored press is the pilot KEYPAD + // bank / PANIC key, both live on the desktop.) + break; case RIO::ButtonReleasedEvent: