- add some compatibility settings to fix rendering glitches in BTSX_E1 MAP12.

This commit is contained in:
Christoph Oelckers 2014-09-09 01:27:41 +02:00
parent e2c2f635ac
commit 86d9c7ec8e
7 changed files with 16 additions and 16 deletions

View file

@ -438,7 +438,6 @@ void gl_RecalcVertexHeights(vertex_t * v)
int i,j,k; int i,j,k;
float height; float height;
//@sync-vertexheights
v->numheights=0; v->numheights=0;
for(i=0;i<v->numsectors;i++) for(i=0;i<v->numsectors;i++)
{ {

View file

@ -855,7 +855,6 @@ void GLDrawList::Sort()
//========================================================================== //==========================================================================
void GLDrawList::AddWall(GLWall * wall) void GLDrawList::AddWall(GLWall * wall)
{ {
//@sync-drawinfo
drawitems.Push(GLDrawItem(GLDIT_WALL,walls.Push(*wall))); drawitems.Push(GLDrawItem(GLDIT_WALL,walls.Push(*wall)));
} }
@ -866,7 +865,6 @@ void GLDrawList::AddWall(GLWall * wall)
//========================================================================== //==========================================================================
void GLDrawList::AddFlat(GLFlat * flat) void GLDrawList::AddFlat(GLFlat * flat)
{ {
//@sync-drawinfo
drawitems.Push(GLDrawItem(GLDIT_FLAT,flats.Push(*flat))); drawitems.Push(GLDrawItem(GLDIT_FLAT,flats.Push(*flat)));
} }
@ -877,7 +875,6 @@ void GLDrawList::AddFlat(GLFlat * flat)
//========================================================================== //==========================================================================
void GLDrawList::AddSprite(GLSprite * sprite) void GLDrawList::AddSprite(GLSprite * sprite)
{ {
//@sync-drawinfo
drawitems.Push(GLDrawItem(GLDIT_SPRITE,sprites.Push(*sprite))); drawitems.Push(GLDrawItem(GLDIT_SPRITE,sprites.Push(*sprite)));
} }

View file

@ -163,7 +163,6 @@ void FDrawInfo::AddUpperMissingTexture(side_t * side, subsector_t *sub, fixed_t
return; return;
} }
//@sync-hack
for(unsigned int i=0;i<MissingUpperTextures.Size();i++) for(unsigned int i=0;i<MissingUpperTextures.Size();i++)
{ {
if (MissingUpperTextures[i].sub == sub) if (MissingUpperTextures[i].sub == sub)
@ -230,13 +229,12 @@ void FDrawInfo::AddLowerMissingTexture(side_t * side, subsector_t *sub, fixed_t
} }
// Ignore FF_FIX's because they are designed to abuse missing textures // Ignore FF_FIX's because they are designed to abuse missing textures
if (seg->backsector->e->XFloor.ffloors.Size() && seg->backsector->e->XFloor.ffloors[0]->flags&FF_FIX) if (seg->backsector->e->XFloor.ffloors.Size() && (seg->backsector->e->XFloor.ffloors[0]->flags&(FF_FIX|FF_SEETHROUGH)) == FF_FIX)
{ {
totalms.Unclock(); totalms.Unclock();
return; return;
} }
//@sync-hack
for(unsigned int i=0;i<MissingLowerTextures.Size();i++) for(unsigned int i=0;i<MissingLowerTextures.Size();i++)
{ {
if (MissingLowerTextures[i].sub == sub) if (MissingLowerTextures[i].sub == sub)
@ -733,7 +731,6 @@ void FDrawInfo::AddHackedSubsector(subsector_t * sub)
{ {
if (!(level.maptype == MAPTYPE_HEXEN)) if (!(level.maptype == MAPTYPE_HEXEN))
{ {
//@sync-hack (probably not, this is only called from the main thread)
SubsectorHackInfo sh={sub, 0}; SubsectorHackInfo sh={sub, 0};
SubsectorHacks.Push (sh); SubsectorHacks.Push (sh);
} }
@ -1033,13 +1030,11 @@ ADD_STAT(sectorhacks)
void FDrawInfo::AddFloorStack(sector_t * sec) void FDrawInfo::AddFloorStack(sector_t * sec)
{ {
//@sync-hack
FloorStacks.Push(sec); FloorStacks.Push(sec);
} }
void FDrawInfo::AddCeilingStack(sector_t * sec) void FDrawInfo::AddCeilingStack(sector_t * sec)
{ {
//@sync-hack
CeilingStacks.Push(sec); CeilingStacks.Push(sec);
} }

View file

@ -199,7 +199,6 @@ void GLWall::PutWall(bool translucent)
// portals don't go into the draw list. // portals don't go into the draw list.
// Instead they are added to the portal manager // Instead they are added to the portal manager
case RENDERWALL_HORIZON: case RENDERWALL_HORIZON:
//@sync-portal
horizon=UniqueHorizons.Get(horizon); horizon=UniqueHorizons.Get(horizon);
portal=GLPortal::FindPortal(horizon); portal=GLPortal::FindPortal(horizon);
if (!portal) portal=new GLHorizonPortal(horizon); if (!portal) portal=new GLHorizonPortal(horizon);
@ -207,14 +206,12 @@ void GLWall::PutWall(bool translucent)
break; break;
case RENDERWALL_SKYBOX: case RENDERWALL_SKYBOX:
//@sync-portal
portal=GLPortal::FindPortal(skybox); portal=GLPortal::FindPortal(skybox);
if (!portal) portal=new GLSkyboxPortal(skybox); if (!portal) portal=new GLSkyboxPortal(skybox);
portal->AddLine(this); portal->AddLine(this);
break; break;
case RENDERWALL_SECTORSTACK: case RENDERWALL_SECTORSTACK:
//@sync-portal
portal = this->portal->GetGLPortal(); portal = this->portal->GetGLPortal();
portal->AddLine(this); portal->AddLine(this);
break; break;
@ -231,7 +228,6 @@ void GLWall::PutWall(bool translucent)
break; break;
case RENDERWALL_MIRROR: case RENDERWALL_MIRROR:
//@sync-portal
portal=GLPortal::FindPortal(seg->linedef); portal=GLPortal::FindPortal(seg->linedef);
if (!portal) portal=new GLMirrorPortal(seg->linedef); if (!portal) portal=new GLMirrorPortal(seg->linedef);
portal->AddLine(this); portal->AddLine(this);
@ -244,7 +240,6 @@ void GLWall::PutWall(bool translucent)
break; break;
case RENDERWALL_SKY: case RENDERWALL_SKY:
//@sync-portal
portal=GLPortal::FindPortal(sky); portal=GLPortal::FindPortal(sky);
if (!portal) portal=new GLSkyPortal(sky); if (!portal) portal=new GLSkyPortal(sky);
portal->AddLine(this); portal->AddLine(this);

View file

@ -1047,7 +1047,6 @@ FMaterial * FMaterial::ValidateTexture(FTexture * tex)
FMaterial *gltex = tex->gl_info.Material; FMaterial *gltex = tex->gl_info.Material;
if (gltex == NULL) if (gltex == NULL)
{ {
//@sync-tex
gltex = new FMaterial(tex, false); gltex = new FMaterial(tex, false);
} }
return gltex; return gltex;

View file

@ -264,6 +264,7 @@ static int P_Set3DFloor(line_t * line, int param, int param2, int alpha)
else if (param==4) else if (param==4)
{ {
flags=FF_EXISTS|FF_RENDERPLANES|FF_INVERTPLANES|FF_NOSHADE|FF_FIX; flags=FF_EXISTS|FF_RENDERPLANES|FF_INVERTPLANES|FF_NOSHADE|FF_FIX;
if (param2 & 1) flags |= FF_SEETHROUGH; // marker for allowing missing texture checks
alpha=255; alpha=255;
} }
else else

View file

@ -381,3 +381,17 @@ B9DFF13207EACAC675C71D82624D0007 // XtheaterIII map01
{ {
DisablePushWindowCheck DisablePushWindowCheck
} }
712BB4CFBD0753178CA0C6814BE4C288 // map12 BTSX_E1 - patch some rendering glitches that are problematic to detect
{
setsectortag 545 32000
setsectortag 1618 32000
setlinespecial 2853 Sector_Set3DFloor 32000 4 0 0 0
setsectortag 439 32001
setsectortag 458 32001
setlinespecial 2182 Sector_Set3DFloor 32001 4 0 0 0
setsectortag 454 32002
setsectortag 910 32002
setlinespecial 2410 Sector_Set3DFloor 32002 4 1 0 0
}