diff options
| author | John Schoenick <[email protected]> | 2015-09-09 18:35:41 -0700 |
|---|---|---|
| committer | John Schoenick <[email protected]> | 2015-09-09 18:35:41 -0700 |
| commit | 0d8dceea4310fde5706b3ce1c70609d72a38efdf (patch) | |
| tree | c831ef32c2c801a5c5a80401736b52c7b5a528ec /mp/src/game/server/baseanimating.cpp | |
| parent | Updated the SDK with the latest code from the TF and HL2 branches. (diff) | |
| download | source-sdk-2013-master.tar.xz source-sdk-2013-master.zip | |
Diffstat (limited to 'mp/src/game/server/baseanimating.cpp')
| -rw-r--r-- | mp/src/game/server/baseanimating.cpp | 52 |
1 files changed, 31 insertions, 21 deletions
diff --git a/mp/src/game/server/baseanimating.cpp b/mp/src/game/server/baseanimating.cpp index 34bf6378..9999c496 100644 --- a/mp/src/game/server/baseanimating.cpp +++ b/mp/src/game/server/baseanimating.cpp @@ -470,7 +470,6 @@ void CBaseAnimating::StudioFrameAdvanceManual( float flInterval ) if ( !pStudioHdr ) return; - UpdateModelScale(); m_flAnimTime = gpGlobals->curtime; m_flPrevAnimTime = m_flAnimTime - flInterval; float flCycleRate = GetSequenceCycleRate( pStudioHdr, GetSequence() ) * m_flPlaybackRate; @@ -490,8 +489,6 @@ void CBaseAnimating::StudioFrameAdvance() return; } - UpdateModelScale(); - if ( !m_flPrevAnimTime ) { m_flPrevAnimTime = m_flAnimTime; @@ -631,7 +628,7 @@ void CBaseAnimating::InputSetModelScale( inputdata_t &inputdata ) int CBaseAnimating::SelectWeightedSequence ( Activity activity ) { Assert( activity != ACT_INVALID ); - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); return ::SelectWeightedSequence( GetModelPtr(), activity, GetSequence() ); } @@ -639,16 +636,23 @@ int CBaseAnimating::SelectWeightedSequence ( Activity activity ) int CBaseAnimating::SelectWeightedSequence ( Activity activity, int curSequence ) { Assert( activity != ACT_INVALID ); - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); return ::SelectWeightedSequence( GetModelPtr(), activity, curSequence ); } +int CBaseAnimating::SelectWeightedSequenceFromModifiers( Activity activity, CUtlSymbol *pActivityModifiers, int iModifierCount ) +{ + Assert( activity != ACT_INVALID ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); + return GetModelPtr()->SelectWeightedSequenceFromModifiers( activity, pActivityModifiers, iModifierCount ); +} + //========================================================= // ResetActivityIndexes //========================================================= void CBaseAnimating::ResetActivityIndexes ( void ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); ::ResetActivityIndexes( GetModelPtr() ); } @@ -657,7 +661,7 @@ void CBaseAnimating::ResetActivityIndexes ( void ) //========================================================= void CBaseAnimating::ResetEventIndexes ( void ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); ::ResetEventIndexes( GetModelPtr() ); } @@ -669,7 +673,7 @@ void CBaseAnimating::ResetEventIndexes ( void ) //========================================================= int CBaseAnimating::SelectHeaviestSequence ( Activity activity ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); return ::SelectHeaviestSequence( GetModelPtr(), activity ); } @@ -681,7 +685,7 @@ int CBaseAnimating::SelectHeaviestSequence ( Activity activity ) //----------------------------------------------------------------------------- int CBaseAnimating::LookupActivity( const char *label ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); return ::LookupActivity( GetModelPtr(), label ); } @@ -689,7 +693,7 @@ int CBaseAnimating::LookupActivity( const char *label ) //========================================================= int CBaseAnimating::LookupSequence( const char *label ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); return ::LookupSequence( GetModelPtr(), label ); } @@ -729,7 +733,7 @@ float CBaseAnimating::GetSequenceMoveYaw( int iSequence ) { Vector vecReturn; - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); ::GetSequenceLinearMotion( GetModelPtr(), iSequence, GetPoseParameterArray(), &vecReturn ); if (vecReturn.Length() > 0) @@ -765,7 +769,7 @@ float CBaseAnimating::GetSequenceMoveDist( CStudioHdr *pStudioHdr, int iSequence //----------------------------------------------------------------------------- void CBaseAnimating::GetSequenceLinearMotion( int iSequence, Vector *pVec ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); ::GetSequenceLinearMotion( GetModelPtr(), iSequence, GetPoseParameterArray(), pVec ); } @@ -912,7 +916,7 @@ void CBaseAnimating::ResetSequenceInfo ( ) //========================================================= bool CBaseAnimating::IsValidSequence( int iSequence ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); CStudioHdr* pstudiohdr = GetModelPtr( ); if (iSequence < 0 || iSequence >= pstudiohdr->GetNumSeq()) { @@ -1779,7 +1783,7 @@ void CBaseAnimating::SetupBones( matrix3x4_t *pBoneToWorld, int boneMask ) MDLCACHE_CRITICAL_SECTION(); - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); CStudioHdr *pStudioHdr = GetModelPtr( ); @@ -2087,7 +2091,7 @@ void CBaseAnimating::GetEyeballs( Vector &origin, QAngle &angles ) //========================================================= int CBaseAnimating::FindTransitionSequence( int iCurrentSequence, int iGoalSequence, int *piDir ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); if (piDir == NULL) { @@ -2136,7 +2140,7 @@ void CBaseAnimating::SetBodygroup( int iGroup, int iValue ) { // SetBodygroup is not supported on pending dynamic models. Wait for it to load! // XXX TODO we could buffer up the group and value if we really needed to. -henryg - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); int newBody = m_nBody; ::SetBodygroup( GetModelPtr( ), newBody, iGroup, iValue ); m_nBody = newBody; @@ -2735,7 +2739,7 @@ void CBaseAnimating::InitBoneControllers ( void ) // FIXME: rename //========================================================= float CBaseAnimating::SetBoneController ( int iController, float flValue ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); CStudioHdr *pmodel = (CStudioHdr*)GetModelPtr(); @@ -2752,7 +2756,7 @@ float CBaseAnimating::SetBoneController ( int iController, float flValue ) //========================================================= float CBaseAnimating::GetBoneController ( int iController ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); CStudioHdr *pmodel = (CStudioHdr*)GetModelPtr(); @@ -2943,7 +2947,7 @@ void CBaseAnimating::SetHitboxSet( int setnum ) //----------------------------------------------------------------------------- void CBaseAnimating::SetHitboxSetByName( const char *setname ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); m_nHitboxSet = FindHitboxSetByName( GetModelPtr(), setname ); } @@ -2962,7 +2966,7 @@ int CBaseAnimating::GetHitboxSet( void ) //----------------------------------------------------------------------------- const char *CBaseAnimating::GetHitboxSetName( void ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); return ::GetHitboxSetName( GetModelPtr(), m_nHitboxSet ); } @@ -2972,7 +2976,7 @@ const char *CBaseAnimating::GetHitboxSetName( void ) //----------------------------------------------------------------------------- int CBaseAnimating::GetHitboxSetCount( void ) { - Assert( GetModelPtr() ); + AssertMsg( GetModelPtr(), "GetModelPtr NULL. %s", STRING(GetEntityName()) ? STRING(GetEntityName()) : "" ); return ::GetHitboxSetCount( GetModelPtr() ); } @@ -3303,6 +3307,7 @@ void CBaseAnimating::SetModelScale( float scale, float change_duration /*= 0.0f* mvs->m_flModelScaleGoal = scale; mvs->m_flModelScaleStartTime = gpGlobals->curtime; mvs->m_flModelScaleFinishTime = mvs->m_flModelScaleStartTime + change_duration; + SetContextThink( &CBaseAnimating::UpdateModelScale, gpGlobals->curtime, "UpdateModelScaleThink" ); } else { @@ -3341,6 +3346,11 @@ void CBaseAnimating::UpdateModelScale() } RefreshCollisionBounds(); + + if ( frac < 1.f ) + { + SetContextThink( &CBaseAnimating::UpdateModelScale, gpGlobals->curtime, "UpdateModelScaleThink" ); + } } void CBaseAnimating::RefreshCollisionBounds( void ) |