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>
105 lines
4.2 KiB
Plaintext
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
|