summaryrefslogtreecommitdiff
path: root/game/server/hl2/grenade_spit.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/server/hl2/grenade_spit.h')
-rw-r--r--game/server/hl2/grenade_spit.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/game/server/hl2/grenade_spit.h b/game/server/hl2/grenade_spit.h
new file mode 100644
index 0000000..562b852
--- /dev/null
+++ b/game/server/hl2/grenade_spit.h
@@ -0,0 +1,58 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Projectile shot by bullsquid
+//
+// $Workfile: $
+// $Date: $
+//
+//-----------------------------------------------------------------------------
+// $Log: $
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef GRENADESPIT_H
+#define GRENADESPIT_H
+
+#include "basegrenade_shared.h"
+
+class CParticleSystem;
+
+enum SpitSize_e
+{
+ SPIT_SMALL,
+ SPIT_MEDIUM,
+ SPIT_LARGE,
+};
+
+#define SPIT_GRAVITY 600
+
+class CGrenadeSpit : public CBaseGrenade
+{
+ DECLARE_CLASS( CGrenadeSpit, CBaseGrenade );
+
+public:
+ CGrenadeSpit( void );
+
+ virtual void Spawn( void );
+ virtual void Precache( void );
+ virtual void Event_Killed( const CTakeDamageInfo &info );
+
+ virtual unsigned int PhysicsSolidMaskForEntity( void ) const { return ( BaseClass::PhysicsSolidMaskForEntity() | CONTENTS_WATER ); }
+
+ void GrenadeSpitTouch( CBaseEntity *pOther );
+ void SetSpitSize( int nSize );
+ void Detonate( void );
+ void Think( void );
+
+private:
+ DECLARE_DATADESC();
+
+ void InitHissSound( void );
+
+ CHandle< CParticleSystem > m_hSpitEffect;
+ CSoundPatch *m_pHissSound;
+ bool m_bPlaySound;
+};
+
+#endif //GRENADESPIT_H