//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void C_BaseGlowAnimating::OnDataChanged( DataUpdateType_t updateType ) { BaseClass::OnDataChanged( updateType ); if ( m_bOldGlowEnabled != m_bGlowEnabled ) { UpdateGlowEffect(); } }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void C_BaseCombatCharacter::OnDataChanged( DataUpdateType_t updateType ) { BaseClass::OnDataChanged( updateType ); #ifdef GLOWS_ENABLE if ( m_bOldGlowEnabled != m_bGlowEnabled ) { UpdateGlowEffect(); } #endif // GLOWS_ENABLE }
void C_WeaponSpawner::ClientThink() { m_qAngle.y += 90 * gpGlobals->frametime; if ( m_qAngle.y >= 360 ) m_qAngle.y -= 360; SetAbsAngles( m_qAngle ); C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer(); bool bShouldGlow = false; bool bTouchingPlayer = false; if ( pPlayer ) { Vector vecPlayerOrigin = pPlayer->GetAbsOrigin(); Vector vecPlayerMins = vecPlayerOrigin + pPlayer->GetPlayerMins(); Vector vecPlayerMaxs = vecPlayerOrigin + pPlayer->GetPlayerMaxs(); bTouchingPlayer = IsBoxIntersectingBox( GetAbsOrigin() + WorldAlignMins(), GetAbsOrigin() + WorldAlignMaxs(), vecPlayerMins, vecPlayerMaxs ); // Disable the outline if the weapon has been picked up. if ( !m_bRespawning && !m_bDisabled ) { // Temp crutch for Occluded\Unoccluded glow parameters not working. trace_t tr; UTIL_TraceLine( GetAbsOrigin(), pPlayer->EyePosition(), MASK_OPAQUE, this, COLLISION_GROUP_NONE, &tr ); if ( tr.fraction == 1.0f ) { bShouldGlow = true; } } } if ( m_bShouldGlow != bShouldGlow || m_bTouchingPlayer != bTouchingPlayer ) { m_bShouldGlow = bShouldGlow; m_bTouchingPlayer = bTouchingPlayer; UpdateGlowEffect(); } SetNextClientThink( CLIENT_THINK_ALWAYS ); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void C_TeamTrainWatcher::OnDataChanged( DataUpdateType_t updateType ) { BaseClass::OnDataChanged( updateType ); if ( updateType == DATA_UPDATE_CREATED ) { SetNextClientThink( CLIENT_THINK_ALWAYS ); } if ( m_iOldTrainSpeedLevel != m_iTrainSpeedLevel || m_nOldNumCappers != m_nNumCappers ) { IGameEvent *event = gameeventmanager->CreateEvent( "escort_speed" ); if ( event ) { event->SetInt( "team", GetTeamNumber() ); event->SetInt( "speed", m_iTrainSpeedLevel ); event->SetInt( "players", m_nNumCappers ); gameeventmanager->FireEventClientSide( event ); } } if ( m_flOldProgress != m_flTotalProgress ) { IGameEvent *event = gameeventmanager->CreateEvent( "escort_progress" ); if ( event ) { event->SetInt( "team", GetTeamNumber() ); event->SetFloat( "progress", m_flTotalProgress ); if ( m_flOldProgress <= -1 ) { event->SetBool( "reset", true ); } gameeventmanager->FireEventClientSide( event ); } // check to see if the train is now on a hill if ( ObjectiveResource() ) { int nNumHills = ObjectiveResource()->GetNumNodeHillData( GetTeamNumber() ); if ( nNumHills > 0 ) { float flStart = 0, flEnd = 0; for ( int i = 0 ; i < nNumHills ; i++ ) { ObjectiveResource()->GetHillData( GetTeamNumber(), i, flStart, flEnd ); bool state = ( m_flTotalProgress >= flStart && m_flTotalProgress <= flEnd ); ObjectiveResource()->SetTrainOnHill( GetTeamNumber(), i, state ); } } } } if ( m_flOldRecedeTime != m_flRecedeTime ) { IGameEvent *event = gameeventmanager->CreateEvent( "escort_recede" ); if ( event ) { event->SetInt( "team", GetTeamNumber() ); event->SetFloat( "recedetime", m_flRecedeTime ); gameeventmanager->FireEventClientSide( event ); } } #ifdef GLOWS_ENABLE if ( m_hOldGlowEnt != m_hGlowEnt ) { UpdateGlowEffect(); } #endif // GLOWS_ENABLE }