From 6efb3843f6d63002d6db37a77a71e8936a12482d Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Wed, 23 Apr 2025 16:25:35 -0500 Subject: [PATCH] scale flyingvehicle ai pitch by the amount yaw forces it to roll --- Engine/source/T3D/AI/AIController.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Engine/source/T3D/AI/AIController.cpp b/Engine/source/T3D/AI/AIController.cpp index 9408dea9c..2cf2c50e5 100644 --- a/Engine/source/T3D/AI/AIController.cpp +++ b/Engine/source/T3D/AI/AIController.cpp @@ -779,6 +779,13 @@ void AIFlyingVehicleControllerData::resolvePitch(AIController* obj, Point3F loca F32 lastPitch = fvo->getSteering().y; movePtr->pitch = 0.0f; F32 dotPitch = -mDot(up, toTarg); + + FlyingVehicleData* db = static_cast(fvo->getDataBlock()); + + F32 rollAmt = mFabs(fvo->getThrottle()* movePtr->yaw * db->steeringRollForce); + dotPitch *= 1.0-(mClampF(rollAmt, 0.0,1.0)); // reduce pitch by how much we're rolling + dotPitch *= M_PI_F; + if (mFabs(dotPitch) > 0.05f) movePtr->pitch = dotPitch - lastPitch;