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/tfc/weapon_tfc_super_nailgun.cpp | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/shared/tfc/weapon_tfc_super_nailgun.cpp')
| -rw-r--r-- | game/shared/tfc/weapon_tfc_super_nailgun.cpp | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/game/shared/tfc/weapon_tfc_super_nailgun.cpp b/game/shared/tfc/weapon_tfc_super_nailgun.cpp new file mode 100644 index 0000000..2060798 --- /dev/null +++ b/game/shared/tfc/weapon_tfc_super_nailgun.cpp @@ -0,0 +1,109 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#include "cbase.h" +#include "util.h" +#include "weapon_tfc_super_nailgun.h" +#include "decals.h" +#include "in_buttons.h" +#include "nailgun_nail.h" + +#if defined( CLIENT_DLL ) + #include "c_tfc_player.h" +#else + #include "tfc_player.h" +#endif + + +// ----------------------------------------------------------------------------- // +// CTFCSuperNailgun tables. +// ----------------------------------------------------------------------------- // + +IMPLEMENT_NETWORKCLASS_ALIASED( TFCSuperNailgun, DT_WeaponSuperNailgun ) + +BEGIN_NETWORK_TABLE( CTFCSuperNailgun, DT_WeaponSuperNailgun ) +END_NETWORK_TABLE() + +BEGIN_PREDICTION_DATA( CTFCSuperNailgun ) +END_PREDICTION_DATA() + +LINK_ENTITY_TO_CLASS( weapon_super_nailgun, CTFCSuperNailgun ); +PRECACHE_WEAPON_REGISTER( weapon_super_nailgun ); + +#ifndef CLIENT_DLL + + BEGIN_DATADESC( CTFCSuperNailgun ) + END_DATADESC() + +#endif + +// ----------------------------------------------------------------------------- // +// CTFCSuperNailgun implementation. +// ----------------------------------------------------------------------------- // + +CTFCSuperNailgun::CTFCSuperNailgun() +{ +} + + +TFCWeaponID CTFCSuperNailgun::GetWeaponID() const +{ + return WEAPON_SUPER_NAILGUN; +} + + +void CTFCSuperNailgun::PrimaryAttack() +{ + CTFCPlayer *pOwner = GetPlayerOwner(); + if ( !pOwner ) + return; + + Assert( HasPrimaryAmmo() ); + + // Effects. + WeaponSound( SINGLE ); + SendWeaponAnim( ACT_VM_PRIMARYATTACK ); + pOwner->DoAnimationEvent( PLAYERANIMEVENT_FIRE_GUN ); + + // Create the nail. + int iCurrentAmmoCount = pOwner->GetAmmoCount( GetPrimaryAmmoType() ); + +#ifdef GAME_DLL // TFCTODO: predict this + Vector vecSrc = pOwner->Weapon_ShootPosition(); + CTFNailgunNail *pNail = NULL; + if ( iCurrentAmmoCount < 4 ) + pNail = CTFNailgunNail::CreateNail( false, vecSrc, pOwner->EyeAngles(), pOwner, this, true ); + else + pNail = CTFNailgunNail::CreateSuperNail( vecSrc, pOwner->EyeAngles(), pOwner, this ); +#endif + + // Uses 2 nails if it can + pOwner->RemoveAmmo( MIN( 2, iCurrentAmmoCount ), GetPrimaryAmmoType() ); + + // Setup fire delays + m_flNextPrimaryAttack = gpGlobals->curtime + 0.1; + m_flTimeWeaponIdle = gpGlobals->curtime + 10; +} + + +#ifdef CLIENT_DLL + + // ------------------------------------------------------------------------------------------------ // + // ------------------------------------------------------------------------------------------------ // + // CLIENT DLL SPECIFIC CODE + // ------------------------------------------------------------------------------------------------ // + // ------------------------------------------------------------------------------------------------ // + + +#else + + // ------------------------------------------------------------------------------------------------ // + // ------------------------------------------------------------------------------------------------ // + // GAME DLL SPECIFIC CODE + // ------------------------------------------------------------------------------------------------ // + // ------------------------------------------------------------------------------------------------ // + +#endif |