Merge origin/master: the D1 relay/operator line + input remap meet the glass layer
33 master commits in (relay TCP/UDP + PySide6 operator console, CONTROLS.MAP +XInput binding engine, camera seats, torso pitch aim, sign fixes, the 1995 manual, version stamping, 18-mech certification). Conflicts: .gitignore + CLAUDE.md router rows (combined). SEMANTIC RECONCILIATION (the one real overlap): masters btinput binding engine (ungated, CONTROLS.MAP) and the glass PadRIO (gated, bindings.txt) would both read the keyboard/pad in a glass+PAD session. btinput now joins the stand-down convention: BTInputPoll yields (and BTInputSuppressKey claims NOTHING, so authentic hotkeys flow) when an operational cockpit device owns the input path -- BTRIODevicePresent, BT_KEY_BRIDGE force-override honored, forced harness exempt. One input system per mode: btinput on pod/dev desktops, PadRIO on glass. The mechmppr/mech4 bridge merges composed clean (masters negate-once sign fix inside our device-gated bridge). The D1 relay keeps its own raw sockets by design (an alternative LAN wire; Steam and relay are separate modes). Verified post-merge: all 3 configs build; glass boots with [input] binding engine standing down + PadRIO owning input (30 ticks); pod forced-walk speedDemand=61.501 with btinput ACTIVE; 2-node loopback MP full 31/31 mission, 76/76 ticks. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,15 @@
|
||||
#include "l4padrio.h"
|
||||
#endif
|
||||
|
||||
//
|
||||
// BT port (input remap): keys claimed by a CONTROLS.MAP binding are consumed
|
||||
// by the binding engine (game/reconstructed/btinput.cpp) and must NOT also
|
||||
// reach the key-command channel -- that was the historic double-dispatch
|
||||
// ('w' drove AND selected pilot 0; F5's key-up value 0x74 aliased to the
|
||||
// 't' hotkey). The symbol resolves from the game lib at the btl4 exe link.
|
||||
//
|
||||
extern "C" int BTInputSuppressKey(unsigned int key_value, int is_char);
|
||||
|
||||
// #define LOCAL_TEST
|
||||
|
||||
#if defined(LOCAL_TEST)
|
||||
@@ -1572,6 +1581,11 @@ void
|
||||
{
|
||||
// swallowed: navigation key, not a character command
|
||||
}
|
||||
else if (BTInputSuppressKey((unsigned int)keyValue,
|
||||
msg.message == WM_CHAR))
|
||||
{
|
||||
// swallowed: remapped by CONTROLS.MAP
|
||||
}
|
||||
else
|
||||
{
|
||||
keyboardGroup[KeyboardPC].ForceUpdate(&keyValue, mode_mask);
|
||||
|
||||
Reference in New Issue
Block a user