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: PDA Weapon
//
//=============================================================================
#ifndef TF_WEAPON_PDA_H
#define TF_WEAPON_PDA_H
#ifdef _WIN32
#pragma once
#endif
#include "tf_shareddefs.h"
#include "tf_weaponbase.h"
#ifdef CLIENT_DLL
#include "tf_hud_base_build_menu.h"
#endif
// Client specific.
#if defined( CLIENT_DLL )
#define CTFWeaponPDA C_TFWeaponPDA
#define CTFWeaponPDA_Engineer_Build C_TFWeaponPDA_Engineer_Build
#define CTFWeaponPDA_Engineer_Destroy C_TFWeaponPDA_Engineer_Destroy
#define CTFWeaponPDA_Spy C_TFWeaponPDA_Spy
#define CTFWeaponPDA_Spy_Build C_TFWeaponPDA_Spy_Build
#define CTFWeaponPDAExpansion_Dispenser C_TFWeaponPDAExpansion_Dispenser
#define CTFWeaponPDAExpansion_Teleporter C_TFWeaponPDAExpansion_Teleporter
#endif
class CTFWeaponPDA : public CTFWeaponBase { public: DECLARE_CLASS( CTFWeaponPDA, CTFWeaponBase ); DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE();
#if !defined( CLIENT_DLL )
DECLARE_DATADESC(); #endif
CTFWeaponPDA();
virtual void Spawn();
#if !defined( CLIENT_DLL )
virtual void Precache(); virtual void GetControlPanelInfo( int nPanelIndex, const char *&pPanelName ); #else
virtual float CalcViewmodelBob( void ); virtual CHudBaseBuildMenu *GetBuildMenu() const { return NULL; } #endif
virtual bool ShouldShowControlPanels( void );
virtual void PrimaryAttack(); virtual void SecondaryAttack(); virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA; } virtual bool ShouldDrawCrosshair( void ) { return false; } virtual bool HasPrimaryAmmo() { return true; } virtual bool CanBeSelected() { return true; } #ifdef CLIENT_DLL
virtual void OnDataChanged( DataUpdateType_t type ) OVERRIDE; virtual void UpdateOnRemove() OVERRIDE; #endif
virtual const char *GetPanelName() { return "pda_panel"; }
public: CTFWeaponInfo *m_pWeaponInfo;
private: #ifdef CLIENT_DLL
void HideBuildMenu() const; #endif
CTFWeaponPDA( const CTFWeaponPDA & ) {} };
class CTFWeaponPDA_Engineer_Build : public CTFWeaponPDA { public: DECLARE_CLASS( CTFWeaponPDA_Engineer_Build, CTFWeaponPDA ); DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE();
virtual const char *GetPanelName() { return ""; } virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA_ENGINEER_BUILD; } #ifdef CLIENT_DLL
virtual CHudBaseBuildMenu *GetBuildMenu() const OVERRIDE; #endif
};
#ifdef CLIENT_DLL
extern ConVar tf_build_menu_controller_mode;
#endif
class CTFWeaponPDA_Engineer_Destroy : public CTFWeaponPDA { public: DECLARE_CLASS( CTFWeaponPDA_Engineer_Destroy, CTFWeaponPDA ); DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE();
virtual const char *GetPanelName() { return ""; } virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA_ENGINEER_DESTROY; } #ifdef CLIENT_DLL
virtual CHudBaseBuildMenu *GetBuildMenu() const OVERRIDE; #endif
virtual bool VisibleInWeaponSelection( void ); };
class CTFWeaponPDA_Spy : public CTFWeaponPDA { public: DECLARE_CLASS( CTFWeaponPDA_Spy, CTFWeaponPDA ); DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE();
virtual const char *GetPanelName() { return ""; } virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA_SPY; } #ifdef CLIENT_DLL
virtual CHudBaseBuildMenu *GetBuildMenu() const OVERRIDE; virtual bool Deploy( void ); #endif
virtual bool CanBeSelected( void ) OVERRIDE; virtual bool VisibleInWeaponSelection( void ) OVERRIDE;
virtual void ItemPreFrame( void ); // called each frame by the player PreThink
virtual void ItemBusyFrame( void ); // called each frame by the player PostThink
virtual void ItemHolsterFrame( void ); // called each frame by the player PreThink, if the weapon is holstered
void CheckDisguiseTimer( void ); void ProcessDisguiseImpulse( void ); };
// ********************************************************************************************
// PDA Expansion Slots
class CTFWeaponPDAExpansion_Dispenser : public CTFWearable { DECLARE_CLASS( CTFWeaponPDAExpansion_Dispenser, CTFWearable );
public: DECLARE_NETWORKCLASS(); DECLARE_DATADESC();
virtual void Equip( CBasePlayer *pOwner ); virtual void UnEquip( CBasePlayer *pOwner ); };
class CTFWeaponPDAExpansion_Teleporter : public CTFWearable { DECLARE_CLASS( CTFWeaponPDAExpansion_Teleporter, CTFWearable );
public: DECLARE_NETWORKCLASS(); DECLARE_DATADESC();
virtual void Equip( CBasePlayer *pOwner ); virtual void UnEquip( CBasePlayer *pOwner ); };
#ifdef STAGING_ONLY
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
class CTFWeaponPDA_Spy_Build : public CTFWeaponPDA { public: DECLARE_CLASS( CTFWeaponPDA_Spy_Build, CTFWeaponPDA ); DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE();
virtual bool CanDeploy( void ) OVERRIDE; virtual const char *GetPanelName() { return ""; } virtual int GetWeaponID( void ) const { return TF_WEAPON_PDA_SPY_BUILD; } virtual bool VisibleInWeaponSelection( void ) OVERRIDE; #ifdef CLIENT_DLL
virtual CHudBaseBuildMenu *GetBuildMenu() const OVERRIDE; #endif
float GetProgress( void ); int GetCount( void ); const char* GetEffectLabelText( void ) { return "#TF_Traps"; } }; #endif
#endif // TF_WEAPON_PDA_H
|