You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
368 lines
11 KiB
368 lines
11 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef TFCLASSDATA_SHARED_H |
|
#define TFCLASSDATA_SHARED_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "mathlib/vector.h" |
|
|
|
|
|
enum TFClass |
|
{ |
|
TFCLASS_UNDECIDED = 0, |
|
|
|
TFCLASS_RECON, |
|
TFCLASS_COMMANDO, |
|
TFCLASS_MEDIC, |
|
TFCLASS_DEFENDER, |
|
TFCLASS_SNIPER, |
|
TFCLASS_SUPPORT, |
|
TFCLASS_ESCORT, |
|
TFCLASS_SAPPER, |
|
TFCLASS_INFILTRATOR, |
|
TFCLASS_PYRO, |
|
|
|
// TFCLASS_INDIRECT, |
|
|
|
TFCLASS_CLASS_COUNT, |
|
}; |
|
|
|
|
|
//============================================================================= |
|
// |
|
// Class Shared Data |
|
// |
|
#define PLAYERCLASS_HULL_STAND_MIN Vector( -24.0f, -24.0f, 0.0f ) |
|
#define PLAYERCLASS_HULL_STAND_MAX Vector( 24.0f, 24.0f, 72.0f ) |
|
#define PLAYERCLASS_VIEWOFFSET_STAND Vector( 0.0f, 0.0f, 64.0f ) |
|
|
|
#define PLAYERCLASS_HULL_DUCK_MIN Vector( -24.0f, -24.0f, 0.0f ) |
|
#define PLAYERCLASS_HULL_DUCK_MAX Vector( 24.0f, 24.0f, 36.0f ) |
|
#define PLAYERCLASS_VIEWOFFSET_DUCK Vector( 0.0f, 0.0f, 30.0f ) |
|
|
|
#define PLAYERCLASS_STEPSIZE 18.0f |
|
|
|
//============================================================================= |
|
// |
|
// Commando Class Specific Data |
|
// |
|
//#define COMMANDO_TEST |
|
|
|
#ifndef COMMANDO_TEST |
|
|
|
#define COMMANDOCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define COMMANDOCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define COMMANDOCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define COMMANDOCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define COMMANDOCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define COMMANDOCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define COMMANDOCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
|
|
#else |
|
|
|
#define COMMANDOCLASS_HULL_STAND_MIN Vector( -18.0f, -18.0f, 0.0f ) |
|
#define COMMANDOCLASS_HULL_STAND_MAX Vector( 18.0f, 18.0f, 54.0f ) |
|
#define COMMANDOCLASS_VIEWOFFSET_STAND Vector( 0.0f, 0.0f, 51.0f ) |
|
|
|
#define COMMANDOCLASS_HULL_DUCK_MIN Vector( -18.0f, -18.0f, 0.0f ) |
|
#define COMMANDOCLASS_HULL_DUCK_MAX Vector( 18.0f, 18.0f, 40.0f ) |
|
#define COMMANDOCLASS_VIEWOFFSET_DUCK Vector( 0.0f, 0.0f, 35.0f ) |
|
|
|
#define COMMANDOCLASS_STEPSIZE 18.0f |
|
|
|
#endif |
|
|
|
#define COMMANDO_MOVETYPE_BULLRUSH ( MOVETYPE_LAST + 1 ) |
|
|
|
#define COMMANDO_TIME_INVALID -9999.0f |
|
#define COMMANDO_DOUBLETAP_TIME 300.0f |
|
#define COMMANDO_BULLRUSH_TIME 2000.0f |
|
#define COMMANDO_BULLRUSH_VIEWDELTA_TIME 1000.0f |
|
#define COMMANDO_BULLRUSH_VIEWDELTA_TEST ( COMMANDO_BULLRUSH_TIME - COMMANDO_BULLRUSH_VIEWDELTA_TIME ) |
|
|
|
struct PlayerClassCommandoData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
DECLARE_CLASS_NOBASE( PlayerClassCommandoData_t ); |
|
DECLARE_EMBEDDED_NETWORKVAR(); |
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_COMMANDO }; |
|
|
|
CNetworkVar( bool, m_bCanBullRush ); |
|
CNetworkVar( bool, m_bBullRush ); |
|
CNetworkVector( m_vecBullRushDir ); |
|
CNetworkQAngle( m_vecBullRushViewDir ); |
|
CNetworkQAngle( m_vecBullRushViewGoalDir ); |
|
CNetworkVar( float, m_flBullRushTime ); |
|
CNetworkVar( float, m_flDoubleTapForwardTime ); |
|
}; |
|
|
|
|
|
//============================================================================= |
|
// |
|
// Defender Class Specific Data |
|
// |
|
#if 0 |
|
#define DEFENDERCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define DEFENDERCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define DEFENDERCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define DEFENDERCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define DEFENDERCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define DEFENDERCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define DEFENDERCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
#else |
|
#define DEFENDERCLASS_HULL_STAND_MIN Vector( -18.0f, -18.0f, 0.0f ) |
|
#define DEFENDERCLASS_HULL_STAND_MAX Vector( 18.0f, 18.0f, 55.0f ) |
|
#define DEFENDERCLASS_VIEWOFFSET_STAND Vector( 0.0f, 0.0f, 53.0f ) |
|
|
|
#define DEFENDERCLASS_HULL_DUCK_MIN Vector( -18.0f, -18.0f, 0.0f ) |
|
#define DEFENDERCLASS_HULL_DUCK_MAX Vector( 18.0f, 18.0f, 30.0f ) |
|
#define DEFENDERCLASS_VIEWOFFSET_DUCK Vector( 0.0f, 0.0f, 25.0f ) |
|
|
|
#define DEFENDERCLASS_STEPSIZE 15.0f |
|
#endif |
|
|
|
struct PlayerClassDefenderData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_DEFENDER }; |
|
|
|
}; |
|
|
|
//============================================================================= |
|
// |
|
// Escort Class Specific Data |
|
// |
|
#if 0 |
|
#define ESCORTCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define ESCORTCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define ESCORTCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define ESCORTCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define ESCORTCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define ESCORTCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define ESCORTCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
#else |
|
#define ESCORTCLASS_HULL_STAND_MIN Vector( -24.0f, -24.0f, 0.0f ) |
|
#define ESCORTCLASS_HULL_STAND_MAX Vector( 24.0f, 24.0f, 74.0f ) |
|
#define ESCORTCLASS_VIEWOFFSET_STAND Vector( 0.0f, 0.0f, 67.0f ) |
|
|
|
#define ESCORTCLASS_HULL_DUCK_MIN Vector( -24.0f, -24.0f, 0.0f ) |
|
#define ESCORTCLASS_HULL_DUCK_MAX Vector( 24.0f, 24.0f, 72.0f ) |
|
#define ESCORTCLASS_VIEWOFFSET_DUCK Vector( 0.0f, 0.0f, 48.0f ) |
|
|
|
#define ESCORTCLASS_STEPSIZE 18.0f |
|
#endif |
|
|
|
struct PlayerClassEscortData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_ESCORT }; |
|
|
|
}; |
|
|
|
//============================================================================= |
|
// |
|
// Infiltrator Class Specific Data |
|
// |
|
#define INFILTRATORCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define INFILTRATORCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define INFILTRATORCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define INFILTRATORCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define INFILTRATORCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define INFILTRATORCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define INFILTRATORCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
|
|
struct PlayerClassInfiltratorData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_INFILTRATOR }; |
|
|
|
}; |
|
|
|
|
|
//============================================================================= |
|
// |
|
// Pyro Class Specific Data |
|
// |
|
|
|
#define PYROCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define PYROCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define PYROCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define PYROCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define PYROCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define PYROCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define PYROCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
|
|
struct PlayerClassPyroData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_PYRO }; |
|
|
|
}; |
|
|
|
|
|
//============================================================================= |
|
// |
|
// Medic Class Specific Data |
|
// |
|
#define MEDICCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define MEDICCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define MEDICCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define MEDICCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define MEDICCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define MEDICCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define MEDICCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
|
|
struct PlayerClassMedicData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_MEDIC }; |
|
|
|
}; |
|
|
|
//============================================================================= |
|
// |
|
// Recon Class Specific Data |
|
// |
|
#define RECONCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define RECONCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define RECONCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define RECONCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define RECONCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define RECONCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define RECONCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
|
|
struct PlayerClassReconData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
DECLARE_CLASS_NOBASE( PlayerClassReconData_t ); |
|
DECLARE_EMBEDDED_NETWORKVAR(); |
|
|
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_RECON }; |
|
|
|
// For in-air jumps |
|
CNetworkVar( int, m_nJumpCount ); |
|
|
|
// For wall jumps |
|
CNetworkVar( float, m_flSuppressionJumpTime ); |
|
CNetworkVar( float, m_flSuppressionImpactTime ); |
|
CNetworkVar( float, m_flActiveJumpTime ); |
|
CNetworkVar( float, m_flStickTime ); |
|
CNetworkVector( m_vecImpactNormal ); |
|
CNetworkVar( float, m_flImpactDist ); |
|
CNetworkVector( m_vecUnstickVelocity ); |
|
|
|
// Trail |
|
CNetworkVar( bool, m_bTrailParticles ); |
|
}; |
|
|
|
|
|
//============================================================================= |
|
// |
|
// Sniper Class Specific Data |
|
// |
|
#define SNIPERCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define SNIPERCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define SNIPERCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define SNIPERCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define SNIPERCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define SNIPERCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define SNIPERCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
|
|
struct PlayerClassSniperData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_SNIPER }; |
|
|
|
}; |
|
|
|
//============================================================================= |
|
// |
|
// Support Class Specific Data |
|
// |
|
#if 0 |
|
#define SUPPORTCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define SUPPORTCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define SUPPORTCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define SUPPORTCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define SUPPORTCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define SUPPORTCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define SUPPORTCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
#else |
|
#define SUPPORTCLASS_HULL_STAND_MIN Vector( -30.0f, -30.0f, 0.0f ) |
|
#define SUPPORTCLASS_HULL_STAND_MAX Vector( 30.0f, 30.0f, 106.0f ) |
|
#define SUPPORTCLASS_VIEWOFFSET_STAND Vector( 0.0f, 0.0f, 120.0f ) |
|
|
|
#define SUPPORTCLASS_HULL_DUCK_MIN Vector( -30.0f, -30.0f, 0.0f ) |
|
#define SUPPORTCLASS_HULL_DUCK_MAX Vector( 30.0f, 30.0f, 72.0f ) |
|
#define SUPPORTCLASS_VIEWOFFSET_DUCK Vector( 0.0f, 0.0f, 64.0f ) |
|
|
|
#define SUPPORTCLASS_STEPSIZE 27.0f |
|
#endif |
|
|
|
struct PlayerClassSupportData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_SUPPORT }; |
|
|
|
}; |
|
|
|
//============================================================================= |
|
// |
|
// Sapper Class Specific Data |
|
// |
|
#define SAPPERCLASS_HULL_STAND_MIN PLAYERCLASS_HULL_STAND_MIN |
|
#define SAPPERCLASS_HULL_STAND_MAX PLAYERCLASS_HULL_STAND_MAX |
|
#define SAPPERCLASS_VIEWOFFSET_STAND PLAYERCLASS_VIEWOFFSET_STAND |
|
|
|
#define SAPPERCLASS_HULL_DUCK_MIN PLAYERCLASS_HULL_DUCK_MIN |
|
#define SAPPERCLASS_HULL_DUCK_MAX PLAYERCLASS_HULL_DUCK_MAX |
|
#define SAPPERCLASS_VIEWOFFSET_DUCK PLAYERCLASS_VIEWOFFSET_DUCK |
|
|
|
#define SAPPERCLASS_STEPSIZE PLAYERCLASS_STEPSIZE |
|
|
|
struct PlayerClassSapperData_t |
|
{ |
|
DECLARE_PREDICTABLE(); |
|
|
|
enum { PLAYERCLASS_ID = TFCLASS_SAPPER }; |
|
}; |
|
|
|
|
|
#include "tf_shareddefs.h" |
|
|
|
|
|
#endif // TFCLASSDATA_SHARED_H
|
|
|