void CElectrifiedWire::Think() { if( gpGlobals->time - m_flLastSparkTime > 0.1 ) { m_flLastSparkTime = gpGlobals->time; if( m_uiNumUninsulatedSegments > 0 ) { for( size_t uiIndex = 0; uiIndex < m_uiNumUninsulatedSegments; ++uiIndex ) { if( ShouldDoEffect( m_iBodySparkFrequency ) ) { DoSpark( m_uiUninsulatedSegments[ uiIndex ], false ); } } } if( ShouldDoEffect( m_iTipSparkFrequency ) ) { DoSpark( GetNumSegments() - 1, true ); } if( ShouldDoEffect( m_iLightningFrequency ) ) DoLightning(); } BaseClass::Think(); }
void CBaseButton::ButtonSpark(void) { SetThink(&CBaseButton::ButtonSpark); pev->nextthink = gpGlobals->time + (0.1 + RANDOM_FLOAT(0, 1.5)); // spark again at random interval DoSpark(pev, pev->mins); }
//----------------------------------------------------------------------------- // Purpose: Think function that emits sparks at random intervals. //----------------------------------------------------------------------------- void CBaseButton::ButtonSpark ( void ) { SetThink ( &CBaseButton::ButtonSpark ); SetNextThink( gpGlobals->curtime + 0.1 + random->RandomFloat ( 0, 1.5 ) );// spark again at random interval DoSpark( this, WorldSpaceCenter(), 1, 1, true, vec3_origin ); }
//----------------------------------------------------------------------------- // Purpose: Emits sparks at random intervals. //----------------------------------------------------------------------------- void CEnvSpark::SparkThink(void) { SetNextThink( gpGlobals->curtime + 0.1 + random->RandomFloat(0, m_flDelay) ); Vector vecDir = vec3_origin; if ( FBitSet( m_spawnflags, SF_SPARK_DIRECTIONAL ) ) { AngleVectors( GetAbsAngles(), &vecDir ); } DoSpark( this, WorldSpaceCenter(), m_nMagnitude, m_nTrailLength, !( m_spawnflags & SF_SPARK_SILENT ), vecDir ); m_OnSpark.FireOutput( this, this ); if (FBitSet(m_spawnflags, SF_SPARK_GLOW)) { CPVSFilter filter( GetAbsOrigin() ); te->GlowSprite( filter, 0.0, &GetAbsOrigin(), m_nGlowSpriteIndex, 0.2, 1.5, 25 ); } }
void EXPORT CEnvSpark::SparkThink(void) { pev->nextthink = gpGlobals->time + 0.1 + RANDOM_FLOAT (0, m_flDelay); DoSpark( pev, pev->origin ); }
void CBaseButton::ButtonSpark(void) { SetThink(&CBaseButton::ButtonSpark); pev->nextthink = gpGlobals->time + (0.1 + RANDOM_FLOAT(0, 1.5)); DoSpark(pev, pev->mins); }