//----------------------------------------------------------------------------- // Purpose: Creates a flame and attaches it to a target entity. // Input : pTarget - //----------------------------------------------------------------------------- CEntityFlame *CEntityFlame::Create( CBaseEntity *pTarget, float flLifetime, float flSize /*= 0.0f*/, bool bUseHitboxes /*= true*/ ) { CEntityFlame *pFlame = (CEntityFlame *)CreateEntityByName( "entityflame" ); if ( pFlame == NULL ) return NULL; if ( flSize <= 0.0f ) { float xSize = pTarget->CollisionProp()->OBBMaxs().x - pTarget->CollisionProp()->OBBMins().x; float ySize = pTarget->CollisionProp()->OBBMaxs().y - pTarget->CollisionProp()->OBBMins().y; flSize = ( xSize + ySize ) * 0.5f; if ( flSize < 16.0f ) { flSize = 16.0f; } } if ( flLifetime <= 0.0f ) { flLifetime = 2.0f; } pFlame->m_flSize = flSize; pFlame->Spawn(); UTIL_SetOrigin( pFlame, pTarget->GetAbsOrigin() ); pFlame->AttachToEntity( pTarget ); pFlame->SetLifetime( flLifetime ); pFlame->Activate(); return pFlame; }
//----------------------------------------------------------------------------- // Purpose: Creates a flame and attaches it to a target entity. // Input : pTarget - //----------------------------------------------------------------------------- CEntityFlame *CEntityFlame::Create( CBaseEntity *pTarget, bool useHitboxes ) { CEntityFlame *pFlame = (CEntityFlame *) CreateEntityByName( "entityflame" ); if ( pFlame == NULL ) return NULL; float xSize = pTarget->CollisionProp()->OBBMaxs().x - pTarget->CollisionProp()->OBBMins().x; float ySize = pTarget->CollisionProp()->OBBMaxs().y - pTarget->CollisionProp()->OBBMins().y; float size = ( xSize + ySize ) * 0.5f; if ( size < 16.0f ) { size = 16.0f; } UTIL_SetOrigin( pFlame, pTarget->GetAbsOrigin() ); pFlame->m_flSize = size; pFlame->SetThink( &CEntityFlame::FlameThink ); pFlame->SetNextThink( gpGlobals->curtime + 0.1f ); pFlame->AttachToEntity( pTarget ); pFlame->SetLifetime( 2.0f ); //Send to the client even though we don't have a model pFlame->AddEFlags( EFL_FORCE_CHECK_TRANSMIT ); pFlame->SetUseHitboxes( useHitboxes ); return pFlame; }
//----------------------------------------------------------------------------- // Purpose: Creates a flame and attaches it to a target entity. // Input : pTarget - //----------------------------------------------------------------------------- CEntityFlame *CEntityFlame::Create( CBaseEntity *pTarget ) { CEntityFlame *pFlame = (CEntityFlame *) CreateEntityByName( "entityflame" ); if ( pFlame == NULL ) return NULL; /*IPhysicsObject *pPhysicsObject = pTarget->VPhysicsGetObject(); if ( pPhysicsObject ) { pPhysicsObject-> }*/ float size = ( pTarget->WorldAlignMaxs().y - pTarget->WorldAlignMins().y ); if ( size < 8 ) size = 8; UTIL_SetOrigin( pFlame, pTarget->GetAbsOrigin() ); pFlame->m_flSize = size; pFlame->SetThink( &CEntityFlame::FlameThink ); pFlame->SetNextThink( gpGlobals->curtime + 0.1f ); pFlame->AttachToEntity( pTarget ); pFlame->SetLifetime( 2.0f ); //Send to the client even though we don't have a model pFlame->AddEFlags( EFL_FORCE_CHECK_TRANSMIT ); return pFlame; }