void CNPC_HL1Barney::SUB_LVFadeOut( void ) { if( VPhysicsGetObject() ) { if( VPhysicsGetObject()->GetGameFlags() & FVPHYSICS_PLAYER_HELD || GetEFlags() & EFL_IS_BEING_LIFTED_BY_BARNACLE ) { // Try again in a few seconds. SetNextThink( gpGlobals->curtime + 5 ); SetRenderColorA( 255 ); return; } } float dt = gpGlobals->frametime; if ( dt > 0.1f ) { dt = 0.1f; } m_nRenderMode = kRenderTransTexture; int speed = max(3,256*dt); // fade out over 3 seconds SetRenderColorA( UTIL_Approach( 0, m_clrRender->a, speed ) ); NetworkStateChanged(); if ( m_clrRender->a == 0 ) { UTIL_Remove(this); } else { SetNextThink( gpGlobals->curtime ); } }
//----------------------------------------------------------------------------- // Purpose: Creates and insterts a new keyframe into the sequence // Input : newPos - // newAngles - // Output : CPathKeyFrame //----------------------------------------------------------------------------- CPathKeyFrame *CPathKeyFrame::InsertNewKey( Vector newPos, QAngle newAngles ) { CPathKeyFrame *newKey = CREATE_ENTITY( CPathKeyFrame, "keyframe_track" ); // copy data across newKey->SetKeyAngles( newAngles ); newKey->m_Origin = newPos; newKey->m_flSpeed = m_flSpeed; newKey->SetEFlags( GetEFlags() ); if ( m_iParent != NULL_STRING ) { newKey->SetParent( m_iParent, NULL ); } // link forward newKey->m_pNextKey = m_pNextKey; m_pNextKey->m_pPrevKey = newKey; // link back m_pNextKey = newKey; newKey->m_pPrevKey = this; // calculate new times CalculateFrameDuration(); newKey->CalculateFrameDuration(); return newKey; }
bool CGib::SUB_AllowedToFade( void ) { if( VPhysicsGetObject() ) { if( VPhysicsGetObject()->GetGameFlags() & FVPHYSICS_PLAYER_HELD || GetEFlags() & EFL_IS_BEING_LIFTED_BY_BARNACLE ) return false; } CBasePlayer *pPlayer = ( AI_IsSinglePlayer() ) ? UTIL_GetLocalPlayer() : NULL; if ( pPlayer && pPlayer->FInViewCone( this ) && m_bForceRemove == false ) { return false; } return true; }