blob: d0123ba093834ceaead7fa3fc0779135f448f7c4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "basegrenade_shared.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
extern ConVar sk_plr_dmg_grenade;
// ==========================================================================================
class CBaseGrenadeContact : public CBaseGrenade
{
DECLARE_CLASS( CBaseGrenadeContact, CBaseGrenade );
public:
void Spawn( void );
void Precache( void );
};
LINK_ENTITY_TO_CLASS( npc_contactgrenade, CBaseGrenadeContact );
void CBaseGrenadeContact::Spawn( void )
{
// point sized, solid, bouncing
SetMoveType( MOVETYPE_FLYGRAVITY, MOVECOLLIDE_FLY_BOUNCE );
SetSolid( SOLID_BBOX );
SetCollisionGroup( COLLISION_GROUP_PROJECTILE );
SetModel( "models/weapons/w_grenade.mdl" ); // BUG: wrong model
UTIL_SetSize(this, vec3_origin, vec3_origin);
// contact grenades arc lower
SetGravity( UTIL_ScaleForGravity( 400 ) ); // use a lower gravity for grenades to make them easier to see
QAngle angles;
VectorAngles(GetAbsVelocity(), angles);
SetLocalAngles( angles );
// make NPCs afaid of it while in the air
SetThink( &CBaseGrenadeContact::DangerSoundThink );
SetNextThink( gpGlobals->curtime );
// Tumble in air
QAngle vecAngVelocity( random->RandomFloat ( -100, -500 ), 0, 0 );
SetLocalAngularVelocity( vecAngVelocity );
// Explode on contact
SetTouch( &CBaseGrenadeContact::ExplodeTouch );
m_flDamage = sk_plr_dmg_grenade.GetFloat();
// Allow player to blow this puppy up in the air
m_takedamage = DAMAGE_YES;
m_iszBounceSound = NULL_STRING;
}
void CBaseGrenadeContact::Precache( void )
{
BaseClass::Precache( );
PrecacheModel("models/weapons/w_grenade.mdl");
}
|