From 02d46a672d1e692776768b9346091c88571a7648 Mon Sep 17 00:00:00 2001 From: havoc Date: Mon, 6 Nov 2006 08:23:43 +0000 Subject: [PATCH] changed md3 tag storage to be the original float[12] OpenGL-orientation format rather than a matrix4x4 which was wasting some space git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6614 d7cf8633-e32d-0410-b094-e92efae38249 --- model_alias.c | 9 +++------ model_alias.h | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/model_alias.c b/model_alias.c index 09d5a70b..54054371 100644 --- a/model_alias.c +++ b/model_alias.c @@ -277,7 +277,7 @@ int Mod_Alias_GetTagMatrix(const model_t *model, int poseframe, int tagindex, ma return 4; if (poseframe >= model->num_tagframes) return 6; - *outmatrix = model->data_tags[poseframe * model->num_tags + tagindex].matrix; + Matrix4x4_FromArray12FloatGL(outmatrix, model->data_tags[poseframe * model->num_tags + tagindex].matrixgl); } return 0; } @@ -1238,14 +1238,11 @@ 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++) { - float m[12]; 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]); + loadmodel->data_tags[i].matrixgl[j] = LittleFloat(pintag->rotationmatrix[j]); for (j = 0;j < 3;j++) - m[9+j] = LittleFloat(pintag->origin[j]); - Matrix4x4_FromArray12FloatGL(&loadmodel->data_tags[i].matrix, m); + loadmodel->data_tags[i].matrixgl[9+j] = LittleFloat(pintag->origin[j]); //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); } diff --git a/model_alias.h b/model_alias.h index 26e64929..272b69c3 100644 --- a/model_alias.h +++ b/model_alias.h @@ -212,7 +212,7 @@ md3modelheader_t; typedef struct aliastag_s { char name[MD3NAME]; - matrix4x4_t matrix; + float matrixgl[12]; } aliastag_t; -- 2.39.2