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>
195 lines
7.4 KiB
Plaintext
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
|