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