summaryrefslogtreecommitdiff
path: root/game/server/dod/dod_stickgrenade.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'game/server/dod/dod_stickgrenade.cpp')
-rw-r--r--game/server/dod/dod_stickgrenade.cpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/game/server/dod/dod_stickgrenade.cpp b/game/server/dod/dod_stickgrenade.cpp
new file mode 100644
index 0000000..0b12100
--- /dev/null
+++ b/game/server/dod/dod_stickgrenade.cpp
@@ -0,0 +1,78 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#include "cbase.h"
+#include "dod_stickgrenade.h"
+#include "dod_shareddefs.h"
+
+#define GRENADE_MODEL "models/Weapons/w_stick.mdl"
+
+LINK_ENTITY_TO_CLASS( grenade_frag_ger, CDODStickGrenade );
+PRECACHE_WEAPON_REGISTER( grenade_frag_ger );
+
+CDODStickGrenade* CDODStickGrenade::Create(
+ const Vector &position,
+ const QAngle &angles,
+ const Vector &velocity,
+ const AngularImpulse &angVelocity,
+ CBaseCombatCharacter *pOwner,
+ float timer,
+ DODWeaponID weaponID )
+{
+ CDODStickGrenade *pGrenade = (CDODStickGrenade*)CBaseEntity::Create( "grenade_frag_ger", position, angles, pOwner );
+
+ Assert( pGrenade );
+
+ if( !pGrenade )
+ return NULL;
+
+ IPhysicsObject *pPhysicsObject = pGrenade->VPhysicsGetObject();
+ if ( pPhysicsObject )
+ {
+ pPhysicsObject->AddVelocity( &velocity, &angVelocity );
+ }
+
+ pGrenade->SetupInitialTransmittedGrenadeVelocity( velocity );
+
+ // Who threw this grenade
+ pGrenade->SetThrower( pOwner );
+
+ pGrenade->ChangeTeam( pOwner->GetTeamNumber() );
+
+ // How long until we explode
+ pGrenade->SetDetonateTimerLength( timer );
+
+ // Save the weapon id for stats purposes
+ pGrenade->m_EmitterWeaponID = weaponID;
+
+ return pGrenade;
+}
+
+void CDODStickGrenade::Spawn()
+{
+ SetModel( GRENADE_MODEL );
+ BaseClass::Spawn();
+}
+
+void CDODStickGrenade::Precache()
+{
+ PrecacheModel( GRENADE_MODEL );
+
+ PrecacheScriptSound( "HEGrenade.Bounce" );
+
+ BaseClass::Precache();
+}
+
+void CDODStickGrenade::BounceSound( void )
+{
+ EmitSound( "HEGrenade.Bounce" );
+}
+
+//Pass the classname of the exploding version of this grenade.
+char *CDODStickGrenade::GetExplodingClassname()
+{
+ return "weapon_frag_ger_live";
+} \ No newline at end of file