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.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#ifndef TF_WEAPON_BUFF_ITEM_H
#define TF_WEAPON_BUFF_ITEM_H
#ifdef _WIN32
#pragma once
#endif
#include "tf_weaponbase_melee.h"
#include "tf_item_wearable.h"
#include "GameEventListener.h"
#ifdef CLIENT_DLL
#include "c_tf_buff_banner.h"
#define CTFBuffItem C_TFBuffItem
class C_TFBuffBanner; #endif
//=============================================================================
//
// Buff item weapon class.
//
enum EBuffItemTypes { EBuffBanner = 1, EBattalion, EConcheror, EParachute,
NUM_BUFF_ITEM_TYPES = EParachute };
enum EParachuteStates { EParachuteDeployed, EParachuteDeployed_Idle, EParachuteRetracted, EParachuteRetracted_Idle, };
class CTFBuffItem : public CTFWeaponBaseMelee { public:
DECLARE_CLASS( CTFBuffItem, CTFWeaponBaseMelee ); DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE();
CTFBuffItem(); ~CTFBuffItem();
virtual int GetWeaponID( void ) const { return TF_WEAPON_BUFF_ITEM; }
virtual void Precache();
virtual void PrimaryAttack();
virtual void Equip( CBaseCombatCharacter *pOwner ) OVERRIDE; virtual void Detach( void ) OVERRIDE;
void FireGameEvent( IGameEvent* event ); virtual void CreateBanner();
virtual bool SendWeaponAnim( int iActivity );
void BlowHorn( void ); void RaiseFlag( void );
virtual bool Holster( CBaseCombatWeapon *pSwitchingTo );
virtual bool CanReload( void );
virtual int GetBuffType() { int iBuffType = 0; CALL_ATTRIB_HOOK_INT( iBuffType, set_buff_type ); return iBuffType; }
#ifdef CLIENT_DLL
void SetBanner( C_TFBuffBanner* pNewBanner ) { m_hBannerEntity.Set( pNewBanner ); } virtual void NotifyShouldTransmit( ShouldTransmitState_t state ); virtual void OnDataChanged( DataUpdateType_t updateType ); virtual void ClientThink( void ); #endif
virtual void WeaponReset( void );
float GetProgress( void ); bool IsFull( void ); // same as GetProgress() without the division by 100.0f
const char* GetEffectLabelText( void ) { return "#TF_RAGE"; } bool EffectMeterShouldFlash( void );
protected: #ifdef CLIENT_DLL
CHandle<C_TFBuffBanner> m_hBannerEntity; int m_iBuffType; #endif // CLIENT_DLL
private:
CTFBuffItem( const CTFBuffItem & ) {}
bool m_bPlayingHorn; };
#endif // TF_WEAPON_BUFF_ITEM_H
|