- if (header->num_vertexarrays)
- {
- va = (iqmvertexarray_t *)Mem_Alloc(loadmodel->mempool, header->num_vertexarrays * sizeof(iqmvertexarray_t));
- memcpy(va, pbase + header->ofs_vertexarrays, header->num_vertexarrays * sizeof(iqmvertexarray_t));
- }
- if (header->version == 1)
- {
- if (loadmodel->num_bones)
- {
- joint1 = (iqmjoint1_t *)Mem_Alloc(loadmodel->mempool, loadmodel->num_bones * sizeof(iqmjoint1_t));
- memcpy(joint1, pbase + header->ofs_joints, loadmodel->num_bones * sizeof(iqmjoint1_t));
- }
- if (header->num_poses)
- {
- pose1 = (iqmpose1_t *)Mem_Alloc(loadmodel->mempool, header->num_poses * sizeof(iqmpose1_t));
- memcpy(pose1, pbase + header->ofs_poses, header->num_poses * sizeof(iqmpose1_t));
- }
- }
- else
- {
- if (loadmodel->num_bones)
- {
- joint = (iqmjoint_t *)Mem_Alloc(loadmodel->mempool, loadmodel->num_bones * sizeof(iqmjoint_t));
- memcpy(joint, pbase + header->ofs_joints, loadmodel->num_bones * sizeof(iqmjoint_t));
- }
- if (header->num_poses)
- {
- pose = (iqmpose_t *)Mem_Alloc(loadmodel->mempool, header->num_poses * sizeof(iqmpose_t));
- memcpy(pose, pbase + header->ofs_poses, header->num_poses * sizeof(iqmpose_t));
- }
- }
- if (header->num_anims)
- {
- anim = (iqmanim_t *)Mem_Alloc(loadmodel->mempool, header->num_anims * sizeof(iqmanim_t));
- memcpy(anim, pbase + header->ofs_anims, header->num_anims * sizeof(iqmanim_t));
- }
- if (header->num_framechannels)
- {
- framedata = (unsigned short *)Mem_Alloc(loadmodel->mempool, sizeof(unsigned short) * header->num_framechannels);
- memcpy(framedata, pbase + header->ofs_frames, sizeof(unsigned short) * header->num_framechannels);
- }
- if (header->ofs_bounds)
- {
- bounds = (iqmbounds_t *)Mem_Alloc(loadmodel->mempool, header->num_frames*sizeof(iqmbounds_t));
- memcpy(bounds, pbase + header->ofs_bounds, header->num_frames*sizeof(iqmbounds_t));
- }
- if (header->num_triangles)
- memcpy(loadmodel->surfmesh.data_element3i, pbase + header->ofs_triangles, sizeof(unsigned int[3]) * header->num_triangles);
- if (header->ofs_neighbors && loadmodel->surfmesh.data_neighbor3i)
- memcpy(loadmodel->surfmesh.data_neighbor3i, pbase + header->ofs_neighbors, sizeof(int[3]) * header->num_triangles);
- if (header->num_meshes)
- {
- mesh = Mem_Alloc(loadmodel->mempool, header->num_meshes * sizeof(iqmmesh_t));
- memcpy(mesh, pbase + header->ofs_meshes, header->num_meshes * sizeof(iqmmesh_t));
- }
-
- for (i = 0;i < (int)header->num_vertexarrays;i++)
- {