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.
85 lines
2.4 KiB
85 lines
2.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose: CTF GrenadePack.
|
|
//
|
|
//=============================================================================//
|
|
#include "cbase.h"
|
|
#include "items.h"
|
|
#include "tf_gamerules.h"
|
|
#include "tf_shareddefs.h"
|
|
#include "tf_player.h"
|
|
#include "tf_team.h"
|
|
#include "engine/IEngineSound.h"
|
|
#include "entity_grenadepack.h"
|
|
|
|
//=============================================================================
|
|
//
|
|
// CTF GrenadePack defines.
|
|
//
|
|
|
|
#define TF_GRENADEPACK_MODEL "models/items/grenade_pack.mdl"
|
|
#define TF_GRENADEPACK_PICKUP_SOUND "GrenadePack.Touch"
|
|
#define TF_GRENADEPACK_GRENADES1 4
|
|
#define TF_GRENADEPACK_GRENADES2 4
|
|
|
|
LINK_ENTITY_TO_CLASS( item_grenadepack, CGrenadePack );
|
|
|
|
//=============================================================================
|
|
//
|
|
// CTF GrenadePack functions.
|
|
//
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Spawn function for the grenadepack
|
|
//-----------------------------------------------------------------------------
|
|
void CGrenadePack::Spawn( void )
|
|
{
|
|
Precache();
|
|
SetModel( TF_GRENADEPACK_MODEL );
|
|
|
|
BaseClass::Spawn();
|
|
|
|
// Grenades have been removed, so remove ourself.
|
|
UTIL_Remove(this);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Precache function for the grenadepack
|
|
//-----------------------------------------------------------------------------
|
|
void CGrenadePack::Precache( void )
|
|
{
|
|
PrecacheModel( TF_GRENADEPACK_MODEL );
|
|
PrecacheScriptSound( TF_GRENADEPACK_PICKUP_SOUND );
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: MyTouch function for the grenadepack
|
|
//-----------------------------------------------------------------------------
|
|
bool CGrenadePack::MyTouch( CBasePlayer *pPlayer )
|
|
{
|
|
bool bSuccess = false;
|
|
|
|
if ( ValidTouch( pPlayer ) )
|
|
{
|
|
// try to give primary grenades
|
|
if ( pPlayer->GiveAmmo( TF_GRENADEPACK_GRENADES1, TF_AMMO_GRENADES1, true ) )
|
|
{
|
|
bSuccess = true;
|
|
}
|
|
|
|
// try to give secondary grenades
|
|
if ( pPlayer->GiveAmmo( TF_GRENADEPACK_GRENADES2, TF_AMMO_GRENADES2, true ) )
|
|
{
|
|
bSuccess = true;
|
|
}
|
|
|
|
// did we give them anything?
|
|
if ( bSuccess )
|
|
{
|
|
CSingleUserRecipientFilter filter( pPlayer );
|
|
EmitSound( filter, entindex(), TF_GRENADEPACK_PICKUP_SOUND );
|
|
}
|
|
}
|
|
|
|
return bSuccess;
|
|
}
|