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.

60 lines
1.3 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. //=============================================================================
  6. #ifndef TF_WEAPON_SYRINGEGUN_H
  7. #define TF_WEAPON_SYRINGEGUN_H
  8. #ifdef _WIN32
  9. #pragma once
  10. #endif
  11. #include "tf_weaponbase_gun.h"
  12. // Client specific.
  13. #ifdef CLIENT_DLL
  14. #define CTFSyringeGun C_TFSyringeGun
  15. #endif
  16. enum syringe_weapontypes_t
  17. {
  18. SYRINGE_DEFAULT = 0,
  19. SYRINGE_UBER_SCALES_SPEED,
  20. };
  21. //=============================================================================
  22. //
  23. // TF Weapon Syringe gun.
  24. //
  25. class CTFSyringeGun : public CTFWeaponBaseGun
  26. {
  27. public:
  28. DECLARE_CLASS( CTFSyringeGun, CTFWeaponBaseGun );
  29. DECLARE_NETWORKCLASS();
  30. DECLARE_PREDICTABLE();
  31. // Server specific.
  32. #ifdef GAME_DLL
  33. DECLARE_DATADESC();
  34. #endif
  35. CTFSyringeGun() {}
  36. ~CTFSyringeGun() {}
  37. virtual void Precache();
  38. virtual int GetWeaponID( void ) const { return TF_WEAPON_SYRINGEGUN_MEDIC; }
  39. int GetSyringeType( void ) const { int iMode = 0; CALL_ATTRIB_HOOK_INT( iMode, set_weapon_mode ); return iMode; };
  40. virtual bool Deploy( void );
  41. virtual bool Holster( CBaseCombatWeapon *pSwitchingTo );
  42. virtual void RemoveProjectileAmmo( CTFPlayer *pPlayer );
  43. virtual bool HasPrimaryAmmo( void );
  44. private:
  45. CTFSyringeGun( const CTFSyringeGun & ) {}
  46. };
  47. #endif // TF_WEAPON_SYRINGEGUN_H