CStaticMesh_DX8::CStaticMesh_DX8(CEntity_StaticMesh* in_pMesh) : m_pStaticMesh(in_pMesh) { assert(m_pStaticMesh); // construct shadow for skeleton const std::vector< CBone* >& rSrcBones = m_pStaticMesh->GetSkeleton().GetBoneIDs(); m_Skeleton.m_BoneIDs.resize( rSrcBones.size() ); for( size_t i=0; i<rSrcBones.size(); ++i ) m_Skeleton.m_BoneIDs[i] = NULL; CBone* pSrcRootBone = m_pStaticMesh->GetSkeleton().GetRootBone(); if(pSrcRootBone) { m_Skeleton.m_pRootBone = CreateBoneShadowRecurse( pSrcRootBone, NULL ); assert( !rSrcBones.empty() ); for( size_t i=0; i<rSrcBones.size(); ++i ) { assert( m_Skeleton.m_BoneIDs[i] != NULL ); if( m_Skeleton.m_BoneIDs[i]->m_BoneID == pSrcRootBone->GetID() ) { m_Skeleton.m_pRootBone = m_Skeleton.m_BoneIDs[i]; } } } }