Hacking my way towards working r_lightmap_components 1.

Users of r_lightmap_components 1, should set `int mod_lightmap_bytes = 1` at the start of `quakeforge/libs/models/brush/gl_model_brush.c`.
This commit is contained in:
Ragnvald Maartmann-Moe IV 2002-05-25 15:29:22 +00:00
parent b7900a2c43
commit f1f942dfd1
4 changed files with 40 additions and 30 deletions

View file

@ -479,7 +479,6 @@ extern struct cvar_s *gl_mesh_cache;
extern struct cvar_s *gl_subdivide_size; extern struct cvar_s *gl_subdivide_size;
extern model_t *loadmodel; extern model_t *loadmodel;
extern char loadname[32]; extern char loadname[32];
extern const int mod_lightmap_bytes;
extern byte *mod_base; extern byte *mod_base;
extern byte mod_novis[MAX_MAP_LEAFS / 8]; extern byte mod_novis[MAX_MAP_LEAFS / 8];

View file

@ -50,7 +50,8 @@ static const char rcsid[] =
#include "compat.h" #include "compat.h"
const int mod_lightmap_bytes = 3; int mod_lightmap_bytes = 3;
void void
Mod_ProcessTexture (miptex_t *mt, texture_t *tx) Mod_ProcessTexture (miptex_t *mt, texture_t *tx)
@ -117,34 +118,46 @@ Mod_LoadLighting (lump_t *l)
char litfilename[1024]; char litfilename[1024];
loadmodel->lightdata = NULL; loadmodel->lightdata = NULL;
// LordHavoc: check for a .lit file to load if (mod_lightmap_bytes > 1) {
strcpy (litfilename, loadmodel->name); // LordHavoc: check for a .lit file to load
COM_StripExtension (litfilename, litfilename); strcpy (litfilename, loadmodel->name);
strncat (litfilename, ".lit", sizeof (litfilename) - strlen (litfilename)); COM_StripExtension (litfilename, litfilename);
data = (byte *) COM_LoadHunkFile (litfilename); strncat (litfilename, ".lit", sizeof (litfilename) -
if (data) { strlen (litfilename));
if (data[0] == 'Q' && data[1] == 'L' && data[2] == 'I' data = (byte *) COM_LoadHunkFile (litfilename);
&& data[3] == 'T') { if (data) {
i = LittleLong (((int *) data)[1]); if (data[0] == 'Q' && data[1] == 'L' && data[2] == 'I'
if (i == 1) { && data[3] == 'T') {
Sys_DPrintf ("%s loaded", litfilename); i = LittleLong (((int *) data)[1]);
loadmodel->lightdata = data + 8; if (i == 1) {
return; Sys_DPrintf ("%s loaded", litfilename);
loadmodel->lightdata = data + 8;
return;
} else
Sys_Printf ("Unknown .lit file version (%d)\n", i);
} else } else
Sys_Printf ("Unknown .lit file version (%d)\n", i); Sys_Printf ("Corrupt .lit file (old version?), ignoring\n");
} else }
Sys_Printf ("Corrupt .lit file (old version?), ignoring\n");
} }
// LordHavoc: oh well, expand the white lighting data // LordHavoc: oh well, expand the white lighting data
if (!l->filelen) if (!l->filelen)
return; return;
loadmodel->lightdata = Hunk_AllocName (l->filelen * 3, litfilename); loadmodel->lightdata = Hunk_AllocName (l->filelen * mod_lightmap_bytes,
litfilename);
in = mod_base + l->fileofs; in = mod_base + l->fileofs;
out = loadmodel->lightdata; out = loadmodel->lightdata;
for (i = 0; i < l->filelen; i++) {
d = *in++; if (mod_lightmap_bytes > 1) {
*out++ = d; for (i = 0; i < l->filelen ; i++) {
*out++ = d; d = *in++;
*out++ = d; *out++ = d;
*out++ = d;
*out++ = d;
}
} else {
for (i = 0; i < l->filelen ; i++) {
d = *in++;
*out++ = d;
}
} }
} }

View file

@ -51,14 +51,12 @@ static const char rcsid[] =
#include "compat.h" #include "compat.h"
void R_InitSky (struct texture_s *mt); extern int mod_lightmap_bytes;
byte mod_novis[MAX_MAP_LEAFS / 8]; byte mod_novis[MAX_MAP_LEAFS / 8];
cvar_t *gl_sky_divide;
void GL_SubdivideSurface (msurface_t *fa); void GL_SubdivideSurface (msurface_t *fa);
cvar_t *gl_sky_divide; void R_InitSky (struct texture_s *mt);
mleaf_t * mleaf_t *

View file

@ -43,7 +43,7 @@ static const char rcsid[] =
#include "QF/model.h" #include "QF/model.h"
const int mod_lightmap_bytes = 1; int mod_lightmap_bytes = 1;
void void