mirror of
https://github.com/nzp-team/quakespasm.git
synced 2024-11-10 06:32:03 +00:00
Merge branch 'main' of https://github.com/nzp-team/quakespasm
This commit is contained in:
commit
fa9657111b
9 changed files with 190 additions and 96 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -8,3 +8,4 @@ assets/vita/eboot.bin
|
||||||
*.nacl
|
*.nacl
|
||||||
*.sfo
|
*.sfo
|
||||||
*.bin
|
*.bin
|
||||||
|
*.o
|
||||||
|
|
|
@ -1184,11 +1184,9 @@ void CL_ParseWeaponFire (void)
|
||||||
kick[1] = MSG_ReadCoord (cl.protocolflags)/5;
|
kick[1] = MSG_ReadCoord (cl.protocolflags)/5;
|
||||||
kick[2] = MSG_ReadCoord (cl.protocolflags)/5;
|
kick[2] = MSG_ReadCoord (cl.protocolflags)/5;
|
||||||
|
|
||||||
if (!(cl.perks & 64)) {
|
cl.gun_kick[0] += kick[0];
|
||||||
cl.gun_kick[0] += kick[0];
|
cl.gun_kick[1] += kick[1];
|
||||||
cl.gun_kick[1] += kick[1];
|
cl.gun_kick[2] += kick[2];
|
||||||
cl.gun_kick[2] += kick[2];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
===================
|
===================
|
||||||
|
|
|
@ -1166,9 +1166,9 @@ R_RenderScene
|
||||||
void R_RenderScene (void)
|
void R_RenderScene (void)
|
||||||
{
|
{
|
||||||
R_SetupScene (); //johnfitz -- this does everything that should be done once per call to RenderScene
|
R_SetupScene (); //johnfitz -- this does everything that should be done once per call to RenderScene
|
||||||
|
#ifndef VITA
|
||||||
Fog_EnableGFog (); //johnfitz
|
Fog_EnableGFog (); //johnfitz
|
||||||
|
#endif
|
||||||
Sky_DrawSky (); //johnfitz
|
Sky_DrawSky (); //johnfitz
|
||||||
|
|
||||||
R_DrawWorld ();
|
R_DrawWorld ();
|
||||||
|
@ -1188,9 +1188,9 @@ void R_RenderScene (void)
|
||||||
R_DrawParticles ();
|
R_DrawParticles ();
|
||||||
|
|
||||||
QMB_DrawParticles();
|
QMB_DrawParticles();
|
||||||
|
#ifndef VITA
|
||||||
Fog_DisableGFog (); //johnfitz
|
Fog_DisableGFog (); //johnfitz
|
||||||
|
#endif
|
||||||
R_DrawViewModel (); //johnfitz -- moved here from R_RenderView
|
R_DrawViewModel (); //johnfitz -- moved here from R_RenderView
|
||||||
|
|
||||||
R_DrawView2Model ();
|
R_DrawView2Model ();
|
||||||
|
|
|
@ -1026,5 +1026,7 @@ void Sky_DrawSky (void)
|
||||||
glDepthMask(1);
|
glDepthMask(1);
|
||||||
glDepthFunc(GL_LEQUAL);
|
glDepthFunc(GL_LEQUAL);
|
||||||
}
|
}
|
||||||
|
#ifndef VITA
|
||||||
Fog_EnableGFog ();
|
Fog_EnableGFog ();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
151
source/menu.c
151
source/menu.c
|
@ -107,6 +107,14 @@ typedef struct
|
||||||
|
|
||||||
usermap_t custom_maps[50];
|
usermap_t custom_maps[50];
|
||||||
|
|
||||||
|
#define BASE_MAP_COUNT 3
|
||||||
|
char* base_maps [] =
|
||||||
|
{
|
||||||
|
"ndu",
|
||||||
|
"warehouse",
|
||||||
|
"christmas_special"
|
||||||
|
};
|
||||||
|
|
||||||
enum m_state_e m_state;
|
enum m_state_e m_state;
|
||||||
|
|
||||||
int old_m_state;
|
int old_m_state;
|
||||||
|
@ -1691,6 +1699,7 @@ void Map_Finder(void)
|
||||||
DIR* dir;
|
DIR* dir;
|
||||||
struct dirent* ent;
|
struct dirent* ent;
|
||||||
char map_dir[MAX_OSPATH];
|
char map_dir[MAX_OSPATH];
|
||||||
|
qboolean breakaway;
|
||||||
|
|
||||||
for (int i = 0; i < 50; i++) {
|
for (int i = 0; i < 50; i++) {
|
||||||
custom_maps[i].occupied = false;
|
custom_maps[i].occupied = false;
|
||||||
|
@ -1706,74 +1715,98 @@ void Map_Finder(void)
|
||||||
{
|
{
|
||||||
while ((ent = readdir(dir)))
|
while ((ent = readdir(dir)))
|
||||||
{
|
{
|
||||||
if(!strcmp(COM_FileGetExtension(ent->d_name),"bsp") || !strcmp(COM_FileGetExtension(ent->d_name),"BSP")) {
|
if(!strcmp(COM_FileGetExtension(ent->d_name),"bsp") || !strcmp(COM_FileGetExtension(ent->d_name),"BSP"))
|
||||||
|
{
|
||||||
|
breakaway = false;
|
||||||
char ntype[32];
|
char ntype[32];
|
||||||
COM_StripExtension(ent->d_name, ntype, sizeof(ntype));
|
COM_StripExtension(ent->d_name, ntype, sizeof(ntype));
|
||||||
custom_maps[user_maps_num].occupied = true;
|
|
||||||
custom_maps[user_maps_num].map_name = malloc(sizeof(char)*32);
|
|
||||||
sprintf(custom_maps[user_maps_num].map_name, "%s", ntype);
|
|
||||||
|
|
||||||
char* setting_path;
|
for (int j = 0; j < BASE_MAP_COUNT; j++)
|
||||||
FILE* setting_file;
|
{
|
||||||
|
if (breakaway == true)
|
||||||
|
break;
|
||||||
|
|
||||||
setting_path = malloc(sizeof(char)*64);
|
if(!strcmp(ntype, base_maps[j]))
|
||||||
custom_maps[user_maps_num].map_thumbnail_path = malloc(sizeof(char)*64);
|
{
|
||||||
|
//Con_Printf("ntype: %s\n base_map: %s\n", ntype, base_maps[j]);
|
||||||
strcpy(setting_path, map_dir);
|
breakaway = true;
|
||||||
strcat(setting_path, "/");
|
|
||||||
|
|
||||||
strcpy(custom_maps[user_maps_num].map_thumbnail_path, "gfx/menu/custom/");
|
|
||||||
strcat(setting_path, custom_maps[user_maps_num].map_name);
|
|
||||||
strcat(custom_maps[user_maps_num].map_thumbnail_path, custom_maps[user_maps_num].map_name);
|
|
||||||
strcat(custom_maps[user_maps_num].map_thumbnail_path, ".tga");
|
|
||||||
strcat(setting_path, ".txt");
|
|
||||||
|
|
||||||
setting_file = fopen(setting_path, "r");
|
|
||||||
|
|
||||||
if (setting_file != NULL) {
|
|
||||||
int state;
|
|
||||||
state = 0;
|
|
||||||
int value;
|
|
||||||
|
|
||||||
custom_maps[user_maps_num].map_name_pretty = malloc(sizeof(char)*32);
|
|
||||||
custom_maps[user_maps_num].map_desc_1 = malloc(sizeof(char)*40);
|
|
||||||
custom_maps[user_maps_num].map_desc_2 = malloc(sizeof(char)*40);
|
|
||||||
custom_maps[user_maps_num].map_desc_3 = malloc(sizeof(char)*40);
|
|
||||||
custom_maps[user_maps_num].map_desc_4 = malloc(sizeof(char)*40);
|
|
||||||
custom_maps[user_maps_num].map_desc_5 = malloc(sizeof(char)*40);
|
|
||||||
custom_maps[user_maps_num].map_desc_6 = malloc(sizeof(char)*40);
|
|
||||||
custom_maps[user_maps_num].map_desc_7 = malloc(sizeof(char)*40);
|
|
||||||
custom_maps[user_maps_num].map_desc_8 = malloc(sizeof(char)*40);
|
|
||||||
custom_maps[user_maps_num].map_author = malloc(sizeof(char)*40);
|
|
||||||
|
|
||||||
char buffer[64];
|
|
||||||
int bufferlen = sizeof(buffer);
|
|
||||||
|
|
||||||
while(fgets(buffer, bufferlen, setting_file)) {
|
|
||||||
// strip newlines
|
|
||||||
buffer[strcspn(buffer, "\r")] = 0;
|
|
||||||
buffer[strcspn(buffer, "\n")] = 0;
|
|
||||||
|
|
||||||
switch(state) {
|
|
||||||
case 0: strcpy(custom_maps[user_maps_num].map_name_pretty, buffer); break;
|
|
||||||
case 1: strcpy(custom_maps[user_maps_num].map_desc_1, buffer); break;
|
|
||||||
case 2: strcpy(custom_maps[user_maps_num].map_desc_2, buffer); break;
|
|
||||||
case 3: strcpy(custom_maps[user_maps_num].map_desc_3, buffer); break;
|
|
||||||
case 4: strcpy(custom_maps[user_maps_num].map_desc_4, buffer); break;
|
|
||||||
case 5: strcpy(custom_maps[user_maps_num].map_desc_5, buffer); break;
|
|
||||||
case 6: strcpy(custom_maps[user_maps_num].map_desc_6, buffer); break;
|
|
||||||
case 7: strcpy(custom_maps[user_maps_num].map_desc_7, buffer); break;
|
|
||||||
case 8: strcpy(custom_maps[user_maps_num].map_desc_8, buffer); break;
|
|
||||||
case 9: strcpy(custom_maps[user_maps_num].map_author, buffer); break;
|
|
||||||
case 10: value = 0; sscanf(buffer, "%d", &value); custom_maps[user_maps_num].map_use_thumbnail = value; break;
|
|
||||||
case 11: value = 0; sscanf(buffer, "%d", &value); custom_maps[user_maps_num].map_allow_game_settings = value; break;
|
|
||||||
default: break;
|
|
||||||
}
|
}
|
||||||
state++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (breakaway == true)
|
||||||
|
{
|
||||||
|
//Con_Printf("Breaking away at ntype: %s\n", ntype);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Con_Printf("Success at ntype: %s\n", ntype);
|
||||||
|
custom_maps[user_maps_num].occupied = true;
|
||||||
|
custom_maps[user_maps_num].map_name = malloc(sizeof(char)*32);
|
||||||
|
sprintf(custom_maps[user_maps_num].map_name, "%s", ntype);
|
||||||
|
|
||||||
|
char* setting_path;
|
||||||
|
FILE* setting_file;
|
||||||
|
|
||||||
|
setting_path = malloc(sizeof(char)*64);
|
||||||
|
custom_maps[user_maps_num].map_thumbnail_path = malloc(sizeof(char)*64);
|
||||||
|
|
||||||
|
strcpy(setting_path, map_dir);
|
||||||
|
strcat(setting_path, "/");
|
||||||
|
|
||||||
|
strcpy(custom_maps[user_maps_num].map_thumbnail_path, "gfx/menu/custom/");
|
||||||
|
strcat(setting_path, custom_maps[user_maps_num].map_name);
|
||||||
|
strcat(custom_maps[user_maps_num].map_thumbnail_path, custom_maps[user_maps_num].map_name);
|
||||||
|
strcat(custom_maps[user_maps_num].map_thumbnail_path, ".tga");
|
||||||
|
strcat(setting_path, ".txt");
|
||||||
|
|
||||||
|
setting_file = fopen(setting_path, "r");
|
||||||
|
|
||||||
|
if (setting_file != NULL) {
|
||||||
|
int state;
|
||||||
|
state = 0;
|
||||||
|
int value;
|
||||||
|
|
||||||
|
custom_maps[user_maps_num].map_name_pretty = malloc(sizeof(char)*32);
|
||||||
|
custom_maps[user_maps_num].map_desc_1 = malloc(sizeof(char)*40);
|
||||||
|
custom_maps[user_maps_num].map_desc_2 = malloc(sizeof(char)*40);
|
||||||
|
custom_maps[user_maps_num].map_desc_3 = malloc(sizeof(char)*40);
|
||||||
|
custom_maps[user_maps_num].map_desc_4 = malloc(sizeof(char)*40);
|
||||||
|
custom_maps[user_maps_num].map_desc_5 = malloc(sizeof(char)*40);
|
||||||
|
custom_maps[user_maps_num].map_desc_6 = malloc(sizeof(char)*40);
|
||||||
|
custom_maps[user_maps_num].map_desc_7 = malloc(sizeof(char)*40);
|
||||||
|
custom_maps[user_maps_num].map_desc_8 = malloc(sizeof(char)*40);
|
||||||
|
custom_maps[user_maps_num].map_author = malloc(sizeof(char)*40);
|
||||||
|
|
||||||
|
char buffer[64];
|
||||||
|
int bufferlen = sizeof(buffer);
|
||||||
|
|
||||||
|
while(fgets(buffer, bufferlen, setting_file)) {
|
||||||
|
// strip newlines
|
||||||
|
buffer[strcspn(buffer, "\r")] = 0;
|
||||||
|
buffer[strcspn(buffer, "\n")] = 0;
|
||||||
|
|
||||||
|
switch(state) {
|
||||||
|
case 0: strcpy(custom_maps[user_maps_num].map_name_pretty, buffer); break;
|
||||||
|
case 1: strcpy(custom_maps[user_maps_num].map_desc_1, buffer); break;
|
||||||
|
case 2: strcpy(custom_maps[user_maps_num].map_desc_2, buffer); break;
|
||||||
|
case 3: strcpy(custom_maps[user_maps_num].map_desc_3, buffer); break;
|
||||||
|
case 4: strcpy(custom_maps[user_maps_num].map_desc_4, buffer); break;
|
||||||
|
case 5: strcpy(custom_maps[user_maps_num].map_desc_5, buffer); break;
|
||||||
|
case 6: strcpy(custom_maps[user_maps_num].map_desc_6, buffer); break;
|
||||||
|
case 7: strcpy(custom_maps[user_maps_num].map_desc_7, buffer); break;
|
||||||
|
case 8: strcpy(custom_maps[user_maps_num].map_desc_8, buffer); break;
|
||||||
|
case 9: strcpy(custom_maps[user_maps_num].map_author, buffer); break;
|
||||||
|
case 10: value = 0; sscanf(buffer, "%d", &value); custom_maps[user_maps_num].map_use_thumbnail = value; break;
|
||||||
|
case 11: value = 0; sscanf(buffer, "%d", &value); custom_maps[user_maps_num].map_allow_game_settings = value; break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
state++;
|
||||||
|
}
|
||||||
fclose(setting_file);
|
fclose(setting_file);
|
||||||
}
|
}
|
||||||
user_maps_num = user_maps_num + 1;
|
user_maps_num = user_maps_num + 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
|
|
|
@ -312,17 +312,15 @@ static void PF_setmodel (void)
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
PF_bprint
|
PF_bprint
|
||||||
|
|
||||||
broadcast print to everyone on server
|
broadcast print to everyone on server
|
||||||
|
bprint(style, value)
|
||||||
bprint(value)
|
|
||||||
=================
|
=================
|
||||||
*/
|
*/
|
||||||
static void PF_bprint (void)
|
void PF_bprint (void)
|
||||||
{
|
{
|
||||||
char *s;
|
//
|
||||||
|
float style = G_FLOAT(OFS_PARM0);
|
||||||
s = PF_VarString(0);
|
char *s = PF_VarString(1);
|
||||||
SV_BroadcastPrintf ("%s", s);
|
SV_BroadcastPrintf ("%s", s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1191,9 +1191,13 @@ void R_DrawAliasModel (entity_t *e)
|
||||||
glBlendFunc (GL_ONE, GL_ONE);
|
glBlendFunc (GL_ONE, GL_ONE);
|
||||||
glDepthMask(GL_FALSE);
|
glDepthMask(GL_FALSE);
|
||||||
glColor3f(entalpha,entalpha,entalpha);
|
glColor3f(entalpha,entalpha,entalpha);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
GL_DrawAliasFrame (paliashdr, lerpdata);
|
GL_DrawAliasFrame (paliashdr, lerpdata);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
|
#endif
|
||||||
glDepthMask(GL_TRUE);
|
glDepthMask(GL_TRUE);
|
||||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
glDisable(GL_BLEND);
|
glDisable(GL_BLEND);
|
||||||
|
@ -1254,9 +1258,13 @@ void R_DrawAliasModel (entity_t *e)
|
||||||
glDepthMask(GL_FALSE);
|
glDepthMask(GL_FALSE);
|
||||||
shading = false;
|
shading = false;
|
||||||
glColor3f(entalpha,entalpha,entalpha);
|
glColor3f(entalpha,entalpha,entalpha);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
GL_DrawAliasFrame (paliashdr, lerpdata);
|
GL_DrawAliasFrame (paliashdr, lerpdata);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
|
#endif
|
||||||
glDepthMask(GL_TRUE);
|
glDepthMask(GL_TRUE);
|
||||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
glDisable(GL_BLEND);
|
glDisable(GL_BLEND);
|
||||||
|
@ -1273,9 +1281,13 @@ void R_DrawAliasModel (entity_t *e)
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
glBlendFunc (GL_ONE, GL_ONE);
|
glBlendFunc (GL_ONE, GL_ONE);
|
||||||
glDepthMask(GL_FALSE);
|
glDepthMask(GL_FALSE);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
GL_DrawAliasFrame (paliashdr, lerpdata);
|
GL_DrawAliasFrame (paliashdr, lerpdata);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
|
#endif
|
||||||
glDepthMask(GL_TRUE);
|
glDepthMask(GL_TRUE);
|
||||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
@ -1290,9 +1302,13 @@ void R_DrawAliasModel (entity_t *e)
|
||||||
glDepthMask(GL_FALSE);
|
glDepthMask(GL_FALSE);
|
||||||
shading = false;
|
shading = false;
|
||||||
glColor3f(entalpha,entalpha,entalpha);
|
glColor3f(entalpha,entalpha,entalpha);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
GL_DrawAliasFrame (paliashdr, lerpdata);
|
GL_DrawAliasFrame (paliashdr, lerpdata);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
|
#endif
|
||||||
glDepthMask(GL_TRUE);
|
glDepthMask(GL_TRUE);
|
||||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
glDisable(GL_BLEND);
|
glDisable(GL_BLEND);
|
||||||
|
@ -1331,9 +1347,13 @@ void R_DrawAliasModel (entity_t *e)
|
||||||
glDepthMask(GL_FALSE);
|
glDepthMask(GL_FALSE);
|
||||||
shading = false;
|
shading = false;
|
||||||
glColor3f(entalpha,entalpha,entalpha);
|
glColor3f(entalpha,entalpha,entalpha);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
GL_DrawAliasFrame (paliashdr, lerpdata);
|
GL_DrawAliasFrame (paliashdr, lerpdata);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
|
#endif
|
||||||
glDepthMask(GL_TRUE);
|
glDepthMask(GL_TRUE);
|
||||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
glDisable(GL_BLEND);
|
glDisable(GL_BLEND);
|
||||||
|
|
|
@ -370,10 +370,14 @@ void R_DrawSequentialPoly (msurface_t *s)
|
||||||
else //case 3: texture in one pass, lightmap in second pass using 2x modulation blend func, fog in third pass
|
else //case 3: texture in one pass, lightmap in second pass using 2x modulation blend func, fog in third pass
|
||||||
{
|
{
|
||||||
//first pass -- texture with no fog
|
//first pass -- texture with no fog
|
||||||
|
#ifndef VITA
|
||||||
Fog_DisableGFog ();
|
Fog_DisableGFog ();
|
||||||
|
#endif VITA
|
||||||
GL_Bind (t->gltexture);
|
GL_Bind (t->gltexture);
|
||||||
DrawGLPoly (s->polys);
|
DrawGLPoly (s->polys);
|
||||||
|
#ifndef VITA
|
||||||
Fog_EnableGFog ();
|
Fog_EnableGFog ();
|
||||||
|
#endif
|
||||||
rs_brushpasses++;
|
rs_brushpasses++;
|
||||||
|
|
||||||
//second pass -- lightmap with black fog, modulate blended
|
//second pass -- lightmap with black fog, modulate blended
|
||||||
|
@ -382,7 +386,9 @@ void R_DrawSequentialPoly (msurface_t *s)
|
||||||
glDepthMask (GL_FALSE);
|
glDepthMask (GL_FALSE);
|
||||||
glEnable (GL_BLEND);
|
glEnable (GL_BLEND);
|
||||||
glBlendFunc(GL_DST_COLOR, GL_SRC_COLOR); //2x modulate
|
glBlendFunc(GL_DST_COLOR, GL_SRC_COLOR); //2x modulate
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
#ifdef VITA
|
#ifdef VITA
|
||||||
glBegin(GL_TRIANGLE_FAN);
|
glBegin(GL_TRIANGLE_FAN);
|
||||||
#else
|
#else
|
||||||
|
@ -395,10 +401,13 @@ void R_DrawSequentialPoly (msurface_t *s)
|
||||||
glVertex3fv (v);
|
glVertex3fv (v);
|
||||||
}
|
}
|
||||||
glEnd ();
|
glEnd ();
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
|
#endif
|
||||||
rs_brushpasses++;
|
rs_brushpasses++;
|
||||||
|
|
||||||
//third pass -- black geo with normal fog, additive blended
|
//third pass -- black geo with normal fog, additive blended
|
||||||
|
#ifndef VITA
|
||||||
if (Fog_GetDensity() > 0)
|
if (Fog_GetDensity() > 0)
|
||||||
{
|
{
|
||||||
glBlendFunc(GL_ONE, GL_ONE); //add
|
glBlendFunc(GL_ONE, GL_ONE); //add
|
||||||
|
@ -409,6 +418,7 @@ void R_DrawSequentialPoly (msurface_t *s)
|
||||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||||
rs_brushpasses++;
|
rs_brushpasses++;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
glDisable (GL_BLEND);
|
glDisable (GL_BLEND);
|
||||||
|
@ -451,10 +461,14 @@ void R_DrawSequentialPoly (msurface_t *s)
|
||||||
else //case 6: texture in one pass, lightmap in a second pass, fog in third pass
|
else //case 6: texture in one pass, lightmap in a second pass, fog in third pass
|
||||||
{
|
{
|
||||||
//first pass -- texture with no fog
|
//first pass -- texture with no fog
|
||||||
|
#ifndef VITA
|
||||||
Fog_DisableGFog ();
|
Fog_DisableGFog ();
|
||||||
|
#endif
|
||||||
GL_Bind (t->gltexture);
|
GL_Bind (t->gltexture);
|
||||||
DrawGLPoly (s->polys);
|
DrawGLPoly (s->polys);
|
||||||
|
#ifndef VITA
|
||||||
Fog_EnableGFog ();
|
Fog_EnableGFog ();
|
||||||
|
#endif
|
||||||
rs_brushpasses++;
|
rs_brushpasses++;
|
||||||
|
|
||||||
//second pass -- lightmap with black fog, modulate blended
|
//second pass -- lightmap with black fog, modulate blended
|
||||||
|
@ -463,7 +477,9 @@ void R_DrawSequentialPoly (msurface_t *s)
|
||||||
glDepthMask (GL_FALSE);
|
glDepthMask (GL_FALSE);
|
||||||
glEnable (GL_BLEND);
|
glEnable (GL_BLEND);
|
||||||
glBlendFunc (GL_ZERO, GL_SRC_COLOR); //modulate
|
glBlendFunc (GL_ZERO, GL_SRC_COLOR); //modulate
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
#ifdef VITA
|
#ifdef VITA
|
||||||
glBegin(GL_TRIANGLE_FAN);
|
glBegin(GL_TRIANGLE_FAN);
|
||||||
#else
|
#else
|
||||||
|
@ -476,9 +492,11 @@ void R_DrawSequentialPoly (msurface_t *s)
|
||||||
glVertex3fv (v);
|
glVertex3fv (v);
|
||||||
}
|
}
|
||||||
glEnd ();
|
glEnd ();
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
|
#endif
|
||||||
rs_brushpasses++;
|
rs_brushpasses++;
|
||||||
|
#ifndef VITA
|
||||||
//third pass -- black geo with normal fog, additive blended
|
//third pass -- black geo with normal fog, additive blended
|
||||||
if (Fog_GetDensity() > 0)
|
if (Fog_GetDensity() > 0)
|
||||||
{
|
{
|
||||||
|
@ -490,7 +508,7 @@ void R_DrawSequentialPoly (msurface_t *s)
|
||||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||||
rs_brushpasses++;
|
rs_brushpasses++;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
glDisable (GL_BLEND);
|
glDisable (GL_BLEND);
|
||||||
glDepthMask (GL_TRUE);
|
glDepthMask (GL_TRUE);
|
||||||
|
@ -517,9 +535,13 @@ fullbrights:
|
||||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||||
glColor3f (entalpha, entalpha, entalpha);
|
glColor3f (entalpha, entalpha, entalpha);
|
||||||
GL_Bind (t->fullbright);
|
GL_Bind (t->fullbright);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
DrawGLPoly (s->polys);
|
DrawGLPoly (s->polys);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
|
#endif
|
||||||
glColor3f(1, 1, 1);
|
glColor3f(1, 1, 1);
|
||||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
|
@ -1197,24 +1197,32 @@ void R_DrawTextureChains (qmodel_t *model, entity_t *ent, texchain_t chain)
|
||||||
//to make fog work with multipass lightmapping, need to do one pass
|
//to make fog work with multipass lightmapping, need to do one pass
|
||||||
//with no fog, one modulate pass with black fog, and one additive
|
//with no fog, one modulate pass with black fog, and one additive
|
||||||
//pass with black geometry and normal fog
|
//pass with black geometry and normal fog
|
||||||
|
#ifndef VITA
|
||||||
Fog_DisableGFog ();
|
Fog_DisableGFog ();
|
||||||
|
#endif
|
||||||
R_DrawTextureChains_TextureOnly (model, ent, chain);
|
R_DrawTextureChains_TextureOnly (model, ent, chain);
|
||||||
|
#ifndef VITA
|
||||||
Fog_EnableGFog ();
|
Fog_EnableGFog ();
|
||||||
|
#endif
|
||||||
glDepthMask (GL_FALSE);
|
glDepthMask (GL_FALSE);
|
||||||
glEnable (GL_BLEND);
|
glEnable (GL_BLEND);
|
||||||
glBlendFunc (GL_DST_COLOR, GL_SRC_COLOR); //2x modulate
|
glBlendFunc (GL_DST_COLOR, GL_SRC_COLOR); //2x modulate
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
R_DrawLightmapChains ();
|
R_DrawLightmapChains ();
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
//if (Fog_GetDensity() > 0)
|
if (Fog_GetDensity() > 0)
|
||||||
//{
|
{
|
||||||
//glBlendFunc(GL_ONE, GL_ONE); //add
|
glBlendFunc(GL_ONE, GL_ONE); //add
|
||||||
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||||
//glColor3f(0,0,0);
|
glColor3f(0,0,0);
|
||||||
//R_DrawTextureChains_TextureOnly (model, ent, chain);
|
R_DrawTextureChains_TextureOnly (model, ent, chain);
|
||||||
//glColor3f(1,1,1);
|
glColor3f(1,1,1);
|
||||||
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||||
//}
|
}
|
||||||
|
#endif
|
||||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
glDisable (GL_BLEND);
|
glDisable (GL_BLEND);
|
||||||
glDepthMask (GL_TRUE);
|
glDepthMask (GL_TRUE);
|
||||||
|
@ -1239,24 +1247,32 @@ void R_DrawTextureChains (qmodel_t *model, entity_t *ent, texchain_t chain)
|
||||||
//to make fog work with multipass lightmapping, need to do one pass
|
//to make fog work with multipass lightmapping, need to do one pass
|
||||||
//with no fog, one modulate pass with black fog, and one additive
|
//with no fog, one modulate pass with black fog, and one additive
|
||||||
//pass with black geometry and normal fog
|
//pass with black geometry and normal fog
|
||||||
|
#ifndef VITA
|
||||||
Fog_DisableGFog ();
|
Fog_DisableGFog ();
|
||||||
|
#endif
|
||||||
R_DrawTextureChains_TextureOnly (model, ent, chain);
|
R_DrawTextureChains_TextureOnly (model, ent, chain);
|
||||||
|
#ifndef VITA
|
||||||
Fog_EnableGFog ();
|
Fog_EnableGFog ();
|
||||||
|
#endif
|
||||||
glDepthMask (GL_FALSE);
|
glDepthMask (GL_FALSE);
|
||||||
glEnable (GL_BLEND);
|
glEnable (GL_BLEND);
|
||||||
glBlendFunc(GL_ZERO, GL_SRC_COLOR); //modulate
|
glBlendFunc(GL_ZERO, GL_SRC_COLOR); //modulate
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
R_DrawLightmapChains ();
|
R_DrawLightmapChains ();
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
//if (Fog_GetDensity() > 0)
|
if (Fog_GetDensity() > 0)
|
||||||
//{
|
{
|
||||||
//glBlendFunc(GL_ONE, GL_ONE); //add
|
glBlendFunc(GL_ONE, GL_ONE); //add
|
||||||
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||||
//glColor3f(0,0,0);
|
glColor3f(0,0,0);
|
||||||
//R_DrawTextureChains_TextureOnly (model, ent, chain);
|
R_DrawTextureChains_TextureOnly (model, ent, chain);
|
||||||
//glColor3f(1,1,1);
|
glColor3f(1,1,1);
|
||||||
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||||
//}
|
}
|
||||||
|
#endif
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
glDisable (GL_BLEND);
|
glDisable (GL_BLEND);
|
||||||
glDepthMask (GL_TRUE);
|
glDepthMask (GL_TRUE);
|
||||||
|
@ -1273,9 +1289,13 @@ fullbrights:
|
||||||
glBlendFunc (GL_ONE, GL_ONE);
|
glBlendFunc (GL_ONE, GL_ONE);
|
||||||
glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||||
glColor3f (entalpha, entalpha, entalpha);
|
glColor3f (entalpha, entalpha, entalpha);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StartAdditive ();
|
Fog_StartAdditive ();
|
||||||
|
#endif
|
||||||
R_DrawTextureChains_Glow (model, ent, chain);
|
R_DrawTextureChains_Glow (model, ent, chain);
|
||||||
|
#ifndef VITA
|
||||||
Fog_StopAdditive ();
|
Fog_StopAdditive ();
|
||||||
|
#endif
|
||||||
glColor3f (1, 1, 1);
|
glColor3f (1, 1, 1);
|
||||||
glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
Loading…
Reference in a new issue