void CWeaponImmolator::ImmolationDamage( const CTakeDamageInfo &info, const Vector &vecSrcIn, float flRadius, int iClassIgnore ) { CBaseEntity *pEntity = NULL; trace_t tr; Vector vecSpot; Vector vecSrc = vecSrcIn; // iterate on all entities in the vicinity. for ( CEntitySphereQuery sphere( vecSrc, flRadius ); pEntity = sphere.GetCurrentEntity(); sphere.NextEntity() ) { CBaseCombatCharacter *pBCC; pBCC = pEntity->MyCombatCharacterPointer(); if ( pBCC && !pBCC->IsOnFire() ) { // UNDONE: this should check a damage mask, not an ignore if ( iClassIgnore != CLASS_NONE && pEntity->Classify() == iClassIgnore ) { continue; } if( pEntity == GetOwner() ) { continue; } pBCC->Ignite( random->RandomFloat( 15, 20 ) ); } } }