Files
BT411/content/CONTROLS.MAP
T
Joe DiPrimaandClaude Fable 5 0089b3284f Eject firsthand prep: G = coolant Flush binding + BT_FLUSH_HOLD scalpel
The Flush ACTION existed in the input engine but no key was bound in the
shipped CONTROLS.MAP -- desktop players could never hold the flush. G (free)
now maps to it. BT_FLUSH_HOLD=<frames> extends the BT_FLUSH_TEST scalpel
past its 60-frame edge test for tank-dry benches.

Dry-run finding (fl.log): a full flush drains the tank to 0/14 in ~30 s,
but does NOT arm eject by itself -- InjectCoolant moves tank coolant INTO
the loops (the bank RISES), and idle heat draw is too slow to burn the
loops down to the 5% arm threshold in minutes. Firsthand arming needs
sustained fire after tank-dry (or coolant-loop leak damage / generator
loss). Matches the binary's intent: eject arms when LEAKED nearly dry.

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

179 lines
6.8 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