Files
BT411/content/CONTROLS.MAP
T
Joe DiPrimaandClaude Fable 5 aa54655980 #118: the FLASHING eject invite fires -- generator OUT state + pilot keypad
The last hop lands: a destroyed Generator now reaches its OUT display state
(stateAlarm 4 -- enum renamed from the placeholder "GeneratorRecovered";
[T3 inferred link, both endpoints byte-verified: the eject evaluator's
state==4 dead clause @0049fa1c and the authored alarm streams' conditions
4/5 -> gotoEngineering 0x80 + engEject 0x85]). Wired from the one crit
chokepoint (MechSubsystem::ForceCriticalFailure -> BTGeneratorMarkOut
bridge). Verified live: gen kill -> the quad-select columns FLASH
(RIO 0x37 fast-flash) -- the pod's guided "punch out now" trail.

Plus the authentic panel eject input: CONTROLS.MAP binds the desktop
NUMPAD to the pilot keypad (keypad pilot 0-9) -- while armed, any pilot-
keypad key fires the eject (the binary's only armed binding); un-armed
they feed program entry.

The full 1995 eject experience is now live: alarm -> flashing invite trail
-> lit Panic button -> press (Panic / numpad / Backspace) -> punch-out ->
death without honor -> respawn.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 20:11:05 -05:00

195 lines
7.4 KiB
Plaintext

# ==========================================================================
# BT411 CONTROLS.MAP -- desktop input bindings (keyboard + XInput gamepad)
# ==========================================================================
# One binding per line, '#' starts a comment, keywords are case-insensitive.
# Loaded at game start; DELETE THIS FILE to restore these exact defaults
# (the same profile is compiled in). Alternate profile: CONTROLS_NUMPAD.MAP
# (copy it over this file to use it).
#
# key <name> button <addr> [toggle]
# key <name> axis <axis> deflect <n>
# key <name> axis <axis> rate <n-per-second>
# key <name> keypad pilot|external <0-15>
# key <name> pckey <char>
# key <name> action <name>
# pad <button> button <addr> | action <name> | pckey <char> | keypad ...
# padaxis <src> axis <axis> [invert] [deadzone <d>] [rate <n-per-second>]
#
# <addr> RIO button address 0x00-0x47 (hex or decimal):
# 0x00-0x0F aux lower right/left banks 0x10-0x1B secondary panel
# 0x20-0x37 aux upper center/left/right (presets + target hotbox)
# 0x3D Panic 0x3F throttle-head (REVERSE THRUST)
# 0x40 Main trigger 0x41-0x44 hat 0x45 Pinky 0x46 Middle 0x47 Upper
# <axis> Throttle | LeftPedal | RightPedal | Pedals (signed, + = right)
# | JoystickX (torso twist) | JoystickY
# <name> A-Z, D0-D9 (digit row), F1-F12, NumPad0-NumPad9, Up, Down, Left,
# Right, Space, Enter, Shift, Ctrl, Alt, PageUp, PageDown, Home,
# End, Insert, Delete, OemMinus, Oemplus, Oemcomma, OemPeriod,
# OemOpenBrackets, OemCloseBrackets, ...
# <button> A B X Y DPadUp DPadDown DPadLeft DPadRight Start Back
# LeftShoulder RightShoulder LeftThumb RightThumb
# LeftTrigger RightTrigger (as digital, >= 50% pressed)
# <src> LeftStickX LeftStickY RightStickX RightStickY
# LeftTrigger RightTrigger
# action ViewToggle LookBehind AllStop ModeCycle DisplayCycle Valve Flush
# ConfigHold Generator1-4 Reconnect Mfd1Cycle Mfd2Cycle Mfd3Cycle
# pckey sends an authentic 1995 PC-keyboard hotkey (the in-cockpit
# dispatcher): '+'/'-' = target zoom, 'w'..'o' = pilot select,
# 'a','b','c','d','f','g','s','v','x','z' = display presets, ...
#
# 'deflect' holds the axis there while the key is down and springs back on
# release; 'rate' walks the axis by <n> per second and the position sticks
# (the throttle lever). A key bound here is REMOVED from the legacy typed-
# hotkey channel (no double dispatch); unbound keys keep their authentic
# 1995 meaning (see pckey above).
#
# ---- THE KEYBOARD IS THE BUTTON BOARD ------------------------------------
# Mirrors contentindings.txt exactly, so the glass (PadRIO) and desktop
# (btinput) boots feel identical -- the letter and number rows are the MFD
# button banks laid out where they sit on the panel, and flight lives on the
# numpad. G and B are the physical gap between the lower clusters and stay
# unbound. A bound key is REMOVED from the typed 1995 hotkey channel, so
# this board gives those up by design (see pckey above to rebind any back).
# Flight: the numpad. 8/2/4/6 stick, 7/9 pedals, 5 all-stop, 0 trigger;
# Shift/Ctrl walk the throttle lever and it sticks; Alt is reverse thrust.
key NumPad8 axis JoystickY deflect 1
key NumPad2 axis JoystickY deflect -1
key NumPad4 axis JoystickX deflect -1
key NumPad6 axis JoystickX deflect 1
key NumPad7 axis LeftPedal deflect 1
key NumPad9 axis RightPedal deflect 1
key NumPad5 action AllStop
key Shift axis Throttle rate 0.7
key Ctrl axis Throttle rate -0.7
key Alt button 0x3F
# The four mappable fire buttons.
key Space button 0x40
key NumPad0 button 0x40
key NumPad1 button 0x45
key NumPad3 button 0x46
key Decimal button 0x47
# The hat, on the arrows. 0x42 is TORSO CENTER, not a look (streamed
# mapping: elem 66 -> subsys 17 Torso attr 14; the other three are the
# mapper's LookBehind/Right/Left).
key Up button 0x42
key Down button 0x41
key Left button 0x44
key Right button 0x43
# UPPER MFD banks: number row on top, QWERTY beneath.
# Heat / coolant (1-4, QWER = Condensers 1-6, flush, balance).
key D1 button 0x2F
key D2 button 0x2E
key D3 button 0x2D
key D4 button 0x2C
key Q button 0x2B
key W button 0x2A
key E button 0x29
key R button 0x28
# Engineering / Mfd2.
key D5 button 0x27
key D6 button 0x26
key D7 button 0x25
key D8 button 0x24
key T button 0x23
key Y button 0x22
key U button 0x21
key I button 0x20
# Comm / target hotbox.
key D9 button 0x37
key D0 button 0x36
key OemMinus button 0x35
key Oemplus button 0x34
key O button 0x33
key P button 0x32
key OemOpenBrackets button 0x31
key OemCloseBrackets button 0x30
# LOWER MFD banks: home row on top, the row below beneath.
key A button 0x0F
key S button 0x0E
key D button 0x0D
key F button 0x0C
key Z button 0x0B
key X button 0x0A
key C button 0x09
key V button 0x08
key H button 0x07
key J button 0x06
key K button 0x05
key L button 0x04
key N button 0x03
key M button 0x02
key Oemcomma button 0x01
key OemPeriod button 0x00
# The two columns flanking the map.
key F1 button 0x10
key F2 button 0x11
key F3 button 0x12
key F4 button 0x13
key F5 button 0x14
key F6 button 0x15
key F7 button 0x18
key F8 button 0x19
key F9 button 0x1A
key F10 button 0x1B
key F11 button 0x1C
key F12 button 0x1D
# View toggle keeps its own key (V is a board button now).
key Oemtilde action ViewToggle
# ---- Xbox controller -----------------------------------------------------
# Left stick steers (the pedals), right stick twists the torso and pushes
# the throttle lever; triggers fire.
padaxis LeftStickX axis Pedals deadzone 0.24
padaxis LeftStickY axis JoystickY deadzone 0.24
padaxis RightStickX axis JoystickX deadzone 0.24
padaxis RightStickY axis Throttle rate 0.75 deadzone 0.24
pad RightTrigger button 0x40 # Main
pad LeftTrigger button 0x47 # Upper (missiles)
pad RightShoulder button 0x46 # Middle (PPCs)
pad LeftShoulder button 0x45 # Pinky
pad DPadUp button 0x42 # hat up
pad DPadDown button 0x41 # hat back
pad DPadLeft button 0x44 # hat left
pad DPadRight button 0x43 # hat right
pad B action AllStop
pad Y action ViewToggle
pad X action LookBehind
pad Start action ModeCycle
pad RightThumb action DisplayCycle
pad Back action Valve
# COOLANT FLUSH -- HELD key dumps reservoir coolant into the loops
# (Reservoir InjectCoolant, msg 4). The tank drains while held; with the
# tank empty the loops burn coolant with no refill -- run hot long enough
# and the bank drops below 5%, which ARMS the eject (Panic lights).
key G action Flush
# PANIC / EJECT -- the punch-out (Mech msg 0x19). Only fires on a CRIPPLED
# mech (no generators, coolant leaked below 5%, or leg-gimped novice) -- a
# healthy mech refuses the button, so a stray press is a no-op.
key Back action Eject
pad LeftThumb action Eject
# PILOT KEYPAD (the pod's MFD program keypad, KeyboardPilot unit). While
# PANIC mode is armed, ANY pilot-keypad key fires the eject (the binary's
# keyboardGroup[KeyboardPilot].Add(0x200000, mech, 0x19) -- its ONLY armed
# eject binding); un-armed, the keys feed program entry. Desktop numpad =
# that keypad.
key NumPad0 keypad pilot 0
key NumPad1 keypad pilot 1
key NumPad2 keypad pilot 2
key NumPad3 keypad pilot 3
key NumPad4 keypad pilot 4
key NumPad5 keypad pilot 5
key NumPad6 keypad pilot 6
key NumPad7 keypad pilot 7
key NumPad8 keypad pilot 8
key NumPad9 keypad pilot 9