diff --git a/game/reconstructed/mechmppr.cpp b/game/reconstructed/mechmppr.cpp index b44d72f..3b82771 100644 --- a/game/reconstructed/mechmppr.cpp +++ b/game/reconstructed/mechmppr.cpp @@ -834,10 +834,13 @@ void if (getenv("BT_INPUT_LOG")) { static float s_eacc2 = 0.0f; s_eacc2 += time_slice; - if (s_eacc2 >= 1.0f) { s_eacc2 = 0.0f; + if (s_eacc2 >= 0.5f) { s_eacc2 = 0.0f; + YawPitchRoll ypr; + ypr = mech->localOrigin.angularPosition; DEBUG_STREAM << "[input] mppr elev in=" << stick_y << " torsoElev=" << torso->CurrentElevation() << " vel=" << torso->ElevationVelocity() + << " mechYaw=" << (Scalar)ypr.yaw << "\n" << std::flush; } } } @@ -864,13 +867,26 @@ void // if (torso == 0 || !torso->GetHorizontalEnabled()) // raw torso+0x250 == 0 { - if (cockpit) cockpit->SetFreeAimSlew(stick_x); // raw cockpit+0x28c + // PORT SIGN (field report 2026-07-18, 'left/right reversed' on + // FIXED-TORSO mechs): the free-aim slew consumer pans the view + // opposite the torso-twist convention (E/right panned LEFT on + // the Blackhawk; the MadCat's real twist was CORRECT). Negate + // only this channel so stick-right = aim-right on both. + if (cockpit) cockpit->SetFreeAimSlew(-stick_x); // raw cockpit+0x28c } else { torso->SetAnalogTwistAxis(stick_x); // raw torso+0x1f0 } if (torso) torso->SetAnalogElevationAxis(stick_y); // raw torso+0x1f4 + if (torso && getenv("BT_INPUT_LOG")) + { + static float s_tacc = 0.0f; s_tacc += time_slice; + if (s_tacc >= 0.5f) { s_tacc = 0.0f; + DEBUG_STREAM << "[input] twist in=" << stick_x + << " currentTwist=" << torso->CurrentTwist() + << "\n" << std::flush; } + } turnDemand = (pedal_3 == 0.0f) ? 0.0f : pedal_3; @@ -891,7 +907,7 @@ void // if (torso == 0 || !torso->GetHorizontalEnabled()) { - if (cockpit) cockpit->SetFreeAimSlew(stick_x); + if (cockpit) cockpit->SetFreeAimSlew(-stick_x); // PORT SIGN (see Standard) } else {