39{
41
42
43 if (
auto pSkeletonHeader =
TSTATICCAST( TTMDBase::SkeletonHeader,
GetSymbol(
"SkeletonHeader" ) ) )
44 {
47
48 if ( !pLibrary )
49 {
50 TERROR(
"TModel: loading a model without required keyframe library: %s\n", pSkeletonHeader->m_szTKLName );
51 }
52
54 pLibrary,
55 pSkeletonHeader->m_iTKeyCount,
56 pSkeletonHeader->m_iQKeyCount,
57 pSkeletonHeader->m_iSKeyCount,
58 pSkeletonHeader->m_iTBaseIndex,
59 pSkeletonHeader->m_iQBaseIndex,
60 pSkeletonHeader->m_iSBaseIndex
61 );
62 }
63
64
67
70
71
72 for (
TINT i = 0; i < pCollisionHeader->m_iNumMeshes; i++ )
73 {
75 const auto& collisionMeshHeader = pCollisionHeader->m_pMeshes[ i ];
76
77
78 collisionMesh.m_Unk1 = collisionMeshHeader.m_Unk1;
79 collisionMesh.m_pVertices = collisionMeshHeader.m_pVertices;
80 collisionMesh.m_uiNumVertices = collisionMeshHeader.m_uiNumVertices;
81 collisionMesh.m_pIndices = collisionMeshHeader.m_pIndices;
82 collisionMesh.m_uiNumIndices = collisionMeshHeader.m_uiNumIndices;
83
84
85 collisionMesh.m_vecCollTypes.SetSize( collisionMeshHeader.m_uiNumCollTypes, TModelCollisionType{} );
86
87
88 for (
TUINT k = 0; k < collisionMeshHeader.m_uiNumCollTypes; k++ )
89 {
90 collisionMesh.m_vecCollTypes[ k ].strName = collisionMeshHeader.m_pCollTypes[ k ].pszName;
91 collisionMesh.m_vecCollTypes[ k ].uiUnk1 = collisionMeshHeader.m_pCollTypes[ k ].iUnk1;
92 collisionMesh.m_vecCollTypes[ k ].uiUnk2 = collisionMeshHeader.m_pCollTypes[ k ].iUnk2;
93
94
95 collisionMesh.m_vecCollTypes[ k ].vecS1.SetSize( collisionMeshHeader.m_pCollTypes[ k ].iSomeCount );
96 collisionMesh.m_vecCollTypes[ k ].uiUnk3 = 0;
97 collisionMesh.m_vecCollTypes[ k ].uiUnk4 = 0;
98
99 for (
TINT j = 0; j < collisionMeshHeader.m_pCollTypes[ k ].iSomeCount; j++ )
100 {
101 collisionMesh.m_vecCollTypes[ k ].vecS1[ j ].uiUnk1 = collisionMeshHeader.m_pCollTypes[ k ].pS1[ j ].uiUnk1;
102 collisionMesh.m_vecCollTypes[ k ].vecS1[ j ].uiUnk2 = collisionMeshHeader.m_pCollTypes[ k ].pS1[ j ].uiUnk2;
103 }
104 }
105 }
106
107
108 TASSERT( ms_cbModelLoaderTRB !=
TNULL,
"Loader callback is not specified" );
109 ms_cbModelLoaderTRB( this );
110
113}
TKeyframeLibrary * GetLibrary(const TCHAR *a_szName)
TKeyframeLibraryManager & GetKeyframeLibraryManager()
static TFORCEINLINE TRenderInterface * GetSingleton()