Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//========= 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
|