+ // LordHavoc: hack to allow sprites to be non-fullbright
+ fullbright = true;
+ for (i = 0;i < MAX_QPATH && loadmodel->name[i];i++)
+ if (loadmodel->name[i] == '!')
+ fullbright = false;
+
+ loadmodel->animscenes = (animscene_t *)Mem_Alloc(loadmodel->mempool, sizeof(animscene_t) * loadmodel->numframes);
+ loadmodel->sprite.sprdata_frames = (mspriteframe_t *)Mem_Alloc(loadmodel->mempool, sizeof(mspriteframe_t) * loadmodel->numframes);
+ loadmodel->num_textures = loadmodel->numframes;
+ loadmodel->num_texturesperskin = 1;
+ loadmodel->data_textures = (texture_t *)Mem_Alloc(loadmodel->mempool, sizeof(texture_t) * loadmodel->num_textures);
+
+ modelradius = 0;
+ for (i = 0;i < loadmodel->numframes;i++)
+ {
+ int origin[2], x, y, width, height;
+ const dsprite2frame_t *pinframe;
+ mspriteframe_t *sprframe;
+
+ dpsnprintf(loadmodel->animscenes[i].name, sizeof(loadmodel->animscenes[i].name), "frame %i", i);
+ loadmodel->animscenes[i].firstframe = i;
+ loadmodel->animscenes[i].framecount = 1;
+ loadmodel->animscenes[i].framerate = 10;
+ loadmodel->animscenes[i].loop = true;
+
+ pinframe = &pinqsprite->frames[i];
+
+ origin[0] = LittleLong (pinframe->origin_x);
+ origin[1] = LittleLong (pinframe->origin_y);
+ width = LittleLong (pinframe->width);
+ height = LittleLong (pinframe->height);
+
+ sprframe = &loadmodel->sprite.sprdata_frames[i];
+
+ // note that sp2 origin[0] is positive, where as it is negative in
+ // spr/spr32/hlspr
+ sprframe->left = -origin[0];
+ sprframe->right = -origin[0] + width;
+ sprframe->up = origin[1];
+ sprframe->down = origin[1] - height;
+
+ x = (int)max(sprframe->left * sprframe->left, sprframe->right * sprframe->right);
+ y = (int)max(sprframe->up * sprframe->up, sprframe->down * sprframe->down);
+ if (modelradius < x + y)
+ modelradius = x + y;
+ }