mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-06-03 01:51:02 +00:00
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:
parent
b7900a2c43
commit
f1f942dfd1
4 changed files with 40 additions and 30 deletions
|
@ -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];
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 *
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue