// LordHavoc: HalfLife maps have freaky skypolys...
if (ent->model->brush.ishlbsp)
return;
+ // sky rendering transparently would be too difficult
+ if (ent->flags & RENDER_TRANSPARENT)
+ return;
if (skyrendernow)
{
if (surf->flags & SURF_WATERALPHA)
currentalpha *= r_wateralpha.value;
- GL_DepthTest(true);
+ GL_DepthTest(!(ent->effects & EF_NODEPTHTEST));
if (ent->effects & EF_ADDITIVE)
{
rendertype = SURFRENDER_ADD;
{
rendertype = SURFRENDER_OPAQUE;
GL_BlendFunc(GL_ONE, GL_ZERO);
- GL_DepthMask(true);
+ GL_DepthMask(!(ent->effects & EF_NODEPTHTEST));
}
turb = (surf->flags & SURF_DRAWTURB) && r_waterscroll.value;
if (surf->visframe == r_framecount)
{
Matrix4x4_Transform(&ent->matrix, surf->poly_center, center);
- R_MeshQueue_AddTransparent(center, RSurfShader_Transparent_Callback, ent, surf - ent->model->brushq1.surfaces);
+ R_MeshQueue_AddTransparent(ent->effects & EF_NODEPTHTEST ? r_vieworigin : center, RSurfShader_Transparent_Callback, ent, surf - ent->model->brushq1.surfaces);
}
}
}
else
{
Matrix4x4_Transform(&ent->matrix, surf->poly_center, center);
- R_MeshQueue_AddTransparent(center, RSurfShader_Transparent_Callback, ent, surf - ent->model->brushq1.surfaces);
+ R_MeshQueue_AddTransparent(ent->effects & EF_NODEPTHTEST ? r_vieworigin : center, RSurfShader_Transparent_Callback, ent, surf - ent->model->brushq1.surfaces);
}
}
}
rmeshstate_t m;
if (!face->num_triangles)
return;
+ // drawing sky transparently would be too difficult
+ if (ent->flags & RENDER_TRANSPARENT)
+ return;
c_faces++;
if (skyrendernow)
{
else
GL_BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
GL_DepthMask(false);
- GL_DepthTest(true);
+ GL_DepthTest(!(ent->effects & EF_NODEPTHTEST));
m.tex[0] = R_GetTexture(face->texture->skin.base);
m.pointer_texcoord[0] = face->data_texcoordtexture2f;
colorscale = r_lightmapintensity;
facecenter[1] = (face->mins[1] + face->maxs[1]) * 0.5f;
facecenter[2] = (face->mins[2] + face->maxs[2]) * 0.5f;
Matrix4x4_Transform(&ent->matrix, facecenter, center);
- R_MeshQueue_AddTransparent(center, R_Q3BSP_DrawFace_TransparentCallback, ent, face - ent->model->brushq3.data_faces);
+ R_MeshQueue_AddTransparent(ent->effects & EF_NODEPTHTEST ? r_vieworigin : center, R_Q3BSP_DrawFace_TransparentCallback, ent, face - ent->model->brushq3.data_faces);
return;
}
R_Mesh_Matrix(&ent->matrix);