//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #include "cbase.h" #include "util.h" #include "weapon_tfc_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 // ----------------------------------------------------------------------------- // // CTFCNailgun tables. // ----------------------------------------------------------------------------- // IMPLEMENT_NETWORKCLASS_ALIASED( TFCNailgun, DT_WeaponNailgun ) BEGIN_NETWORK_TABLE( CTFCNailgun, DT_WeaponNailgun ) END_NETWORK_TABLE() BEGIN_PREDICTION_DATA( CTFCNailgun ) END_PREDICTION_DATA() LINK_ENTITY_TO_CLASS( weapon_nailgun, CTFCNailgun ); PRECACHE_WEAPON_REGISTER( weapon_nailgun ); #ifndef CLIENT_DLL BEGIN_DATADESC( CTFCNailgun ) END_DATADESC() #endif // ----------------------------------------------------------------------------- // // CTFCNailgun implementation. // ----------------------------------------------------------------------------- // CTFCNailgun::CTFCNailgun() { } TFCWeaponID CTFCNailgun::GetWeaponID() const { return WEAPON_NAILGUN; } void CTFCNailgun::PrimaryAttack() { CTFCPlayer *pOwner = GetPlayerOwner(); if ( !pOwner ) return; Assert( HasPrimaryAmmo() ); WeaponSound( SINGLE ); SendWeaponAnim( ACT_VM_PRIMARYATTACK ); pOwner->DoAnimationEvent( PLAYERANIMEVENT_FIRE_GUN ); // Fire the nail #ifdef GAME_DLL Vector vecSrc = pOwner->Weapon_ShootPosition(); CTFNailgunNail *pNail = CTFNailgunNail::CreateNail( false, vecSrc, pOwner->EyeAngles(), pOwner, this, true ); pNail=pNail; // avoid compiler warning.. #endif pOwner->RemoveAmmo( 1, GetPrimaryAmmoType() ); // Setup fire delays m_flNextPrimaryAttack = gpGlobals->curtime + 0.1; m_flTimeWeaponIdle = gpGlobals->curtime + 10; } void CTFCNailgun::SecondaryAttack() { return; } #ifdef CLIENT_DLL // ------------------------------------------------------------------------------------------------ // // ------------------------------------------------------------------------------------------------ // // CLIENT DLL SPECIFIC CODE // ------------------------------------------------------------------------------------------------ // // ------------------------------------------------------------------------------------------------ // #else // ------------------------------------------------------------------------------------------------ // // ------------------------------------------------------------------------------------------------ // // GAME DLL SPECIFIC CODE // ------------------------------------------------------------------------------------------------ // // ------------------------------------------------------------------------------------------------ // #endif