Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ADDED :: Driving v3
- // *************************************************************************** v0.2 // a29
- // *********************** 1st Gear + Accel + Brake ************************
- // ***************************************************************************
- float mDefaultLatScale = mAxle->getWheelOptions()->getLateralScale();
- // --- AXLE ---
- float aFrontWheels = mAxle->getIndex() == 0;
- float aRearWheels = mAxle->getIndex() == 1;
- float aBraking = mVehicle->getStandardInput()->getBrakeFinalInput(); // (0-1) Only by input.
- float aCurGear = mVehicle->getTransmission()->getCurGear(); // Get the current gear
- float steerDeltaAngleR = mVehicle->getSteerDeltaAngle(false); // Rear angle difference
- float carAngleR = FMath::Abs(steerDeltaAngleR);
- float brakePow = 0.9f; // Multiplier - to manage the overall power
- float brakeFront = 1.0f; // Multiplier - Front Wheels
- float brakeRear = 0.9f; // Multiplier - Rear Wheels
- float gripWheelF = 0.5f; // Multiplier - Grip Wheel Front
- float gripWheelR = 0.4f; // Multiplier - Grip Wheel Rear
- float wheelFront = 0.9f; // Multiplier - Not Grip Wheel Front
- float wheelRear = 0.8f; // Multiplier - Not Grip Wheel Rear
- // Using getSteerDeltaAngle(false), due with true, in high turning the angle decreases instead of increase.
- // a29 || "/ 90.0f" :: Higher = More brake || Lower = Less brake .
- //float brakeAngleR = FMath::Clamp(1.0f-(carAngleR / 90.0f), 0.0f, 1.0f); // Stable
- float brakeAngleR = FMath::Clamp(1.0f-(carAngleR / 120.0f), 0.0f, 1.0f); // "/ 120" :: not bad with some grip wheels tweaking
- // Final brake calculation || Accel maybe should be added here too.
- float driftBrake = brakePow *brakeAngleR *aBraking;
- // Only on 1st gear + Braking when issue happens.
- if ( aCurGear == 1 && aBraking > 0.0f ) {
- // --- SAME BRAKE FOR ALL WHEELS ---
- //mVehicle->getAxle(0)->getRightWheel()->setBraking(driftBrake *brakeFront);
- //mVehicle->getAxle(0)->getLeftWheel()->setBraking( driftBrake *brakeFront);
- //mVehicle->getAxle(1)->getRightWheel()->setBraking(driftBrake *brakeRear);
- //mVehicle->getAxle(1)->getLeftWheel()->setBraking( driftBrake *brakeRear);
- // --- GRIP WHEELS VERSION ---
- // Turning RIGHT
- //if (aSteer > 0 ) {
- if ( steerDeltaAngleF > 0 ) {
- mVehicle->getAxle(0)->getRightWheel()->setBraking(driftBrake *brakeFront *wheelFront);
- mVehicle->getAxle(0)->getLeftWheel()->setBraking( driftBrake *brakeFront *gripWheelF); // Grip Wheel
- // REAR
- mVehicle->getAxle(1)->getRightWheel()->setBraking(driftBrake *brakeRear *wheelRear );
- mVehicle->getAxle(1)->getLeftWheel()->setBraking( driftBrake *brakeRear *gripWheelF); // Grip Wheel
- }
- // Turning LEFT
- //if (aSteer < 0 ) {
- if ( steerDeltaAngleF < 0 ) {
- mVehicle->getAxle(0)->getLeftWheel()->setBraking( driftBrake *brakeFront *wheelFront);
- mVehicle->getAxle(0)->getRightWheel()->setBraking(driftBrake *brakeFront *gripWheelR); // Grip Wheel
- // REAR
- mVehicle->getAxle(1)->getLeftWheel()->setBraking( driftBrake *brakeRear *wheelRear );
- mVehicle->getAxle(1)->getRightWheel()->setBraking(driftBrake *brakeRear *gripWheelR); // Grip Wheel
- }
- // To make the car +slide/angle to compensate less braking.
- if ( aFrontWheels ) {
- mLatScale = mDefaultLatScale -(aBraking*0.2f);
- }
- if ( aRearWheels ) {
- mLatScale = mDefaultLatScale -(aBraking*0.4f);
- }
- }
- else { mLatScale = mDefaultLatScale; }
- // -----------------------------------------------------------------------
- // ***********************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement