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.
152 lines
4.2 KiB
152 lines
4.2 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef BASETFCOMBATWEAPON_SHARED_H |
|
#define BASETFCOMBATWEAPON_SHARED_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "baseplayer_shared.h" |
|
#include "basetfplayer_shared.h" |
|
#include "basecombatweapon_shared.h" |
|
|
|
#if defined( CLIENT_DLL ) |
|
#define CBaseTFCombatWeapon C_BaseTFCombatWeapon |
|
#endif |
|
//----------------------------------------------------------------------------- |
|
// Purpose: Client side rep of CBaseTFCombatWeapon |
|
//----------------------------------------------------------------------------- |
|
class CBaseTFCombatWeapon : public CBaseCombatWeapon |
|
{ |
|
DECLARE_CLASS( CBaseTFCombatWeapon, CBaseCombatWeapon ); |
|
public: |
|
DECLARE_NETWORKCLASS(); |
|
DECLARE_PREDICTABLE(); |
|
|
|
CBaseTFCombatWeapon (); |
|
|
|
virtual void Precache( void ); |
|
|
|
bool IsCamouflaged( void ); |
|
|
|
virtual Vector GetTracerSrc( Vector &vecSrc, Vector &vecFireDir ); |
|
|
|
// Check if the owner is being EMP'd and if we can't fire, play an appropriate |
|
// failure sound |
|
// Default is to allow firing no matter what |
|
virtual bool ComputeEMPFireState( void ) { return true; } |
|
|
|
virtual void CheckRemoveDisguise( void ); |
|
|
|
virtual int GetImpactScale( void ) { return 1; }; |
|
|
|
// FIXME: why are these virtual? |
|
virtual float SequenceDuration( int iSequence ); |
|
virtual float SequenceDuration( void ) { return SequenceDuration( GetSequence() ); } |
|
|
|
virtual void WeaponSound( WeaponSound_t sound_type, float soundtime = 0.0f ); |
|
|
|
virtual void PlayAttackAnimation( int activity ); |
|
|
|
virtual bool SendWeaponAnim( int iActivity ); |
|
virtual void SetReflectViewModelAnimations( bool reflect ); |
|
virtual bool IsReflectingAnimations( void ) const; |
|
virtual int GetLastReflectedActivity( void ) { return m_iLastReflectedActivity; }; |
|
virtual int GetOtherWeaponsActivity( int iActivity ) { return iActivity; } |
|
virtual int ReplaceOtherWeaponsActivity( int iActivity ) { return iActivity; } |
|
virtual bool SupportsTwoHanded( void ) { return false; }; |
|
|
|
virtual void CleanupOnActStart( void ) { return; } |
|
|
|
bool IsOwnerEMPed(); |
|
|
|
virtual void BulletWasFired( const Vector &vecStart, const Vector &vecEnd ) { return; }; |
|
|
|
// Technology handling |
|
virtual void GainedNewTechnology( CBaseTechnology *pTechnology ) { return; }; |
|
|
|
/* |
|
// All predicted weapons need to implement and return true |
|
virtual bool IsPredicted( void ) const |
|
{ |
|
return true; |
|
} |
|
*/ |
|
|
|
virtual int GetPrimaryAmmo( void ); |
|
|
|
virtual void AddViewmodelBob( CBaseViewModel *viewmodel, Vector &origin, QAngle &angles ); |
|
virtual float CalcViewmodelBob( void ); |
|
|
|
|
|
#if defined( CLIENT_DLL ) |
|
virtual bool ShouldPredict( void ) |
|
{ |
|
if ( GetOwner() && |
|
GetOwner() == C_BasePlayer::GetLocalPlayer() ) |
|
return true; |
|
|
|
return BaseClass::ShouldPredict(); |
|
} |
|
|
|
// Camo |
|
virtual int GetFxBlend( void ); |
|
virtual bool IsTransparent( void ); |
|
|
|
virtual int GetSecondaryAmmo( void ); |
|
virtual int DrawModel( int flags ); |
|
virtual void DrawAmmo( void ); |
|
virtual void DrawMiniAmmo( void ); |
|
virtual bool ShouldDrawPickup( void ); |
|
|
|
virtual void OnDataChanged( DataUpdateType_t updateType ); |
|
|
|
virtual const char *GetPrintName( void ); |
|
virtual bool ShouldShowUsageHint( void ); |
|
|
|
static void CreateCrosshairPanels( void ); |
|
static void DestroyCrosshairPanels( void ); |
|
|
|
virtual bool OnFireEvent( C_BaseViewModel *pViewModel, const Vector& origin, const QAngle& angles, int event, const char *options ); |
|
|
|
protected: |
|
static vgui::Label *m_pCrosshairAmmo; |
|
|
|
private: |
|
// Share crosshair stuff among all weapons |
|
static bool m_bCrosshairInitialized; |
|
// Create/destroy shared crosshair object |
|
static void InitializeCrosshairPanels( void ); |
|
|
|
private: |
|
CBaseTFCombatWeapon ( const CBaseTFCombatWeapon & ); |
|
|
|
#else |
|
virtual void AddAssociatedObject( CBaseObject *pObject ) { } |
|
virtual void RemoveAssociatedObject( CBaseObject *pObject ) { } |
|
protected: |
|
|
|
// CVars that contain my damage details |
|
const ConVar *m_pDamageCVar; |
|
const ConVar *m_pRangeCVar; |
|
|
|
#endif |
|
|
|
protected: |
|
// If true, reflect and weapon animations to all view models |
|
CNetworkVar( bool, m_bReflectViewModelAnimations ); |
|
int m_iLastReflectedActivity; |
|
|
|
float bobtime; |
|
float bob; |
|
}; |
|
|
|
#endif // BASETFCOMBATWEAPON_SHARED_H |
|
|
|
|
|
|
|
|