98 lines
2.9 KiB
C++
98 lines
2.9 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef WEAPON_TWOHANDEDCONTAINER_H
|
|
#define WEAPON_TWOHANDEDCONTAINER_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "basetfcombatweapon_shared.h"
|
|
#include "baseviewmodel_shared.h"
|
|
#include "studio.h"
|
|
|
|
#if defined( CLIENT_DLL )
|
|
#define CWeaponTwoHandedContainer C_WeaponTwoHandedContainer
|
|
#endif
|
|
|
|
class CBaseViewModel;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Client side rep of CBaseTFCombatWeapon
|
|
//-----------------------------------------------------------------------------
|
|
class CWeaponTwoHandedContainer : public CBaseTFCombatWeapon
|
|
{
|
|
DECLARE_CLASS( CWeaponTwoHandedContainer, CBaseTFCombatWeapon );
|
|
public:
|
|
DECLARE_NETWORKCLASS();
|
|
DECLARE_PREDICTABLE();
|
|
|
|
CWeaponTwoHandedContainer();
|
|
~CWeaponTwoHandedContainer();
|
|
|
|
virtual void Spawn( void );
|
|
virtual void ItemPostFrame( void );
|
|
virtual void ItemBusyFrame( void );
|
|
virtual void SetWeapons( CBaseTFCombatWeapon *left, CBaseTFCombatWeapon *right );
|
|
virtual void UnhideSecondViewmodel( void );
|
|
virtual void AbortReload( void );
|
|
virtual bool HasAnyAmmo( void );
|
|
virtual bool Deploy( void );
|
|
virtual bool Holster( CBaseCombatWeapon *pSwitchingTo = NULL );
|
|
virtual CBaseCombatWeapon *GetLastWeapon( void );
|
|
virtual int GetWeight( void );
|
|
|
|
virtual const char *GetViewModel( int viewmodelindex = 0 );
|
|
virtual char *GetDeathNoticeName( void );
|
|
virtual float GetDefaultAnimSpeed( void );
|
|
|
|
// All predicted weapons need to implement and return true
|
|
virtual bool IsPredicted( void ) const
|
|
{
|
|
return true;
|
|
}
|
|
|
|
#if defined( CLIENT_DLL )
|
|
|
|
virtual bool OnFireEvent( C_BaseViewModel *pViewModel, const Vector& origin, const QAngle& angles, int event, const char *options );
|
|
virtual void GetViewmodelBoneControllers( CBaseViewModel *pViewModel, float controllers[MAXSTUDIOBONECTRLS]);
|
|
|
|
virtual void OnDataChanged( DataUpdateType_t updateType );
|
|
|
|
virtual bool ShouldDraw( void );
|
|
virtual void Redraw(void);
|
|
virtual void DrawAmmo( void );
|
|
virtual void HandleInput( void );
|
|
virtual void OverrideMouseInput( float *x, float *y );
|
|
virtual void ViewModelDrawn( CBaseViewModel *pBaseViewModel );
|
|
void HookWeaponEntities( void );
|
|
virtual bool VisibleInWeaponSelection( void );
|
|
|
|
private:
|
|
CWeaponTwoHandedContainer( const CWeaponTwoHandedContainer & );
|
|
public:
|
|
|
|
#else
|
|
|
|
virtual void SetTransmit( CCheckTransmitInfo *pInfo, bool bAlways );
|
|
|
|
#endif
|
|
|
|
CBaseTFCombatWeapon *GetLeftWeapon( void );
|
|
CBaseTFCombatWeapon *GetRightWeapon( void );
|
|
|
|
public:
|
|
CNetworkHandle( CBaseTFCombatWeapon, m_hRightWeapon );
|
|
CNetworkHandle( CBaseTFCombatWeapon, m_hLeftWeapon );
|
|
#if defined( CLIENT_DLL )
|
|
CHandle<CBaseTFCombatWeapon> m_hOldRightWeapon;
|
|
CHandle<CBaseTFCombatWeapon> m_hOldLeftWeapon;
|
|
#endif
|
|
};
|
|
|
|
#endif // WEAPON_TWOHANDEDCONTAINER_H
|