Files
BT411/content/CONTROLS_NUMPAD.MAP
T
arcattackandClaude Fable 5 1d6339b226 Gitea #6: secondary MFD Damage/Critical/Heat cycling -- reconstruct the
NotifyOfDisplayModeChange override (vtbl+0x4C @4d1ae4) + wire desktop 'N'

The secondary screen's schematic selector was mislabeled: @004d1ae4 (the
bits-18..20 ModeSecondary* mask swap) was reconstructed as a non-virtual
"SetControlMode" that nothing called, so the desktop stayed pinned on the
Damage view.  The binary's L4 vtable @0051e440 pins the truth:

  +0x48 = @004d1acc  <- CycleControlModeMessageHandler (FUN_004afbe0):
          forwards to the base RET no-op @004b048c.  A BAS/MID/ADV
          control-mode change never touches the secondary view
          (empirically confirmed: BT_MODECYCLE_TEST cycles the CONTROL
          MODE lamp, mask bits 18-20 unchanged, schematic stays ARMOR).
  +0x4C = @004d1ae4  <- CycleDisplayModeMessageHandler (FUN_004afcac):
          THE Damage/Critical/Heat selector, indexed by displayMode
          (table @0051dbe4 = ModeSecondaryDamage/Critical/Heat).

Authentic pod inputs (streamed type-6 .CTL EventMappings, dumped via the
new BT_CTRLMAP_LOG EVENT records): secondary-panel button 0x15 -> msg
0x15 CycleDisplayMode (manual p13, the "'Mech status Info center" bottom
left of the secondary screen), button 0x18 -> msg 0x14 CycleControlMode
(manual p6, top right), 0x10/0x11 -> ZoomIn/Out.  The DOS keyboard
fallbacks (Keypress 0x13d/0x13e = extended F3/F4) are dead under the
WinTesla VK map, hence the desktop pin.

Port wiring (the M/ModeCycle pattern): key N / pad RightThumb -> action
DisplayCycle -> gBTDisplayCycle -> CycleDisplayModeNow() -- the same body
the pod console button message drives.  Both .MAP profiles + the
compiled-in default updated.

Verified live (docked gauges + BT_SHOT, BT_VIEWCYCLE_TEST): the sec
panel cycles ARMOR DAMAGE silhouette -> CRITICAL DAMAGE subsystem list
-> HEAT DAMAGE colored list, mask 0x450421 -> 0x490421 -> 0x510421; M
control-mode cycling un-regressed (BAS/MID/ADV lamp cycles, view pinned).

Diags: BT_MODE_LOG, BT_VIEWCYCLE_TEST=<frame>, BT_MODECYCLE_TEST=<frame>,
BT_CTRLMAP_LOG now dumps EVENT records.  KB: gauges-hud secondary-view
section rewritten, CLASSMAP +0x48/+0x4C slots, decomp-reference env
gates, GAUGE_COMPOSITE phase-4 entry resolved.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 16:28:38 -05:00

105 lines
4.2 KiB
Plaintext

# ==========================================================================
# BT411 CONTROLS_NUMPAD.MAP -- the community-suggested numpad layout
# (corrected). To use it: copy this file over CONTROLS.MAP.
# Grammar + address reference: see CONTROLS.MAP.
# ==========================================================================
# Corrections vs. the original suggestion:
# - keypads are NOT button addresses 0x50-0x6F (that space doesn't exist);
# use `keypad pilot|external <0-15>` when those panels get mapped
# - there is no clickable on-screen cockpit -- every function you want
# must be bound here
# - keyboard fire buttons added (the suggestion only had Main; Pinky/
# Middle/Upper were pad-only, stranding weapons regrouped onto them)
# - Ctrl throttle-down kept, but missiles moved off Ctrl to NumPad3
# - 0x36/0x37 are target-hotbox buttons (pilot select), not "config 1/2"
# - port actions (view, all-stop, mode cycle, valve, generators) bound
#
# ---- Driving: number pad ------------------------------------------------
key NumPad8 axis Throttle rate 0.75 # lever up
key NumPad2 axis Throttle rate -0.75 # lever down
key NumPad4 axis LeftPedal deflect 1 # turn left
key NumPad6 axis RightPedal deflect 1 # turn right
key NumPad7 axis JoystickX deflect -1 # torso twist left
key NumPad9 axis JoystickX deflect 1 # torso twist right
key Home axis JoystickY deflect 1 # torso aim up
key End axis JoystickY deflect -1 # torso aim down
key NumPad5 action AllStop
key Shift axis Throttle rate 0.75 # throttle up (alt)
key Ctrl axis Throttle rate -0.75 # throttle down (alt)
key Alt button 0x3F # throttle-head = REVERSE THRUST
# ---- Fire: numpad cluster + space ---------------------------------------
key Space button 0x40 # Main trigger
key NumPad0 button 0x40
key NumPad1 button 0x45 # Pinky
key NumPad3 button 0x47 # Upper (missiles)
key Decimal button 0x46 # Middle (PPCs)
# ---- Joystick hat on the arrows -----------------------------------------
key Up button 0x42 # Hat Up
key Down button 0x41 # Hat Back
key Left button 0x44 # Hat Left
key Right button 0x43 # Hat Right
# ---- Systems ------------------------------------------------------------
key G action ConfigHold
key Enter action ModeCycle
key N action DisplayCycle # secondary schematic: Damage -> Critical -> Heat
key V action ViewToggle
key B action LookBehind
key F5 action Generator1
key F6 action Generator2
key F7 action Generator3
key F8 action Generator4
key F9 action Reconnect
key F10 action Valve
# ---- Upper MFD banks: number row = the top aux row, QWERTY row = the row
# ---- under it, left to right across the Left / Center / Right panels.
# ---- (These buttons drive the preset/eng-data selection; the letters
# ---- lose their 1995 typed-hotkey meaning once bound here.)
key D1 button 0x2F
key D2 button 0x2E
key D3 button 0x2D
key D4 button 0x2C
key D5 button 0x27
key D6 button 0x26
key D7 button 0x25
key D8 button 0x24
key D9 button 0x37 # hotbox (target select)
key D0 button 0x36 # hotbox
key OemMinus button 0x35 # hotbox
key Oemplus button 0x34 # hotbox
key Q button 0x2B
key W button 0x2A
key E button 0x29
key R button 0x28
key T button 0x23
key Y button 0x22
key U button 0x21
key I button 0x20
key O button 0x33 # hotbox
key P button 0x32 # hotbox
key OemOpenBrackets button 0x31 # hotbox
key OemCloseBrackets button 0x30 # hotbox
# ---- Xbox controller (same as the default profile) ----------------------
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
pad LeftTrigger button 0x47
pad RightShoulder button 0x46
pad LeftShoulder button 0x45
pad DPadUp button 0x42
pad DPadDown button 0x41
pad DPadLeft button 0x44
pad DPadRight button 0x43
pad B action AllStop
pad Y action ViewToggle
pad X action LookBehind
pad Start action ModeCycle
pad RightThumb action DisplayCycle
pad Back action Valve