//========= Copyright 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: Base class for simple projectiles // // $Workfile: $ // $Date: $ // $NoKeywords: $ //=============================================================================// #include "cbase.h" #include "cbasespriteprojectile.h" // memdbgon must be the last include file in a .cpp file!!! #include "tier0/memdbgon.h" LINK_ENTITY_TO_CLASS( baseprojectile, CBaseSpriteProjectile ); //--------------------------------------------------------- // Save/Restore //--------------------------------------------------------- BEGIN_DATADESC( CBaseSpriteProjectile ) DEFINE_FIELD( m_iDmg, FIELD_INTEGER ), DEFINE_FIELD( m_iDmgType, FIELD_INTEGER ), END_DATADESC() //--------------------------------------------------------- //--------------------------------------------------------- void CBaseSpriteProjectile::Spawn( char *pszModel, const Vector &vecOrigin, const Vector &vecVelocity, edict_t *pOwner, MoveType_t iMovetype, MoveCollide_t nMoveCollide, int iDamage, int iDamageType ) { Precache(); SetSolid( SOLID_BBOX ); SetModel( pszModel ); UTIL_SetSize( this, vec3_origin, vec3_origin ); m_iDmg = iDamage; m_iDmgType = iDamageType; SetMoveType( iMovetype, nMoveCollide ); UTIL_SetOrigin( this, vecOrigin ); SetAbsVelocity( vecVelocity ); SetOwnerEntity( Instance( pOwner ) ); } //--------------------------------------------------------- //--------------------------------------------------------- void CBaseSpriteProjectile::Touch( CBaseEntity *pOther ) { CBaseEntity *pOwner; pOwner = GetOwnerEntity(); if( !pOwner ) { pOwner = this; } trace_t tr; tr = BaseClass::GetTouchTrace( ); CTakeDamageInfo info( this, pOwner, m_iDmg, m_iDmgType ); GuessDamageForce( &info, (tr.endpos - tr.startpos), tr.endpos ); pOther->TakeDamage( info ); UTIL_Remove( this ); }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 5821 | Knut Wikstrom |
Added Valve Source code. This is NOT to be commited to other than new code from Valve. |