Ver Fonte

scale flyingvehicle ai pitch by the amount yaw forces it to roll

AzaezelX há 9 meses atrás
pai
commit
6efb3843f6
1 ficheiros alterados com 7 adições e 0 exclusões
  1. 7 0
      Engine/source/T3D/AI/AIController.cpp

+ 7 - 0
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<FlyingVehicleData*>(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;