mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-12 03:39:10 +00:00
1
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose: PDA Weapon
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
#ifndef TF_WEAPON_INVIS_H
|
||||
#define TF_WEAPON_INVIS_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "tf_shareddefs.h"
|
||||
#include "tf_weaponbase.h"
|
||||
#include "tf_gamerules.h"
|
||||
|
||||
// Client specific.
|
||||
#if defined( CLIENT_DLL )
|
||||
#define CTFWeaponInvis C_TFWeaponInvis
|
||||
#endif
|
||||
|
||||
enum invis_weapontypes_t
|
||||
{
|
||||
INVIS_BASE = 0,
|
||||
INVIS_FEIGN_DEATH,
|
||||
INVIS_MOTION_CLOAK,
|
||||
};
|
||||
|
||||
class CTFWeaponInvis : public CTFWeaponBase
|
||||
{
|
||||
public:
|
||||
DECLARE_CLASS( CTFWeaponInvis, CTFWeaponBase );
|
||||
DECLARE_NETWORKCLASS();
|
||||
DECLARE_PREDICTABLE();
|
||||
|
||||
#if !defined( CLIENT_DLL )
|
||||
DECLARE_DATADESC();
|
||||
#endif
|
||||
|
||||
CTFWeaponInvis() {}
|
||||
|
||||
virtual void Spawn();
|
||||
virtual void OnActiveStateChanged( int iOldState );
|
||||
virtual void PrimaryAttack( void );
|
||||
virtual void SecondaryAttack();
|
||||
virtual bool Deploy( void );
|
||||
|
||||
virtual void HideThink( void );
|
||||
virtual bool Holster( CBaseCombatWeapon *pSwitchingTo );
|
||||
|
||||
virtual int GetWeaponID( void ) const { return TF_WEAPON_INVIS; }
|
||||
virtual bool ShouldDrawCrosshair( void ) { return false; }
|
||||
virtual bool HasPrimaryAmmo() { return true; }
|
||||
virtual bool CanBeSelected() { return true; }
|
||||
|
||||
virtual bool VisibleInWeaponSelection( void ) { return false; }
|
||||
|
||||
virtual bool ShouldShowControlPanels( void ) { return true; }
|
||||
|
||||
virtual void SetWeaponVisible( bool visible );
|
||||
|
||||
virtual void ItemBusyFrame( void );
|
||||
|
||||
int GetInvisType( void ) { int iMode = 0; CALL_ATTRIB_HOOK_INT( iMode, set_weapon_mode ); return iMode; };
|
||||
virtual bool HasFeignDeath( void ) { return (GetInvisType() == INVIS_FEIGN_DEATH); }
|
||||
virtual bool HasMotionCloak( void ) { return (GetInvisType() == INVIS_MOTION_CLOAK); }
|
||||
|
||||
virtual void SetFeignDeathState( bool bEnabled );
|
||||
virtual void SetCloakRates( void );
|
||||
|
||||
virtual bool ActivateInvisibilityWatch( void );
|
||||
virtual void CleanupInvisibilityWatch( void );
|
||||
|
||||
virtual bool AllowsAutoSwitchTo( void ) { return false; }
|
||||
virtual bool CanDeploy( void ) { return false; }
|
||||
|
||||
virtual const char *GetViewModel( int viewmodelindex ) const;
|
||||
|
||||
#ifndef CLIENT_DLL
|
||||
virtual void GetControlPanelInfo( int nPanelIndex, const char *&pPanelName );
|
||||
#endif
|
||||
|
||||
private:
|
||||
|
||||
CTFWeaponInvis( const CTFWeaponInvis & ) {}
|
||||
};
|
||||
|
||||
#endif // TF_WEAPON_INVIS_H
|
||||
Reference in New Issue
Block a user