- char name[MAX_QPATH];
- qboolean needload; // bmodels and sprites don't cache normally
-
- modtype_t type;
- int aliastype; // LordHavoc: Q2 model support
- int fullbright; // LordHavoc: if true (normally only for sprites) the model/sprite/bmodel is always rendered fullbright
- int numframes;
- synctype_t synctype;
-
- int flags;
-
-// volume occupied by the model graphics
- vec3_t mins, maxs;
- float radius;
-
-// solid volume for clipping
- qboolean clipbox;
- vec3_t clipmins, clipmaxs;
-
-// brush model
- int firstmodelsurface, nummodelsurfaces;
-
- int numsubmodels;
- dmodel_t *submodels;
+ char name[MAX_QPATH];
+ // model needs to be loaded if this is true
+ qboolean needload;
+ // set if the model is used in current map, models which are not, are purged
+ qboolean used;
+ // CRC of the file this model was loaded from, to reload if changed
+ qboolean crc;
+ // true if this is the world model (I.E. defines what sky to use, and may contain submodels)
+ qboolean isworldmodel;
+ // true if this model is a HalfLife .bsp file
+ qboolean ishlbsp;
+
+ // mod_brush, mod_alias, mod_sprite
+ modtype_t type;
+ // LordHavoc: Q2/ZYM model support
+ int aliastype;
+ // LordHavoc: if true (normally only for sprites) the model/sprite/bmodel is always rendered fullbright
+ int fullbright;
+ // number of QC accessable frame(group)s in the model
+ int numframes;
+ // whether to randomize animated framegroups
+ synctype_t synctype;
+
+ // used for sprites and models
+ int numtris;
+ // used for models
+ int numskins;
+ // used by models
+ int numverts;
+
+ // flags from the model file
+ int flags;
+ // engine calculated flags, ones that can not be set in the file
+ int flags2;
+
+ // all models use textures...
+ rtexturepool_t *texturepool;
+
+ // volume occupied by the model
+ // bounding box at angles '0 0 0'
+ vec3_t normalmins, normalmaxs;
+ // bounding box if yaw angle is not 0, but pitch and roll are
+ vec3_t yawmins, yawmaxs;
+ // bounding box if pitch or roll are used
+ vec3_t rotatedmins, rotatedmaxs;
+ // usable at any angles
+// float modelradius;
+
+ // brush model specific
+ int firstmodelsurface, nummodelsurfaces;
+ // LordHavoc: sorted surface pointer array, sorted by shader type and then by texture
+ msurface_t **modelsortedsurfaces; // [nummodelsurfaces]
+
+ // used for surfaces without a valid texture
+ texture_t notexture;
+
+ // lightmap format, set to r_lightmaprgba when model is loaded
+ int lightmaprgba;
+
+ int numsubmodels;
+ dmodel_t *submodels;
+
+ int numplanes;
+ mplane_t *planes;
+
+ // number of visible leafs, not counting 0 (solid)
+ int numleafs;
+ mleaf_t *leafs;
+
+ int numvertexes;
+ mvertex_t *vertexes;
+
+ int numedges;
+ medge_t *edges;
+
+ int numnodes;
+ mnode_t *nodes;
+
+ int numtexinfo;
+ mtexinfo_t *texinfo;
+
+ int numsurfaces;
+ msurface_t *surfaces;
+
+ int numsurfedges;
+ int *surfedges;
+
+ int numclipnodes;
+ dclipnode_t *clipnodes;
+
+ int nummarksurfaces;
+ msurface_t **marksurfaces;
+
+ hull_t hulls[MAX_MAP_HULLS];
+
+ int numtextures;
+ texture_t **textures;
+
+ byte *visdata;
+ byte *lightdata;
+ char *entities;
+
+ int numportals;
+ mportal_t *portals;
+
+ int numportalpoints;
+ mvertex_t *portalpoints;
+
+ // skin animation info
+ animscene_t *skinscenes; // [numskins]
+ // skin frame info
+ skinframe_t *skinframes;