Team Fortress 2 Source Code as on 22/4/2020
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.
 
 
 
 
 
 

81 lines
2.0 KiB

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#ifndef TF_WEAPON_BONESAW_H
#define TF_WEAPON_BONESAW_H
#ifdef _WIN32
#pragma once
#endif
#include "tf_weaponbase_melee.h"
#ifdef CLIENT_DLL
#include "tf_weapon_medigun.h"
#define CTFBonesaw C_TFBonesaw
#endif
enum bonesaw_weapontypes_t
{
BONESAW_DEFAULT = 0,
BONESAW_UBER_ONHIT,
BONESAW_UBER_SAVEDONDEATH,
BONESAW_RADIUSHEAL,
BONESAW_TONGS,
};
//=============================================================================
//
// Bonesaw class.
//
class CTFBonesaw : public CTFWeaponBaseMelee
{
public:
DECLARE_CLASS( CTFBonesaw, CTFWeaponBaseMelee );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
CTFBonesaw() {}
virtual void Activate( void );
virtual int GetWeaponID( void ) const
{
const CEconItemView *pEconItemView = GetAttributeContainer()->GetItem();
if ( !V_strcmp( pEconItemView->GetItemDefinition()->GetDefinitionName(), "Harvester" ) )
return TF_WEAPON_HARVESTER_SAW;
return TF_WEAPON_BONESAW;
}
virtual void SecondaryAttack();
virtual bool DefaultDeploy( char *szViewModel, char *szWeaponModel, int iActivity, char *szAnimExt );
int GetBonesawType( void ) const { int iMode = 0; CALL_ATTRIB_HOOK_INT( iMode, set_weapon_mode ); return iMode; };
virtual void DoMeleeDamage( CBaseEntity* ent, trace_t& trace ) OVERRIDE;
float GetProgress( void ) { return 0; }
int GetCount( void );
const char* GetEffectLabelText( void ) { return "#TF_ORGANS"; }
float GetBoneSawSpeedMod( void );
#ifdef CLIENT_DLL
virtual void OnDataChanged( DataUpdateType_t updateType );
void UpdateChargePoseParam( void );
virtual void GetPoseParameters( CStudioHdr *pStudioHdr, float poseParameter[MAXSTUDIOPOSEPARAM] );
virtual void UpdateAttachmentModels( void );
#endif
private:
#ifdef CLIENT_DLL
int m_iUberChargePoseParam;
float m_flChargeLevel;
#endif
CTFBonesaw( const CTFBonesaw & ) {}
};
#endif // TF_WEAPON_BONESAW_H