]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - mod_skeletal_animatevertices_generic.c
handle no-bones case for skeletal animation
[xonotic/darkplaces.git] / mod_skeletal_animatevertices_generic.c
index 24cc8a9e8eb2f2f40605971310533d1f3847b3d5..f95277af84079a0fda368d35e1eae445b6ef4d0d 100644 (file)
@@ -19,6 +19,15 @@ void Mod_Skeletal_AnimateVertices_Generic(const dp_model_t * RESTRICT model, con
        if (!model->surfmesh.num_vertices)
                return;
 
+       if (!model->num_bones)
+       {
+               if (vertex3f) memcpy(vertex3f, model->surfmesh.data_vertex3f, model->surfmesh.num_vertices*sizeof(float[3]));
+               if (normal3f) memcpy(normal3f, model->surfmesh.data_normal3f, model->surfmesh.num_vertices*sizeof(float[3]));
+               if (svector3f) memcpy(svector3f, model->surfmesh.data_svector3f, model->surfmesh.num_vertices*sizeof(float[3]));
+               if (tvector3f) memcpy(tvector3f, model->surfmesh.data_tvector3f, model->surfmesh.num_vertices*sizeof(float[3]));
+               return;
+       }
+
        //unsigned long long ts = rdtsc();
        bonepose = (float12_t *) Mod_Skeletal_AnimateVertices_AllocBuffers(sizeof(float12_t) * (model->num_bones*2 + model->surfmesh.num_blends));
        boneposerelative = bonepose + model->num_bones;