diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/tf/c_tf_weapon_builder.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/client/tf/c_tf_weapon_builder.h')
| -rw-r--r-- | game/client/tf/c_tf_weapon_builder.h | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/game/client/tf/c_tf_weapon_builder.h b/game/client/tf/c_tf_weapon_builder.h new file mode 100644 index 0000000..efa7b95 --- /dev/null +++ b/game/client/tf/c_tf_weapon_builder.h @@ -0,0 +1,132 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef C_TF_WEAPON_BUILDER_H +#define C_TF_WEAPON_BUILDER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "tf_weaponbase.h" +#include "c_baseobject.h" + +#define CTFWeaponBuilder C_TFWeaponBuilder +#define CTFWeaponSapper C_TFWeaponSapper + +//============================================================================= +// Purpose: Client version of CWeaponBuiler +//============================================================================= +class C_TFWeaponBuilder : public C_TFWeaponBase +{ + DECLARE_CLASS( C_TFWeaponBuilder, C_TFWeaponBase ); +public: + DECLARE_CLIENTCLASS(); + DECLARE_PREDICTABLE(); + + C_TFWeaponBuilder(); + ~C_TFWeaponBuilder(); + + virtual void Redraw(); + + virtual void SecondaryAttack(); + + virtual bool IsPlacingObject( void ); + + virtual const char *GetCurrentSelectionObjectName( void ); + + virtual const char *GetViewModel( int iViewModel ) const; + virtual const char *GetWorldModel( void ) const; + + virtual bool Deploy( void ); + virtual void PostDataUpdate( DataUpdateType_t type ); + + C_BaseObject *GetPlacementModel( void ) { return m_hObjectBeingBuilt.Get(); } + + virtual void UpdateAttachmentModels( void ); + + virtual int GetSlot( void ) const; + virtual int GetPosition( void ) const; + + void SetupObjectSelectionSprite( void ); + + virtual CHudTexture const *GetSpriteActive( void ) const; + virtual CHudTexture const *GetSpriteInactive( void ) const; + + virtual const char *GetPrintName( void ) const; + + virtual int GetSubType( void ); + + virtual bool CanBeSelected( void ); + virtual bool VisibleInWeaponSelection( void ); + + virtual bool HasAmmo( void ); + + virtual int GetWeaponID( void ) const { return TF_WEAPON_BUILDER; } + + int GetType( void ) { return m_iObjectType; } + bool CanBuildObjectType( int iObjectType ); + + virtual Activity GetDrawActivity( void ); + + virtual CStudioHdr *OnNewModel( void ); + + virtual float InternalGetEffectBarRechargeTime( void ) { return 15.0; } + virtual int GetEffectBarAmmo( void ) { return TF_AMMO_GRENADES2; } + float GetProgress( void ) { return GetEffectBarProgress(); } + const char* GetEffectLabelText( void ) { return "#TF_Sapper"; } + virtual bool EffectMeterShouldFlash( void ); + +public: + // Builder Data + int m_iBuildState; + unsigned int m_iObjectType; + unsigned int m_iObjectMode; + float m_flStartTime; + float m_flTotalTime; + + CHudTexture *m_pSelectionTextureActive; + CHudTexture *m_pSelectionTextureInactive; + + // Our placement model + CHandle<C_BaseObject> m_hObjectBeingBuilt; + + int m_iValidBuildPoseParam; + + // Wheatly Data + float m_flWheatleyTalkingUntil; + +private: + C_TFWeaponBuilder( const C_TFWeaponBuilder & ); + bool m_aBuildableObjectTypes[OBJ_LAST]; +}; + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class C_TFWeaponSapper : public C_TFWeaponBuilder, public ITFChargeUpWeapon +{ + DECLARE_CLASS( C_TFWeaponSapper, C_TFWeaponBuilder ); +public: + DECLARE_NETWORKCLASS(); + //DECLARE_PREDICTABLE(); + + // ITFChargeUpWeapon + virtual bool CanCharge( void ) { return GetChargeMaxTime() > 0; } + virtual float GetChargeBeginTime( void ) { return m_flChargeBeginTime; } + virtual float GetChargeMaxTime( void ) { float flChargeTime = 0; CALL_ATTRIB_HOOK_FLOAT( flChargeTime, sapper_deploy_time ); return flChargeTime; }; + + virtual const char *GetViewModel( int iViewModel ) const; + virtual const char *GetWorldModel( void ) const; + + bool IsWheatleyTalking( void ) { return gpGlobals->curtime <= m_flWheatleyTalkingUntil; } + + CNetworkVar( float, m_flChargeBeginTime ); +}; + + +#endif // C_TF_WEAPON_BUILDER_H |