X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=model_shared.h;h=fdf71ee182cd11a386015334ec53e94056207004;hb=e0ed43d2d6fdae2375244257789852ecdf38893a;hp=c254424ae62dc982e54fac0b1d373c26bfb66791;hpb=f82273844d5a28532d619a4c5c1dfdd84d88f8f3;p=xonotic%2Fdarkplaces.git diff --git a/model_shared.h b/model_shared.h index c254424a..fdf71ee1 100644 --- a/model_shared.h +++ b/model_shared.h @@ -90,7 +90,13 @@ typedef struct overridetagnameset_s 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) @@ -125,6 +131,7 @@ typedef struct surfmesh_s 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]; @@ -187,19 +194,20 @@ shadowmesh_t; #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 @@ -365,10 +373,12 @@ typedef struct q3shaderinfo_s 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; @@ -483,10 +493,12 @@ typedef struct texture_s 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; @@ -568,6 +580,15 @@ model_sprite_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 @@ -661,9 +682,6 @@ model_brush_t; typedef struct model_brushq1_s { - // lightmap format, set to r_lightmaprgba when model is loaded - int lightmaprgba; - dmodel_t *submodels; int numvertexes; @@ -692,11 +710,8 @@ typedef struct model_brushq1_s 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;