mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-23 04:11:53 +00:00
add r_floortexture/r_walltexture, tweak to Doom speaker sounds
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2252 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
9d9b74c274
commit
6197004228
4 changed files with 136 additions and 6 deletions
|
@ -222,6 +222,8 @@ extern cvar_t r_netgraph;
|
|||
cvar_t r_drawflat = SCVARF("r_drawflat","0", CVAR_SEMICHEAT|CVAR_RENDERERCALLBACK);
|
||||
cvar_t r_wallcolour = SCVARF("r_wallcolour","1 1 1", CVAR_RENDERERCALLBACK);
|
||||
cvar_t r_floorcolour = SCVARF("r_floorcolour","1 1 1", CVAR_RENDERERCALLBACK);
|
||||
cvar_t r_walltexture = SCVARF("r_walltexture","", CVAR_RENDERERCALLBACK);
|
||||
cvar_t r_floortexture = SCVARF("r_floortexture","", CVAR_RENDERERCALLBACK);
|
||||
|
||||
cvar_t d_palconvwrite = SCVAR("d_palconvwrite", "1");
|
||||
cvar_t d_palremapsize = SCVARF("d_palremapsize", "64", CVAR_RENDERERLATCH);
|
||||
|
@ -364,6 +366,9 @@ void GLRenderer_Init(void)
|
|||
|
||||
Cvar_Register (&r_wallcolour, GLRENDEREROPTIONS);
|
||||
Cvar_Register (&r_floorcolour, GLRENDEREROPTIONS);
|
||||
Cvar_Register (&r_walltexture, GLRENDEREROPTIONS);
|
||||
Cvar_Register (&r_floortexture, GLRENDEREROPTIONS);
|
||||
|
||||
Cvar_Register (&r_vertexdlights, GLRENDEREROPTIONS);
|
||||
|
||||
Cvar_Register (&gl_schematics, GLRENDEREROPTIONS);
|
||||
|
|
|
@ -148,8 +148,9 @@ void ResampleSfx (sfx_t *sfx, int inrate, int inwidth, qbyte *data)
|
|||
|
||||
//=============================================================================
|
||||
#ifdef DOOMWADS
|
||||
#define DSPK_RATE 140
|
||||
#define DSPK_FREQ 30
|
||||
// needs fine tuning.. educated guesses
|
||||
#define DSPK_RATE 128
|
||||
#define DSPK_FREQ 31
|
||||
|
||||
sfxcache_t *S_LoadDoomSpeakerSound (sfx_t *s, qbyte *data, int datalen, int sndspeed)
|
||||
{
|
||||
|
@ -308,7 +309,7 @@ S_LoadSound_t AudioInputPlugins[10] =
|
|||
S_LoadWavSound,
|
||||
#ifdef DOOMWADS
|
||||
S_LoadDoomSound,
|
||||
S_LoadDoomSpeakerSound
|
||||
S_LoadDoomSpeakerSound,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -1163,6 +1163,9 @@ static void PPL_BaseChain_Specular_FP(msurface_t *s, texture_t *tex)
|
|||
|
||||
static vec_t wallcolour[4] = {0,0,0,1};
|
||||
static vec_t floorcolour[4] = {0,0,0,1};
|
||||
static int walltexture = 0;
|
||||
static int floortexture = 0;
|
||||
static qboolean simpletextures = false;
|
||||
|
||||
//single textured.
|
||||
void GLR_Wallcolour_Callback(struct cvar_s *var, char *oldvalue)
|
||||
|
@ -1175,6 +1178,36 @@ void GLR_Floorcolour_Callback(struct cvar_s *var, char *oldvalue)
|
|||
SCR_StringToRGB(var->string, floorcolour, 1);
|
||||
}
|
||||
|
||||
void GLR_Walltexture_Callback(struct cvar_s *var, char *oldvalue)
|
||||
{
|
||||
if (!var->string[0])
|
||||
{
|
||||
walltexture = 0;
|
||||
if (!floortexture)
|
||||
simpletextures = false;
|
||||
return;
|
||||
}
|
||||
|
||||
walltexture = Mod_LoadHiResTexture(var->string, NULL, true, false, true);
|
||||
if (walltexture)
|
||||
simpletextures = true;
|
||||
}
|
||||
|
||||
void GLR_Floortexture_Callback(struct cvar_s *var, char *oldvalue)
|
||||
{
|
||||
if (!var->string[0])
|
||||
{
|
||||
floortexture = 0;
|
||||
if (!walltexture)
|
||||
simpletextures = false;
|
||||
return;
|
||||
}
|
||||
|
||||
floortexture = Mod_LoadHiResTexture(var->string, NULL, true, false, true);
|
||||
if (floortexture)
|
||||
simpletextures = true;
|
||||
}
|
||||
|
||||
static void PPL_BaseChain_Flat(msurface_t *first)
|
||||
{
|
||||
msurface_t *s;
|
||||
|
@ -1233,7 +1266,7 @@ static void PPL_BaseChain_Flat(msurface_t *first)
|
|||
}
|
||||
}
|
||||
|
||||
if ((s->plane->normal[2]*s->plane->normal[2]) <= 0.5*0.5)
|
||||
if (s->plane->normal[2] <= 0.5)
|
||||
{
|
||||
if (iswall != 0)
|
||||
{
|
||||
|
@ -1292,6 +1325,88 @@ void GLR_Drawflat_Callback(struct cvar_s *var, char *oldvalue)
|
|||
}
|
||||
}
|
||||
|
||||
static void PPL_BaseChain_SimpleTexture(msurface_t *first)
|
||||
{
|
||||
msurface_t *s;
|
||||
int vi=-10;
|
||||
int iswall;
|
||||
int oldwall=-1;
|
||||
glRect_t *theRect;
|
||||
|
||||
GL_SelectTexture(GL_TEXTURE0_ARB);
|
||||
PPL_EnableVertexArrays();
|
||||
|
||||
//draw the surface properly
|
||||
qglEnable(GL_TEXTURE_2D);
|
||||
qglEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
qglTexCoordPointer(2, GL_FLOAT, sizeof(surfvertexarray_t), varray_v->stw);
|
||||
|
||||
GL_TexEnv(GL_MODULATE);
|
||||
|
||||
GL_SelectTexture(GL_TEXTURE1_ARB);
|
||||
GL_TexEnv(GL_MODULATE);
|
||||
qglEnable(GL_TEXTURE_2D);
|
||||
qglEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
qglTexCoordPointer(2, GL_FLOAT, sizeof(surfvertexarray_t), varray_v->stl);
|
||||
|
||||
for (s = first; s ; s=s->texturechain)
|
||||
{
|
||||
if (s->plane->normal[2] <= 0.5)
|
||||
iswall = 1;
|
||||
else
|
||||
iswall = 0;
|
||||
|
||||
if (vi != s->lightmaptexturenum || iswall != oldwall)
|
||||
{
|
||||
PPL_FlushArrays();
|
||||
vi = s->lightmaptexturenum;
|
||||
oldwall = iswall;
|
||||
|
||||
if (iswall)
|
||||
{
|
||||
GL_MBind(GL_TEXTURE0_ARB, walltexture);
|
||||
qglColor4fv(wallcolour);
|
||||
}
|
||||
else
|
||||
{
|
||||
GL_MBind(GL_TEXTURE0_ARB, floortexture);
|
||||
qglColor4fv(floorcolour);
|
||||
}
|
||||
|
||||
if (vi < 0)
|
||||
GL_MBind(GL_TEXTURE1_ARB, 0 );
|
||||
else
|
||||
{
|
||||
GL_MBind(GL_TEXTURE1_ARB, lightmap_textures[vi] );
|
||||
if (lightmap[vi]->modified)
|
||||
{
|
||||
lightmap[vi]->modified = false;
|
||||
theRect = &lightmap[vi]->rectchange;
|
||||
qglTexSubImage2D(GL_TEXTURE_2D, 0, 0, theRect->t,
|
||||
LMBLOCK_WIDTH, theRect->h, gl_lightmap_format, GL_UNSIGNED_BYTE,
|
||||
lightmap[vi]->lightmaps+(theRect->t) *LMBLOCK_WIDTH*lightmap_bytes);
|
||||
theRect->l = LMBLOCK_WIDTH;
|
||||
theRect->t = LMBLOCK_HEIGHT;
|
||||
theRect->h = 0;
|
||||
theRect->w = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
PPL_GenerateArrays(s);
|
||||
}
|
||||
PPL_FlushArrays();
|
||||
qglDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
qglDisableClientState(GL_VERTEX_ARRAY);
|
||||
qglDisable(GL_TEXTURE_2D);
|
||||
qglColor3f(1,1,1);
|
||||
|
||||
GL_SelectTexture(GL_TEXTURE0_ARB);
|
||||
qglDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
qglDisableClientState(GL_VERTEX_ARRAY);
|
||||
qglEnable(GL_TEXTURE_2D);
|
||||
qglColor3f(1,1,1);
|
||||
}
|
||||
|
||||
static void PPL_BaseChain_NPR_Sketch(msurface_t *first)
|
||||
{
|
||||
msurface_t *s;
|
||||
|
@ -1402,7 +1517,10 @@ static void PPL_BaseTextureChain(msurface_t *first)
|
|||
}
|
||||
else
|
||||
{
|
||||
PPL_BaseChain_Flat(first); //who cares about texture? :/
|
||||
if (gl_mtexarbable >= 2 && simpletextures)
|
||||
PPL_BaseChain_SimpleTexture(first);
|
||||
else
|
||||
PPL_BaseChain_Flat(first); //who cares about texture? :/
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -661,7 +661,7 @@ extern cvar_t r_stains, r_stainfadetime, r_stainfadeammount;
|
|||
extern cvar_t gl_conback, gl_font, gl_smoothfont, gl_fontedgeclamp, r_menutint;
|
||||
extern cvar_t vid_conautoscale, vid_conheight, vid_conwidth;
|
||||
extern cvar_t crosshair, crosshairimage, crosshaircolor, r_skyboxname;
|
||||
extern cvar_t r_floorcolour, r_wallcolour;
|
||||
extern cvar_t r_floorcolour, r_wallcolour, r_floortexture, r_walltexture;
|
||||
void GLCrosshairimage_Callback(struct cvar_s *var, char *oldvalue);
|
||||
void GLCrosshair_Callback(struct cvar_s *var, char *oldvalue);
|
||||
void GLCrosshaircolor_Callback(struct cvar_s *var, char *oldvalue);
|
||||
|
@ -676,6 +676,8 @@ void GLVID_Conautoscale_Callback(struct cvar_s *var, char *oldvalue);
|
|||
void GLVID_Conheight_Callback(struct cvar_s *var, char *oldvalue);
|
||||
void GLR_Wallcolour_Callback(struct cvar_s *var, char *oldvalue);
|
||||
void GLR_Floorcolour_Callback(struct cvar_s *var, char *oldvalue);
|
||||
void GLR_Walltexture_Callback(struct cvar_s *var, char *oldvalue);
|
||||
void GLR_Floortexture_Callback(struct cvar_s *var, char *oldvalue);
|
||||
void GLR_Drawflat_Callback(struct cvar_s *var, char *oldvalue);
|
||||
void GLV_Gamma_Callback(struct cvar_s *var, char *oldvalue);
|
||||
|
||||
|
@ -701,6 +703,8 @@ void GLR_DeInit (void)
|
|||
Cvar_Unhook(&vid_conwidth);
|
||||
Cvar_Unhook(&r_wallcolour);
|
||||
Cvar_Unhook(&r_floorcolour);
|
||||
Cvar_Unhook(&r_walltexture);
|
||||
Cvar_Unhook(&r_floortexture);
|
||||
Cvar_Unhook(&r_drawflat);
|
||||
Cvar_Unhook(&v_gamma);
|
||||
Cvar_Unhook(&v_contrast);
|
||||
|
@ -731,6 +735,8 @@ void GLR_Init (void)
|
|||
Cvar_Hook(&vid_conwidth, GLVID_Conwidth_Callback);
|
||||
Cvar_Hook(&r_floorcolour, GLR_Floorcolour_Callback);
|
||||
Cvar_Hook(&r_wallcolour, GLR_Wallcolour_Callback);
|
||||
Cvar_Hook(&r_floortexture, GLR_Floortexture_Callback);
|
||||
Cvar_Hook(&r_walltexture, GLR_Walltexture_Callback);
|
||||
Cvar_Hook(&r_drawflat, GLR_Drawflat_Callback);
|
||||
Cvar_Hook(&v_gamma, GLV_Gamma_Callback);
|
||||
Cvar_Hook(&v_contrast, GLV_Gamma_Callback);
|
||||
|
|
Loading…
Reference in a new issue