diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/shared/tf/tf_weapon_grenade_normal.cpp | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/shared/tf/tf_weapon_grenade_normal.cpp')
| -rw-r--r-- | game/shared/tf/tf_weapon_grenade_normal.cpp | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/game/shared/tf/tf_weapon_grenade_normal.cpp b/game/shared/tf/tf_weapon_grenade_normal.cpp new file mode 100644 index 0000000..d8cc646 --- /dev/null +++ b/game/shared/tf/tf_weapon_grenade_normal.cpp @@ -0,0 +1,136 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: TF Normal Grenade. +// +//=============================================================================// +#include "cbase.h" +#include "tf_weaponbase.h" +#include "tf_gamerules.h" +#include "npcevent.h" +#include "engine/IEngineSound.h" +#include "tf_weapon_grenade_normal.h" + +// Server specific. +#ifdef GAME_DLL +#include "tf_player.h" +#include "items.h" +#include "tf_weaponbase_grenadeproj.h" +#include "soundent.h" +#include "KeyValues.h" +#endif + +#define GRENADE_TIMER 3.0f //Seconds + +//============================================================================= +// +// TF Normal Grenade tables. +// + +IMPLEMENT_NETWORKCLASS_ALIASED( TFGrenadeNormal, DT_TFGrenadeNormal ) + +BEGIN_NETWORK_TABLE( CTFGrenadeNormal, DT_TFGrenadeNormal ) +END_NETWORK_TABLE() + +BEGIN_PREDICTION_DATA( CTFGrenadeNormal ) +END_PREDICTION_DATA() + +LINK_ENTITY_TO_CLASS( tf_weapon_grenade_normal, CTFGrenadeNormal ); +PRECACHE_WEAPON_REGISTER( tf_weapon_grenade_normal ); + +//IMPLEMENT_ACTTABLE( CTFGrenadeNormal ); + +//============================================================================= +// +// TF Normal Grenade functions. +// + +// Server specific. +#ifdef GAME_DLL + +BEGIN_DATADESC( CTFGrenadeNormal ) +END_DATADESC() + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +CTFWeaponBaseGrenadeProj *CTFGrenadeNormal::EmitGrenade( Vector vecSrc, QAngle vecAngles, Vector vecVel, + AngularImpulse angImpulse, CBasePlayer *pPlayer, float flTime, int iflags ) +{ + CTFPlayer *pTFPlayer = ToTFPlayer( pPlayer ); + if ( pTFPlayer ) + { + pTFPlayer->RemoveDisguise(); + } + + return CTFGrenadeNormalProjectile::Create( vecSrc, vecAngles, vecVel, angImpulse, + pPlayer, GetTFWpnData(), flTime ); +} + +#endif + +//============================================================================= +// +// TF Normal Grenade Projectile functions (Server specific). +// +#ifdef GAME_DLL + +#define GRENADE_MODEL "models/Weapons/w_models/w_grenade_frag.mdl" +//#define GRENADE_MODEL "models/weapons/w_grenade_normal.mdl" + +LINK_ENTITY_TO_CLASS( tf_weapon_grenade_normal_projectile, CTFGrenadeNormalProjectile ); +PRECACHE_WEAPON_REGISTER( tf_weapon_grenade_normal_projectile ); + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +CTFGrenadeNormalProjectile* CTFGrenadeNormalProjectile::Create( const Vector &position, const QAngle &angles, + const Vector &velocity, const AngularImpulse &angVelocity, + CBaseCombatCharacter *pOwner, const CTFWeaponInfo &weaponInfo, float timer, int iFlags ) +{ + CTFGrenadeNormalProjectile *pGrenade = static_cast<CTFGrenadeNormalProjectile*>( CTFWeaponBaseGrenadeProj::Create( "tf_weapon_grenade_normal_projectile", position, angles, velocity, angVelocity, pOwner, weaponInfo, timer, iFlags ) ); + return pGrenade; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CTFGrenadeNormalProjectile::Spawn() +{ + SetModel( GRENADE_MODEL ); + + BaseClass::Spawn(); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CTFGrenadeNormalProjectile::Precache() +{ + PrecacheModel( GRENADE_MODEL ); + + BaseClass::Precache(); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CTFGrenadeNormalProjectile::BounceSound( void ) +{ + EmitSound( "BaseGrenade.BounceSound" ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CTFGrenadeNormalProjectile::Detonate() +{ + if ( ShouldNotDetonate() ) + { + RemoveGrenade(); + return; + } + + BaseClass::Detonate(); +} + +#endif |