]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_alias.c
more cleaning of matrix4x4_t struct access
[xonotic/darkplaces.git] / model_alias.c
index c90dd72030fecba1296ff2b63ad428c347052ce6..09d5a70b3b9e6bf77f5d82424be65fe3648b69fd 100644 (file)
@@ -1238,14 +1238,14 @@ void Mod_IDP3_Load(model_t *mod, void *buffer, void *bufferend)
        loadmodel->data_tags = (aliastag_t *)Mem_Alloc(loadmodel->mempool, loadmodel->num_tagframes * loadmodel->num_tags * sizeof(aliastag_t));
        for (i = 0, pintag = (md3tag_t *)((unsigned char *)pinmodel + LittleLong(pinmodel->lump_tags));i < loadmodel->num_tagframes * loadmodel->num_tags;i++, pintag++)
        {
        loadmodel->data_tags = (aliastag_t *)Mem_Alloc(loadmodel->mempool, loadmodel->num_tagframes * loadmodel->num_tags * sizeof(aliastag_t));
        for (i = 0, pintag = (md3tag_t *)((unsigned char *)pinmodel + LittleLong(pinmodel->lump_tags));i < loadmodel->num_tagframes * loadmodel->num_tags;i++, pintag++)
        {
+               float m[12];
                strlcpy(loadmodel->data_tags[i].name, pintag->name, sizeof(loadmodel->data_tags[i].name));
                loadmodel->data_tags[i].matrix = identitymatrix;
                strlcpy(loadmodel->data_tags[i].name, pintag->name, sizeof(loadmodel->data_tags[i].name));
                loadmodel->data_tags[i].matrix = identitymatrix;
+               for (j = 0;j < 9;j++)
+                       m[j] = LittleFloat(pintag->rotationmatrix[j]);
                for (j = 0;j < 3;j++)
                for (j = 0;j < 3;j++)
-               {
-                       for (k = 0;k < 3;k++)
-                               loadmodel->data_tags[i].matrix.m[j][k] = LittleFloat(pintag->rotationmatrix[k * 3 + j]);
-                       loadmodel->data_tags[i].matrix.m[j][3] = LittleFloat(pintag->origin[j]);
-               }
+                       m[9+j] = LittleFloat(pintag->origin[j]);
+               Matrix4x4_FromArray12FloatGL(&loadmodel->data_tags[i].matrix, m);
                //Con_Printf("model \"%s\" frame #%i tag #%i \"%s\"\n", loadmodel->name, i / loadmodel->num_tags, i % loadmodel->num_tags, loadmodel->data_tags[i].name);
        }
 
                //Con_Printf("model \"%s\" frame #%i tag #%i \"%s\"\n", loadmodel->name, i / loadmodel->num_tags, i % loadmodel->num_tags, loadmodel->data_tags[i].name);
        }