*/
-typedef enum {mod_invalid, mod_brush, mod_sprite, mod_alias} modtype_t;
+typedef enum {mod_invalid, mod_brush, mod_sprite, mod_alias, mod_brushq2, mod_brushq3} modtype_t;
typedef struct animscene_s
{
struct shadowmesh_s *next;
int numverts, maxverts;
int numtriangles, maxtriangles;
- float *verts;
- int *elements;
- int *neighbors;
+ float *vertex3f;
+ int *element3i;
+ int *neighbor3i;
// these are NULL after Mod_ShadowMesh_Finish is performed, only used
// while building meshes
shadowmeshvertexhash_t **vertexhashtable, *vertexhashentries;
#include "model_sprite.h"
#include "model_alias.h"
+#include "matrixlib.h"
+
typedef struct model_s
{
char name[MAX_QPATH];
int *surfacevisframes;
int *surfacepvsframes;
msurface_t *surfacepvsnext;
+ surfmesh_t *entiremesh;
+ surfmesh_t *surfmeshes;
int numsurfedges;
int *surfedges;
// draw a shadow volume for the model based on light source
void(*DrawShadowVolume)(struct entity_render_s *ent, vec3_t relativelightorigin, float lightradius);
// draw the lighting on a model (through stencil)
- void(*DrawLight)(struct entity_render_s *ent, vec3_t relativelightorigin, vec3_t relativeeyeorigin, float lightradius, float *lightcolor);
+ void(*DrawLight)(struct entity_render_s *ent, vec3_t relativelightorigin, vec3_t relativeeyeorigin, float lightradius, float *lightcolor, const matrix4x4_t *matrix_modeltofilter, const matrix4x4_t *matrix_modeltoattenuationxyz, const matrix4x4_t *matrix_modeltoattenuationz);
// memory pool for allocations
mempool_t *mempool;