summaryrefslogtreecommitdiff
path: root/game/shared/tf/tf_weapon_bonesaw.h
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/shared/tf/tf_weapon_bonesaw.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/shared/tf/tf_weapon_bonesaw.h')
-rw-r--r--game/shared/tf/tf_weapon_bonesaw.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/game/shared/tf/tf_weapon_bonesaw.h b/game/shared/tf/tf_weapon_bonesaw.h
new file mode 100644
index 0000000..fc58948
--- /dev/null
+++ b/game/shared/tf/tf_weapon_bonesaw.h
@@ -0,0 +1,81 @@
+//========= 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