Issue #25: composite Turn channel -- twin-stick gamepad turning
Gamepad players expect stick X = turn; the pod-faithful default maps it
to torso twist, and the pedal pair couldn't take a single signed axis.
New bindings channel "Turn": a signed composite that decomposes into
the pedal pair at the RIO publish (+ = right pedal, - = left), ADDING
to direct pedal bindings so mixed rigs compose, clamped 0..1 per pedal.
The default bindings.txt stays pod-faithful and documents the
twin-stick alternative inline:
padaxis LX axis Turn
padaxis RX axis JoystickX
Also covers the HOTAS ask (any signed axis can now drive turning).
Verified: regenerated defaults carry the doc lines; a twin-stick-edited
bindings.txt parses and boots clean. Awaiting live pad verification.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4e0fcbf328
commit
76eaddc4a8
@@ -740,6 +740,16 @@ void
|
||||
channelValue[PadBindingProfile::ChannelJoystickY]);
|
||||
LeftPedal = (Scalar)channelValue[PadBindingProfile::ChannelLeftPedal];
|
||||
RightPedal = (Scalar)channelValue[PadBindingProfile::ChannelRightPedal];
|
||||
// issue #25: the composite Turn channel decomposes into the pedal pair
|
||||
// (signed: + = right, - = left); it ADDS to any direct pedal bindings so
|
||||
// mixed rigs (stick turn + trigger pedals) compose.
|
||||
{
|
||||
float turn = channelValue[PadBindingProfile::ChannelTurn];
|
||||
if (turn > 0.0f) RightPedal += (Scalar)turn;
|
||||
else if (turn < 0.0f) LeftPedal += (Scalar)(-turn);
|
||||
if (LeftPedal > 1.0f) LeftPedal = 1.0f;
|
||||
if (RightPedal > 1.0f) RightPedal = 1.0f;
|
||||
}
|
||||
|
||||
//
|
||||
// The analog heartbeat: tells the manager to run the five-scalar
|
||||
|
||||
Reference in New Issue
Block a user