- int skinranges, skincount, *skintexnum, *skinrange, skinnum;
- void *temp;
- byte *skintemp = NULL;
-
- skin = (byte *)(pskintype + 1);
-
- if (numskins < 1 || numskins > MAX_SKINS)
- Host_Error ("Mod_LoadAliasModel: Invalid # of skins: %d\n", numskins);
-
- s = width * height;
- skintemp = qmalloc(s);
-
- // LordHavoc: skim the data, measure the number of skins and number of groups
- skinranges = numskins;
- skincount = 0;
- temp = pskintype;
- for (i = 0;i < numskins;i++)
+ daliasframetype_t *pinframetype;
+ daliasgroup_t *pinframegroup;
+ float scales, scalet, scale[3], translate[3], interval;
+ qbyte *datapointer, *startframes, *startskins;
+ char name[MAX_QPATH];
+ skinframe_t tempskinframe;
+ animscene_t *tempskinscenes;
+ skinframe_t *tempskinframes;
+ modelyawradius = 0;
+ modelradius = 0;
+
+ datapointer = buffer;
+ pinmodel = (mdl_t *)datapointer;
+ datapointer += sizeof(mdl_t);
+
+ version = LittleLong (pinmodel->version);
+ if (version != ALIAS_VERSION)
+ Host_Error ("%s has wrong version number (%i should be %i)",
+ loadmodel->name, version, ALIAS_VERSION);
+
+ loadmodel->type = mod_alias;
+ loadmodel->aliastype = ALIASTYPE_MDLMD2;
+ loadmodel->DrawSky = NULL;
+ loadmodel->Draw = R_Model_Alias_Draw;
+ loadmodel->DrawFakeShadow = R_Model_Alias_DrawFakeShadow;
+ loadmodel->DrawShadowVolume = R_Model_Alias_DrawShadowVolume;
+ loadmodel->DrawLight = R_Model_Alias_DrawLight;
+
+ loadmodel->numskins = LittleLong(pinmodel->numskins);
+ BOUNDI(loadmodel->numskins,0,256);
+ skinwidth = LittleLong (pinmodel->skinwidth);
+ BOUNDI(skinwidth,0,4096);
+ skinheight = LittleLong (pinmodel->skinheight);
+ BOUNDI(skinheight,0,4096);
+ loadmodel->numverts = numverts = LittleLong(pinmodel->numverts);
+ BOUNDI(loadmodel->numverts,0,MAXALIASVERTS);
+ loadmodel->numtris = LittleLong(pinmodel->numtris);
+ BOUNDI(loadmodel->numtris,0,MAXALIASTRIS);
+ loadmodel->numframes = LittleLong(pinmodel->numframes);
+ BOUNDI(loadmodel->numframes,0,65536);
+ loadmodel->synctype = LittleLong (pinmodel->synctype);
+ BOUNDI(loadmodel->synctype,0,2);
+ loadmodel->flags = LittleLong (pinmodel->flags);
+
+ for (i = 0;i < 3;i++)
+ {
+ scale[i] = LittleFloat (pinmodel->scale[i]);
+ translate[i] = LittleFloat (pinmodel->scale_origin[i]);
+ }
+
+ startskins = datapointer;
+ totalskins = 0;
+ for (i = 0;i < loadmodel->numskins;i++)