You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
2.9 KiB
114 lines
2.9 KiB
//========= 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
|
|
|