diff options
Diffstat (limited to 'mp/src/game/server/baseanimating.cpp')
| -rw-r--r-- | mp/src/game/server/baseanimating.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/mp/src/game/server/baseanimating.cpp b/mp/src/game/server/baseanimating.cpp index 2e1e3a22..34bf6378 100644 --- a/mp/src/game/server/baseanimating.cpp +++ b/mp/src/game/server/baseanimating.cpp @@ -210,6 +210,9 @@ BEGIN_DATADESC( CBaseAnimating ) DEFINE_INPUT( m_fadeMaxDist, FIELD_FLOAT, "fademaxdist" ), DEFINE_KEYFIELD( m_flFadeScale, FIELD_FLOAT, "fadescale" ), + DEFINE_KEYFIELD( m_flModelScale, FIELD_FLOAT, "modelscale" ), + DEFINE_INPUTFUNC( FIELD_VECTOR, "SetModelScale", InputSetModelScale ), + DEFINE_FIELD( m_fBoneCacheFlags, FIELD_SHORT ), END_DATADESC() @@ -441,7 +444,7 @@ void CBaseAnimating::StudioFrameAdvanceInternal( CStudioHdr *pStudioHdr, float f m_flAnimTime.Get(), m_flPrevAnimTime, flInterval, GetCycle() ); */ - m_flGroundSpeed = GetSequenceGroundSpeed( pStudioHdr, GetSequence() ); + m_flGroundSpeed = GetSequenceGroundSpeed( pStudioHdr, GetSequence() ) * GetModelScale(); // Msg("%s : %s : %5.1f\n", GetClassname(), GetSequenceName( GetSequence() ), GetCycle() ); InvalidatePhysicsRecursive( ANIMATION_CHANGED ); @@ -610,6 +613,17 @@ void CBaseAnimating::InputSetLightingOrigin( inputdata_t &inputdata ) SetLightingOrigin( strLightingOrigin ); } +//----------------------------------------------------------------------------- +// Purpose: SetModelScale input handler +//----------------------------------------------------------------------------- +void CBaseAnimating::InputSetModelScale( inputdata_t &inputdata ) +{ + Vector vecScale; + inputdata.value.Vector3D( vecScale ); + + SetModelScale( vecScale.x, vecScale.y ); +} + //========================================================= // SelectWeightedSequence @@ -877,7 +891,7 @@ void CBaseAnimating::ResetSequenceInfo ( ) } CStudioHdr *pStudioHdr = GetModelPtr(); - m_flGroundSpeed = GetSequenceGroundSpeed( pStudioHdr, GetSequence() ); + m_flGroundSpeed = GetSequenceGroundSpeed( pStudioHdr, GetSequence() ) * GetModelScale(); m_bSequenceLoops = ((GetSequenceFlags( pStudioHdr, GetSequence() ) & STUDIO_LOOPING) != 0); // m_flAnimTime = gpGlobals->time; m_flPlaybackRate = 1.0; |