void CBasePlayerAnimState::ComputeMainSequence() { VPROF( "CBasePlayerAnimState::ComputeMainSequence" ); CBaseAnimatingOverlay *pPlayer = GetOuter(); // Have our class or the mod-specific class determine what the current activity is. Activity idealActivity = CalcMainActivity(); #ifdef CLIENT_DLL Activity oldActivity = m_eCurrentMainSequenceActivity; #endif // Store our current activity so the aim and fire layers know what to do. m_eCurrentMainSequenceActivity = idealActivity; // Export to our outer class.. int animDesired = SelectWeightedSequence( TranslateActivity(idealActivity) ); if ( !ShouldResetMainSequence( pPlayer->GetSequence(), animDesired ) ) return; if ( animDesired < 0 ) animDesired = 0; pPlayer->ResetSequence( animDesired ); #ifdef CLIENT_DLL if ( ShouldResetGroundSpeed( oldActivity, idealActivity ) ) { ResetGroundSpeed(); } #endif }
void CBasePlayerAnimState::ComputeMainSequence() { VPROF( "CBasePlayerAnimState::ComputeMainSequence" ); CBaseAnimatingOverlay *pPlayer = GetOuter(); // Have our class or the mod-specific class determine what the current activity is. Activity idealActivity = CalcMainActivity(); #ifdef CLIENT_DLL Activity oldActivity = m_eCurrentMainSequenceActivity; #endif // Store our current activity so the aim and fire layers know what to do. m_eCurrentMainSequenceActivity = idealActivity; // Export to our outer class.. int animDesired = SelectWeightedSequence( TranslateActivity(idealActivity) ); #if !defined( HL1_CLIENT_DLL ) && !defined ( HL1_DLL ) if ( pPlayer->GetSequenceActivity( pPlayer->GetSequence() ) == pPlayer->GetSequenceActivity( animDesired ) ) return; #endif if ( animDesired < 0 ) animDesired = 0; pPlayer->ResetSequence( animDesired ); #ifdef CLIENT_DLL // If we went from idle to walk, reset the interpolation history. // Kind of hacky putting this here.. it might belong outside the base class. if ( (oldActivity == ACT_CROUCHIDLE || oldActivity == ACT_IDLE) && (idealActivity == ACT_WALK || idealActivity == ACT_RUN_CROUCH) ) { ResetGroundSpeed(); } #endif }