summaryrefslogtreecommitdiff
path: root/game/client/tf2/c_basefourwheelvehicle.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/tf2/c_basefourwheelvehicle.cpp
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/client/tf2/c_basefourwheelvehicle.cpp')
-rw-r--r--game/client/tf2/c_basefourwheelvehicle.cpp89
1 files changed, 89 insertions, 0 deletions
diff --git a/game/client/tf2/c_basefourwheelvehicle.cpp b/game/client/tf2/c_basefourwheelvehicle.cpp
new file mode 100644
index 0000000..88b98e3
--- /dev/null
+++ b/game/client/tf2/c_basefourwheelvehicle.cpp
@@ -0,0 +1,89 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+#include "cbase.h"
+#include "C_BaseFourWheelVehicle.h"
+
+IMPLEMENT_CLIENTCLASS_DT(C_BaseTFFourWheelVehicle, DT_BaseTFFourWheelVehicle, CBaseTFFourWheelVehicle)
+ RecvPropFloat( RECVINFO( m_flDeployFinishTime ) ),
+ RecvPropInt( RECVINFO( m_eDeployMode ) ),
+ RecvPropInt( RECVINFO( m_bBoostUpgrade ) ),
+ RecvPropInt( RECVINFO( m_nBoostTimeLeft ) ),
+END_RECV_TABLE()
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+C_BaseTFFourWheelVehicle::C_BaseTFFourWheelVehicle()
+{
+}
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+float C_BaseTFFourWheelVehicle::GetDeployFinishTime() const
+{
+ return m_flDeployFinishTime;
+}
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+VehicleModeDeploy_e C_BaseTFFourWheelVehicle::GetVehicleModeDeploy() const
+{
+ return m_eDeployMode;
+}
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+void C_BaseTFFourWheelVehicle::OnDataChanged( DataUpdateType_t updateType )
+{
+ BaseClass::OnDataChanged( updateType );
+
+ if ( updateType == DATA_UPDATE_CREATED )
+ {
+ // Start thinking (Baseclass stops it)
+ ClientThinkList()->SetNextClientThink( GetClientHandle(), CLIENT_THINK_ALWAYS );
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Restricts the view within a range of the center...
+//-----------------------------------------------------------------------------
+void C_BaseTFFourWheelVehicle::RestrictView( int nRole, float flMinYaw, float flMaxYaw, QAngle &vecViewAngles )
+{
+ Assert( nRole >= 0 );
+ Vector vehicleEyeOrigin;
+ QAngle vehicleEyeAngles;
+ GetRoleViewPosition( nRole, &vehicleEyeOrigin, &vehicleEyeAngles );
+
+ // Confine the view to the appropriate yaw range...
+ float flCenterYaw = vehicleEyeAngles[YAW];
+
+ // View angles are dealt with in absolute terms here...
+ float flAngleDiff = AngleDiff( vecViewAngles[YAW], flCenterYaw );
+
+ // Here, we must clamp to the cone...
+ if (flAngleDiff < flMinYaw)
+ vecViewAngles[YAW] = anglemod(flCenterYaw + flMinYaw);
+ else if (flAngleDiff > flMaxYaw)
+ vecViewAngles[YAW] = anglemod(flCenterYaw + flMaxYaw);
+}
+
+
+//-----------------------------------------------------------------------------
+// Clamps the view angles while driving the vehicle
+//-----------------------------------------------------------------------------
+void C_BaseTFFourWheelVehicle::UpdateViewAngles( C_BasePlayer *pLocalPlayer, CUserCmd *pCmd )
+{
+ int nRole = GetPassengerRole( pLocalPlayer );
+ if ( nRole != VEHICLE_ROLE_DRIVER )
+ {
+ RestrictView( nRole, -90, 90, pCmd->viewangles );
+ }
+}
+