void C_ServerRagdoll::PostDataUpdate( DataUpdateType_t updateType ) { BaseClass::PostDataUpdate( updateType ); m_iv_ragPos.NoteChanged( gpGlobals->curtime ); m_iv_ragAngles.NoteChanged( gpGlobals->curtime ); }
void C_ServerRagdoll::PostDataUpdate( DataUpdateType_t updateType ) { BaseClass::PostDataUpdate( updateType ); m_iv_ragPos.NoteChanged( gpGlobals->curtime, true ); m_iv_ragAngles.NoteChanged( gpGlobals->curtime, true ); // this is the local client time at which this update becomes stale m_flLastBoneChangeTime = gpGlobals->curtime + GetInterpolationAmount(m_iv_ragPos.GetType()); }
CStudioHdr *C_ServerRagdoll::OnNewModel( void ) { CStudioHdr *hdr = BaseClass::OnNewModel(); if ( !m_elementCount ) { vcollide_t *pCollide = modelinfo->GetVCollide( GetModelIndex() ); if ( !pCollide ) { const char *pszName = modelinfo->GetModelName( modelinfo->GetModel( GetModelIndex() ) ); Msg( "*** ERROR: C_ServerRagdoll::InitModel: %s missing vcollide data ***\n", (pszName) ? pszName : "<null>" ); m_elementCount = 0; } else m_elementCount = RagdollExtractBoneIndices( m_boneIndex, hdr, pCollide ); m_iv_ragPos.SetMaxCount( m_elementCount ); m_iv_ragAngles.SetMaxCount( m_elementCount ); } return hdr; }