diff --git a/libs/assimp/code/AssetLib/MDL/MDLFileData.h b/libs/assimp/code/AssetLib/MDL/MDLFileData.h index 872cee7f..473a0698 100644 --- a/libs/assimp/code/AssetLib/MDL/MDLFileData.h +++ b/libs/assimp/code/AssetLib/MDL/MDLFileData.h @@ -704,8 +704,8 @@ struct GroupFrame //! Maximum vertex for all single frames Vertex max; - //! Time for all single frames - float time; // float[numframes] + //! List of times for all single frames + float *times; //! List of single frames SimpleFrame *frames; diff --git a/libs/assimp/code/AssetLib/MDL/MDLLoader.cpp b/libs/assimp/code/AssetLib/MDL/MDLLoader.cpp index 67f56081..9f7e94bc 100644 --- a/libs/assimp/code/AssetLib/MDL/MDLLoader.cpp +++ b/libs/assimp/code/AssetLib/MDL/MDLLoader.cpp @@ -439,8 +439,9 @@ void MDLImporter::InternReadFile_Quake1() { pcFirstFrame = (MDL::SimpleFrame *)&pcFrames->frame; } else { // get the first frame in the group - BE_NCONST MDL::GroupFrame *pcFrames2 = (BE_NCONST MDL::GroupFrame *)pcFrames; - pcFirstFrame = (MDL::SimpleFrame *)( &pcFrames2->time + pcFrames2->numframes ); + BE_NCONST MDL::GroupFrame *pcFrames2 = (BE_NCONST MDL::GroupFrame *)szCurrent; + pcFirstFrame = (MDL::SimpleFrame *)( szCurrent + sizeof(MDL::GroupFrame::type) + sizeof(MDL::GroupFrame::numframes) + + sizeof(MDL::GroupFrame::min) + sizeof(MDL::GroupFrame::max) + sizeof(*MDL::GroupFrame::times) * pcFrames2->numframes ); } BE_NCONST MDL::Vertex *pcVertices = (BE_NCONST MDL::Vertex *)((pcFirstFrame->name) + sizeof(pcFirstFrame->name)); VALIDATE_FILE_SIZE((const unsigned char *)(pcVertices + pcHeader->num_verts));