overridetagnameset_t;
struct md3vertex_s;
-struct trivertex_s;
+struct trivertx_s;
+typedef struct texvecvertex_s
+{
+ signed char svec[3];
+ signed char tvec[3];
+}
+texvecvertex_t;
// used for mesh lists in q1bsp/q3bsp map models
// (the surfaces reference portions of these meshes)
int num_morphframes;
struct md3vertex_s *data_morphmd3vertex;
struct trivertx_s *data_morphmdlvertex;
+ struct texvecvertex_s *data_morphtexvecvertex;
float *data_morphmd2framesize6f;
float num_morphmdlframescale[3];
float num_morphmdlframetranslate[3];
#define Q3TEXTUREFLAG_TWOSIDED 1
#define Q3TEXTUREFLAG_NOPICMIP 16
#define Q3TEXTUREFLAG_POLYGONOFFSET 32
-#define Q3TEXTUREFLAG_REFLECTION 256
-#define Q3TEXTUREFLAG_WATERSHADER 512
+#define Q3TEXTUREFLAG_REFRACTION 256
+#define Q3TEXTUREFLAG_REFLECTION 512
+#define Q3TEXTUREFLAG_WATERSHADER 1024
#define Q3PATHLENGTH 64
#define TEXTURE_MAXFRAMES 64
#define Q3WAVEPARMS 4
#define Q3DEFORM_MAXPARMS 3
-#define Q3SHADER_MAXLAYERS 8
+#define Q3SHADER_MAXLAYERS 2 // FIXME support more than that (currently only two are used, so why keep more in RAM?)
#define Q3RGBGEN_MAXPARMS 3
#define Q3ALPHAGEN_MAXPARMS 1
#define Q3TCGEN_MAXPARMS 6
#define Q3TCMOD_MAXPARMS 6
-#define Q3MAXTCMODS 4
+#define Q3MAXTCMODS 8
#define Q3MAXDEFORMS 4
typedef enum q3wavefunc_e
char skyboxname[Q3PATHLENGTH];
q3shaderinfo_deform_t deforms[Q3MAXDEFORMS];
- vec3_t reflectcolor, refractcolor;
- float refractmin; // when refraction is used, minimum amount of reflection (when looking straight down)
- float refractmax; // when refraction is used, maximum amount of reflection (when looking parallel to water)
- float refractfactor; // amount of refraction distort (1.0 = like the cvar specifies; note that reflection distort is not configurable because that's what the bumpmap should do)
+ float reflectmin; // when refraction is used, minimum amount of reflection (when looking straight down)
+ float reflectmax; // when refraction is used, maximum amount of reflection (when looking parallel to water)
+ float refractfactor; // amount of refraction distort (1.0 = like the cvar specifies)
+ vec4_t refractcolor4f; // color tint of refraction (including alpha factor)
+ float reflectfactor; // amount of reflection distort (1.0 = like the cvar specifies)
+ vec4_t reflectcolor4f; // color tint of reflection (including alpha factor)
}
q3shaderinfo_t;
int textureflags;
// reflection
- vec3_t reflectcolor, refractcolor;
- float refractmin; // when refraction is used, minimum amount of reflection (when looking straight down)
- float refractmax; // when refraction is used, maximum amount of reflection (when looking parallel to water)
- float refractfactor; // amount of refraction distort (1.0 = like the cvar specifies; note that reflection distort is not configurable because that's what the bumpmap should do)
+ float reflectmin; // when refraction is used, minimum amount of reflection (when looking straight down)
+ float reflectmax; // when refraction is used, maximum amount of reflection (when looking parallel to water)
+ float refractfactor; // amount of refraction distort (1.0 = like the cvar specifies)
+ vec4_t refractcolor4f; // color tint of refraction (including alpha factor)
+ float reflectfactor; // amount of reflection distort (1.0 = like the cvar specifies)
+ vec4_t reflectcolor4f; // color tint of reflection (including alpha factor)
}
texture_t;
struct trace_s;
+typedef struct model_brush_lightstyleinfo_s
+{
+ int style;
+ int value;
+ int numsurfaces;
+ int *surfacelist;
+}
+model_brush_lightstyleinfo_t;
+
typedef struct model_brush_s
{
// true if this model is a HalfLife .bsp file
typedef struct model_brushq1_s
{
- // lightmap format, set to r_lightmaprgba when model is loaded
- int lightmaprgba;
-
dmodel_t *submodels;
int numvertexes;
unsigned char *nmaplightdata; // deluxemap file
// lightmap update chains for light styles
- int light_styles;
- unsigned char *light_style;
- int *light_stylevalue;
- msurface_t ***light_styleupdatechains;
- msurface_t **light_styleupdatechainsbuffer;
+ int num_lightstyles;
+ model_brush_lightstyleinfo_t *data_lightstyleinfo;
}
model_brushq1_t;