Well, I have tried the matrix translation, and it has the same results 
as just modifying the angle.x,y,z the setabsangle()
I'm applying these rotations to the air boat. Does the vehicle handle 
things differently?
Any other thoughts?

Here is the code I am using:

void CPropAirboat::DriveVehicle( float flFrameTime, CUserCmd *ucmd, int 
iButtonsDown, int iButtonsReleased )
{
    CBaseEntity *pDriver = GetDriver();
    CBasePlayer *pPlayerDriver;

    if( pDriver && pDriver->IsPlayer() )
    {
        pPlayerDriver = dynamic_cast<CBasePlayer*>(pDriver);
    }

    matrix3x4_t currentRotation, incrementalRotation, nextRotation;
    QAngle angles = this->GetAbsAngles();
    AngleMatrix( angles, currentRotation );

    // compute an incremental 1 degree of roll
    AngleMatrix( QAngle( ucmd->mousedx, 0, 0 ), incrementalRotation );
   
    ConcatTransforms( incrementalRotation, currentRotation, nextRotation );
    MatrixAngles( nextRotation, angles );
    SetAbsAngles( angles );




    angles = this->GetAbsAngles();
    AngleMatrix( angles, currentRotation );

    // compute an incremental 1 degree of pitch
    AngleMatrix( QAngle( 0, 0, ucmd->mousedy ), incrementalRotation );
   
    ConcatTransforms( incrementalRotation, currentRotation, nextRotation );
    MatrixAngles( nextRotation, angles );
    SetAbsAngles( angles );


    //m_VehiclePhysics.UpdateDriverControls( ucmd, TICK_INTERVAL );

    // Create splashes.
   

    // Save this data.
    m_flThrottle = m_VehiclePhysics.GetThrottle();
    m_nSpeed = m_VehiclePhysics.GetSpeed();
    m_nRPM = m_VehiclePhysics.GetRPM();
}

-- 
Best regards,
 Dan
 http://www.lnxmad.com


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to