mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-11 15:22:15 +00:00
- made the adjustments.
This commit is contained in:
parent
2914cdc939
commit
f77c4642cb
10 changed files with 65 additions and 65 deletions
|
@ -348,7 +348,7 @@ static void PrepareTransparentDoors(sector_t * sector)
|
||||||
|
|
||||||
int side = sector->lines[i]->sidedef[0]->sector == sec;
|
int side = sector->lines[i]->sidedef[0]->sector == sec;
|
||||||
|
|
||||||
if (sector->GetPlaneTexZ(sector_t::floor)!=sec->GetPlaneTexZ(sector_t::floor)+FRACUNIT)
|
if (sector->GetPlaneTexZ(sector_t::floor)!=sec->GetPlaneTexZ(sector_t::floor)+1.)
|
||||||
{
|
{
|
||||||
sector->transdoor=false;
|
sector->transdoor=false;
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -338,7 +338,7 @@ void FFlatVertexBuffer::CreateVBO()
|
||||||
{
|
{
|
||||||
sectors[i].vboindex[3] = sectors[i].vboindex[2] =
|
sectors[i].vboindex[3] = sectors[i].vboindex[2] =
|
||||||
sectors[i].vboindex[1] = sectors[i].vboindex[0] = -1;
|
sectors[i].vboindex[1] = sectors[i].vboindex[0] = -1;
|
||||||
sectors[i].vboheight[1] = sectors[i].vboheight[0] = FIXED_MIN;
|
sectors[i].vboheight[1] = sectors[i].vboheight[0] = FLT_MIN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -129,33 +129,33 @@ void GLWall::DrawDecal(DBaseDecal *decal)
|
||||||
if (type!=RENDERWALL_TOP) return;
|
if (type!=RENDERWALL_TOP) return;
|
||||||
if (line->flags & ML_DONTPEGTOP)
|
if (line->flags & ML_DONTPEGTOP)
|
||||||
{
|
{
|
||||||
zpos = decal->Z + frontsector->GetPlaneTexZF(sector_t::ceiling);
|
zpos = decal->Z + frontsector->GetPlaneTexZ(sector_t::ceiling);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zpos = decal->Z + seg->backsector->GetPlaneTexZF(sector_t::ceiling);
|
zpos = decal->Z + seg->backsector->GetPlaneTexZ(sector_t::ceiling);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RF_RELLOWER:
|
case RF_RELLOWER:
|
||||||
if (type!=RENDERWALL_BOTTOM) return;
|
if (type!=RENDERWALL_BOTTOM) return;
|
||||||
if (line->flags & ML_DONTPEGBOTTOM)
|
if (line->flags & ML_DONTPEGBOTTOM)
|
||||||
{
|
{
|
||||||
zpos = decal->Z + frontsector->GetPlaneTexZF(sector_t::ceiling);
|
zpos = decal->Z + frontsector->GetPlaneTexZ(sector_t::ceiling);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zpos = decal->Z + seg->backsector->GetPlaneTexZF(sector_t::floor);
|
zpos = decal->Z + seg->backsector->GetPlaneTexZ(sector_t::floor);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RF_RELMID:
|
case RF_RELMID:
|
||||||
if (type==RENDERWALL_TOP || type==RENDERWALL_BOTTOM) return;
|
if (type==RENDERWALL_TOP || type==RENDERWALL_BOTTOM) return;
|
||||||
if (line->flags & ML_DONTPEGBOTTOM)
|
if (line->flags & ML_DONTPEGBOTTOM)
|
||||||
{
|
{
|
||||||
zpos = decal->Z + frontsector->GetPlaneTexZF(sector_t::floor);
|
zpos = decal->Z + frontsector->GetPlaneTexZ(sector_t::floor);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zpos = decal->Z + frontsector->GetPlaneTexZF(sector_t::ceiling);
|
zpos = decal->Z + frontsector->GetPlaneTexZ(sector_t::ceiling);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1222,7 +1222,7 @@ void FDrawInfo::FloodLowerGap(seg_t * seg)
|
||||||
|
|
||||||
|
|
||||||
if (fakebsector->GetTexture(sector_t::floor) == skyflatnum) return;
|
if (fakebsector->GetTexture(sector_t::floor) == skyflatnum) return;
|
||||||
if (fakebsector->GetPlaneTexZF(sector_t::floor) > ViewPos.Z) return;
|
if (fakebsector->GetPlaneTexZ(sector_t::floor) > ViewPos.Z) return;
|
||||||
|
|
||||||
if (seg->sidedef == seg->linedef->sidedef[0])
|
if (seg->sidedef == seg->linedef->sidedef[0])
|
||||||
{
|
{
|
||||||
|
|
|
@ -595,7 +595,7 @@ void GLFlat::ProcessSector(sector_t * frontsector)
|
||||||
{
|
{
|
||||||
gl_drawinfo->AddFloorStack(sector); // stacked sector things require visplane merging.
|
gl_drawinfo->AddFloorStack(sector); // stacked sector things require visplane merging.
|
||||||
}
|
}
|
||||||
alpha = frontsector->GetAlpha(sector_t::floor) / 65536.0f;
|
alpha = frontsector->GetAlpha(sector_t::floor);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -654,7 +654,7 @@ void GLFlat::ProcessSector(sector_t * frontsector)
|
||||||
{
|
{
|
||||||
gl_drawinfo->AddCeilingStack(sector);
|
gl_drawinfo->AddCeilingStack(sector);
|
||||||
}
|
}
|
||||||
alpha = frontsector->GetAlpha(sector_t::ceiling) / 65536.0f;
|
alpha = frontsector->GetAlpha(sector_t::ceiling);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -299,14 +299,14 @@ bool FDrawInfo::DoOneSectorUpper(subsector_t * subsec, float Planez)
|
||||||
if (sec->ceilingplane.isSlope()) return false;
|
if (sec->ceilingplane.isSlope()) return false;
|
||||||
|
|
||||||
// Is the neighboring ceiling lower than the desired height?
|
// Is the neighboring ceiling lower than the desired height?
|
||||||
if (sec->GetPlaneTexZF(sector_t::ceiling) < Planez)
|
if (sec->GetPlaneTexZ(sector_t::ceiling) < Planez)
|
||||||
{
|
{
|
||||||
// todo: check for missing textures.
|
// todo: check for missing textures.
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is an exact height match which means we don't have to do any further checks for this sector
|
// This is an exact height match which means we don't have to do any further checks for this sector
|
||||||
if (sec->GetPlaneTexZF(sector_t::ceiling) == Planez)
|
if (sec->GetPlaneTexZ(sector_t::ceiling) == Planez)
|
||||||
{
|
{
|
||||||
// If there's a texture abort
|
// If there's a texture abort
|
||||||
FTexture * tex = TexMan[seg->sidedef->GetTexture(side_t::top)];
|
FTexture * tex = TexMan[seg->sidedef->GetTexture(side_t::top)];
|
||||||
|
@ -357,14 +357,14 @@ bool FDrawInfo::DoOneSectorLower(subsector_t * subsec, float Planez)
|
||||||
if (sec->floorplane.isSlope()) return false;
|
if (sec->floorplane.isSlope()) return false;
|
||||||
|
|
||||||
// Is the neighboring floor higher than the desired height?
|
// Is the neighboring floor higher than the desired height?
|
||||||
if (sec->GetPlaneTexZF(sector_t::floor) > Planez)
|
if (sec->GetPlaneTexZ(sector_t::floor) > Planez)
|
||||||
{
|
{
|
||||||
// todo: check for missing textures.
|
// todo: check for missing textures.
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is an exact height match which means we don't have to do any further checks for this sector
|
// This is an exact height match which means we don't have to do any further checks for this sector
|
||||||
if (sec->GetPlaneTexZF(sector_t::floor) == Planez)
|
if (sec->GetPlaneTexZ(sector_t::floor) == Planez)
|
||||||
{
|
{
|
||||||
// If there's a texture abort
|
// If there's a texture abort
|
||||||
FTexture * tex = TexMan[seg->sidedef->GetTexture(side_t::bottom)];
|
FTexture * tex = TexMan[seg->sidedef->GetTexture(side_t::bottom)];
|
||||||
|
@ -416,7 +416,7 @@ bool FDrawInfo::DoFakeBridge(subsector_t * subsec, float Planez)
|
||||||
if (sec->floorplane.isSlope()) return false;
|
if (sec->floorplane.isSlope()) return false;
|
||||||
|
|
||||||
// Is the neighboring floor higher than the desired height?
|
// Is the neighboring floor higher than the desired height?
|
||||||
if (sec->GetPlaneTexZF(sector_t::floor) < Planez)
|
if (sec->GetPlaneTexZ(sector_t::floor) < Planez)
|
||||||
{
|
{
|
||||||
// todo: check for missing textures.
|
// todo: check for missing textures.
|
||||||
return false;
|
return false;
|
||||||
|
@ -424,7 +424,7 @@ bool FDrawInfo::DoFakeBridge(subsector_t * subsec, float Planez)
|
||||||
|
|
||||||
// This is an exact height match which means we don't have to do any further checks for this sector
|
// This is an exact height match which means we don't have to do any further checks for this sector
|
||||||
// No texture checks though!
|
// No texture checks though!
|
||||||
if (sec->GetPlaneTexZF(sector_t::floor) == Planez) continue;
|
if (sec->GetPlaneTexZ(sector_t::floor) == Planez) continue;
|
||||||
}
|
}
|
||||||
if (!DoFakeBridge(backsub, Planez)) return false;
|
if (!DoFakeBridge(backsub, Planez)) return false;
|
||||||
}
|
}
|
||||||
|
@ -469,7 +469,7 @@ bool FDrawInfo::DoFakeCeilingBridge(subsector_t * subsec, float Planez)
|
||||||
if (sec->ceilingplane.isSlope()) return false;
|
if (sec->ceilingplane.isSlope()) return false;
|
||||||
|
|
||||||
// Is the neighboring ceiling higher than the desired height?
|
// Is the neighboring ceiling higher than the desired height?
|
||||||
if (sec->GetPlaneTexZF(sector_t::ceiling) > Planez)
|
if (sec->GetPlaneTexZ(sector_t::ceiling) > Planez)
|
||||||
{
|
{
|
||||||
// todo: check for missing textures.
|
// todo: check for missing textures.
|
||||||
return false;
|
return false;
|
||||||
|
@ -477,7 +477,7 @@ bool FDrawInfo::DoFakeCeilingBridge(subsector_t * subsec, float Planez)
|
||||||
|
|
||||||
// This is an exact height match which means we don't have to do any further checks for this sector
|
// This is an exact height match which means we don't have to do any further checks for this sector
|
||||||
// No texture checks though!
|
// No texture checks though!
|
||||||
if (sec->GetPlaneTexZF(sector_t::ceiling) == Planez) continue;
|
if (sec->GetPlaneTexZ(sector_t::ceiling) == Planez) continue;
|
||||||
}
|
}
|
||||||
if (!DoFakeCeilingBridge(backsub, Planez)) return false;
|
if (!DoFakeCeilingBridge(backsub, Planez)) return false;
|
||||||
}
|
}
|
||||||
|
@ -553,7 +553,7 @@ void FDrawInfo::HandleMissingTextures()
|
||||||
{
|
{
|
||||||
// It isn't a hole. Now check whether it might be a fake bridge
|
// It isn't a hole. Now check whether it might be a fake bridge
|
||||||
sector_t * fakesector = gl_FakeFlat(MissingUpperTextures[i].seg->frontsector, &fake, false);
|
sector_t * fakesector = gl_FakeFlat(MissingUpperTextures[i].seg->frontsector, &fake, false);
|
||||||
float planez = (float)fakesector->GetPlaneTexZF(sector_t::ceiling);
|
float planez = (float)fakesector->GetPlaneTexZ(sector_t::ceiling);
|
||||||
|
|
||||||
backsub->validcount = validcount;
|
backsub->validcount = validcount;
|
||||||
if (DoFakeCeilingBridge(backsub, planez))
|
if (DoFakeCeilingBridge(backsub, planez))
|
||||||
|
@ -624,7 +624,7 @@ void FDrawInfo::HandleMissingTextures()
|
||||||
{
|
{
|
||||||
// It isn't a hole. Now check whether it might be a fake bridge
|
// It isn't a hole. Now check whether it might be a fake bridge
|
||||||
sector_t * fakesector = gl_FakeFlat(MissingLowerTextures[i].seg->frontsector, &fake, false);
|
sector_t * fakesector = gl_FakeFlat(MissingLowerTextures[i].seg->frontsector, &fake, false);
|
||||||
float planez = (float)fakesector->GetPlaneTexZF(sector_t::floor);
|
float planez = (float)fakesector->GetPlaneTexZ(sector_t::floor);
|
||||||
|
|
||||||
backsub->validcount = validcount;
|
backsub->validcount = validcount;
|
||||||
if (DoFakeBridge(backsub, planez))
|
if (DoFakeBridge(backsub, planez))
|
||||||
|
@ -668,7 +668,7 @@ void FDrawInfo::DrawUnhandledMissingTextures()
|
||||||
// already done!
|
// already done!
|
||||||
if (seg->linedef->validcount == validcount) continue; // already done
|
if (seg->linedef->validcount == validcount) continue; // already done
|
||||||
seg->linedef->validcount = validcount;
|
seg->linedef->validcount = validcount;
|
||||||
if (seg->frontsector->GetPlaneTexZF(sector_t::ceiling) < ViewPos.Z) continue; // out of sight
|
if (seg->frontsector->GetPlaneTexZ(sector_t::ceiling) < ViewPos.Z) continue; // out of sight
|
||||||
|
|
||||||
// FIXME: The check for degenerate subsectors should be more precise
|
// FIXME: The check for degenerate subsectors should be more precise
|
||||||
if (seg->PartnerSeg && (seg->PartnerSeg->Subsector->flags & SSECF_DEGENERATE)) continue;
|
if (seg->PartnerSeg && (seg->PartnerSeg->Subsector->flags & SSECF_DEGENERATE)) continue;
|
||||||
|
@ -690,7 +690,7 @@ void FDrawInfo::DrawUnhandledMissingTextures()
|
||||||
if (seg->linedef->validcount == validcount) continue; // already done
|
if (seg->linedef->validcount == validcount) continue; // already done
|
||||||
seg->linedef->validcount = validcount;
|
seg->linedef->validcount = validcount;
|
||||||
if (!(sectorrenderflags[seg->backsector->sectornum] & SSRF_RENDERFLOOR)) continue;
|
if (!(sectorrenderflags[seg->backsector->sectornum] & SSRF_RENDERFLOOR)) continue;
|
||||||
if (seg->frontsector->GetPlaneTexZF(sector_t::floor) > ViewPos.Z) continue; // out of sight
|
if (seg->frontsector->GetPlaneTexZ(sector_t::floor) > ViewPos.Z) continue; // out of sight
|
||||||
if (seg->backsector->transdoor) continue;
|
if (seg->backsector->transdoor) continue;
|
||||||
if (seg->backsector->GetTexture(sector_t::floor) == skyflatnum) continue;
|
if (seg->backsector->GetTexture(sector_t::floor) == skyflatnum) continue;
|
||||||
if (seg->backsector->ValidatePortal(sector_t::floor) != NULL) continue;
|
if (seg->backsector->ValidatePortal(sector_t::floor) != NULL) continue;
|
||||||
|
@ -758,8 +758,8 @@ bool FDrawInfo::CheckAnchorFloor(subsector_t * sub)
|
||||||
{
|
{
|
||||||
// I'm ignoring slopes, scaling and rotation here. The likelihood of ZDoom maps
|
// I'm ignoring slopes, scaling and rotation here. The likelihood of ZDoom maps
|
||||||
// using such crap hacks is simply too small
|
// using such crap hacks is simply too small
|
||||||
if (sub->render_sector->GetTexture(sector_t::floor)==backsub->render_sector->GetTexture(sector_t::floor) &&
|
if (sub->render_sector->GetTexture(sector_t::floor) == backsub->render_sector->GetTexture(sector_t::floor) &&
|
||||||
sub->render_sector->GetPlaneTexZ(sector_t::floor)==backsub->render_sector->GetPlaneTexZ(sector_t::floor) &&
|
sub->render_sector->GetPlaneTexZ(sector_t::floor) == backsub->render_sector->GetPlaneTexZ(sector_t::floor) &&
|
||||||
sub->render_sector->GetFloorLight() == backsub->render_sector->GetFloorLight())
|
sub->render_sector->GetFloorLight() == backsub->render_sector->GetFloorLight())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
|
@ -797,10 +797,10 @@ bool FDrawInfo::CollectSubsectorsFloor(subsector_t * sub, sector_t * anchor)
|
||||||
if (!(ss_renderflags[DWORD(sub - subsectors)] & SSRF_PROCESSED)) return true;
|
if (!(ss_renderflags[DWORD(sub - subsectors)] & SSRF_PROCESSED)) return true;
|
||||||
|
|
||||||
if (sub->render_sector->GetTexture(sector_t::floor) != anchor->GetTexture(sector_t::floor) ||
|
if (sub->render_sector->GetTexture(sector_t::floor) != anchor->GetTexture(sector_t::floor) ||
|
||||||
sub->render_sector->GetPlaneTexZF(sector_t::floor) != anchor->GetPlaneTexZF(sector_t::floor) ||
|
sub->render_sector->GetPlaneTexZ(sector_t::floor) != anchor->GetPlaneTexZ(sector_t::floor) ||
|
||||||
sub->render_sector->GetFloorLight() != anchor->GetFloorLight())
|
sub->render_sector->GetFloorLight() != anchor->GetFloorLight())
|
||||||
{
|
{
|
||||||
if (sub == viewsubsector && ViewPos.Z < anchor->GetPlaneTexZF(sector_t::floor)) inview = true;
|
if (sub == viewsubsector && ViewPos.Z < anchor->GetPlaneTexZ(sector_t::floor)) inview = true;
|
||||||
HandledSubsectors.Push(sub);
|
HandledSubsectors.Push(sub);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -825,9 +825,9 @@ bool FDrawInfo::CollectSubsectorsFloor(subsector_t * sub, sector_t * anchor)
|
||||||
else if (sub->render_sector == backsub->render_sector)
|
else if (sub->render_sector == backsub->render_sector)
|
||||||
{
|
{
|
||||||
// Any anchor not within the original anchor's visplane terminates the processing.
|
// Any anchor not within the original anchor's visplane terminates the processing.
|
||||||
if (sub->render_sector->GetTexture(sector_t::floor)!=anchor->GetTexture(sector_t::floor) ||
|
if (sub->render_sector->GetTexture(sector_t::floor) != anchor->GetTexture(sector_t::floor) ||
|
||||||
sub->render_sector->GetPlaneTexZ(sector_t::floor)!=anchor->GetPlaneTexZ(sector_t::floor) ||
|
sub->render_sector->GetPlaneTexZ(sector_t::floor) != anchor->GetPlaneTexZ(sector_t::floor) ||
|
||||||
sub->render_sector->GetFloorLight() != anchor->GetFloorLight())
|
sub->render_sector->GetFloorLight() != anchor->GetFloorLight())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -864,8 +864,8 @@ bool FDrawInfo::CheckAnchorCeiling(subsector_t * sub)
|
||||||
{
|
{
|
||||||
// I'm ignoring slopes, scaling and rotation here. The likelihood of ZDoom maps
|
// I'm ignoring slopes, scaling and rotation here. The likelihood of ZDoom maps
|
||||||
// using such crap hacks is simply too small
|
// using such crap hacks is simply too small
|
||||||
if (sub->render_sector->GetTexture(sector_t::ceiling)==backsub->render_sector->GetTexture(sector_t::ceiling) &&
|
if (sub->render_sector->GetTexture(sector_t::ceiling) == backsub->render_sector->GetTexture(sector_t::ceiling) &&
|
||||||
sub->render_sector->GetPlaneTexZ(sector_t::ceiling)==backsub->render_sector->GetPlaneTexZ(sector_t::ceiling) &&
|
sub->render_sector->GetPlaneTexZ(sector_t::ceiling) == backsub->render_sector->GetPlaneTexZ(sector_t::ceiling) &&
|
||||||
sub->render_sector->GetCeilingLight() == backsub->render_sector->GetCeilingLight())
|
sub->render_sector->GetCeilingLight() == backsub->render_sector->GetCeilingLight())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
|
@ -898,11 +898,11 @@ bool FDrawInfo::CollectSubsectorsCeiling(subsector_t * sub, sector_t * anchor)
|
||||||
// Is not being rendererd so don't bother.
|
// Is not being rendererd so don't bother.
|
||||||
if (!(ss_renderflags[DWORD(sub-subsectors)]&SSRF_PROCESSED)) return true;
|
if (!(ss_renderflags[DWORD(sub-subsectors)]&SSRF_PROCESSED)) return true;
|
||||||
|
|
||||||
if (sub->render_sector->GetTexture(sector_t::ceiling)!=anchor->GetTexture(sector_t::ceiling) ||
|
if (sub->render_sector->GetTexture(sector_t::ceiling) != anchor->GetTexture(sector_t::ceiling) ||
|
||||||
sub->render_sector->GetPlaneTexZ(sector_t::ceiling)!=anchor->GetPlaneTexZ(sector_t::ceiling) ||
|
sub->render_sector->GetPlaneTexZ(sector_t::ceiling) != anchor->GetPlaneTexZ(sector_t::ceiling) ||
|
||||||
sub->render_sector->GetCeilingLight() != anchor->GetCeilingLight())
|
sub->render_sector->GetCeilingLight() != anchor->GetCeilingLight())
|
||||||
{
|
{
|
||||||
HandledSubsectors.Push (sub);
|
HandledSubsectors.Push(sub);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -926,9 +926,9 @@ bool FDrawInfo::CollectSubsectorsCeiling(subsector_t * sub, sector_t * anchor)
|
||||||
else if (sub->render_sector == backsub->render_sector)
|
else if (sub->render_sector == backsub->render_sector)
|
||||||
{
|
{
|
||||||
// Any anchor not within the original anchor's visplane terminates the processing.
|
// Any anchor not within the original anchor's visplane terminates the processing.
|
||||||
if (sub->render_sector->GetTexture(sector_t::ceiling)!=anchor->GetTexture(sector_t::ceiling) ||
|
if (sub->render_sector->GetTexture(sector_t::ceiling) != anchor->GetTexture(sector_t::ceiling) ||
|
||||||
sub->render_sector->GetPlaneTexZ(sector_t::ceiling)!=anchor->GetPlaneTexZ(sector_t::ceiling) ||
|
sub->render_sector->GetPlaneTexZ(sector_t::ceiling) != anchor->GetPlaneTexZ(sector_t::ceiling) ||
|
||||||
sub->render_sector->GetCeilingLight() != anchor->GetCeilingLight())
|
sub->render_sector->GetCeilingLight() != anchor->GetCeilingLight())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,7 +262,7 @@ void GLWall::SkyTop(seg_t * seg,sector_t * fs,sector_t * bs,vertex_t * v1,vertex
|
||||||
// one more check for some ugly transparent door hacks
|
// one more check for some ugly transparent door hacks
|
||||||
if (!bs->floorplane.isSlope() && !fs->floorplane.isSlope())
|
if (!bs->floorplane.isSlope() && !fs->floorplane.isSlope())
|
||||||
{
|
{
|
||||||
if (bs->GetPlaneTexZ(sector_t::floor)==fs->GetPlaneTexZ(sector_t::floor)+FRACUNIT)
|
if (bs->GetPlaneTexZ(sector_t::floor)==fs->GetPlaneTexZ(sector_t::floor)+1.)
|
||||||
{
|
{
|
||||||
FTexture * tex = TexMan(seg->sidedef->GetTexture(side_t::bottom));
|
FTexture * tex = TexMan(seg->sidedef->GetTexture(side_t::bottom));
|
||||||
if (!tex || tex->UseType==FTexture::TEX_Null) return;
|
if (!tex || tex->UseType==FTexture::TEX_Null) return;
|
||||||
|
|
|
@ -288,7 +288,7 @@ public:
|
||||||
bool ceiling;
|
bool ceiling;
|
||||||
BYTE renderflags;
|
BYTE renderflags;
|
||||||
int vboindex;
|
int vboindex;
|
||||||
int vboheight;
|
//int vboheight;
|
||||||
|
|
||||||
int dynlightindex;
|
int dynlightindex;
|
||||||
|
|
||||||
|
|
|
@ -360,12 +360,12 @@ bool GLWall::DoHorizon(seg_t * seg,sector_t * fs, vertex_t * v1,vertex_t * v2)
|
||||||
lightlist_t * light;
|
lightlist_t * light;
|
||||||
|
|
||||||
// ZDoom doesn't support slopes in a horizon sector so I won't either!
|
// ZDoom doesn't support slopes in a horizon sector so I won't either!
|
||||||
ztop[1] = ztop[0] = fs->GetPlaneTexZF(sector_t::ceiling);
|
ztop[1] = ztop[0] = fs->GetPlaneTexZ(sector_t::ceiling);
|
||||||
zbottom[1] = zbottom[0] = fs->GetPlaneTexZF(sector_t::floor);
|
zbottom[1] = zbottom[0] = fs->GetPlaneTexZ(sector_t::floor);
|
||||||
|
|
||||||
if (ViewPos.Z < fs->GetPlaneTexZF(sector_t::ceiling))
|
if (ViewPos.Z < fs->GetPlaneTexZ(sector_t::ceiling))
|
||||||
{
|
{
|
||||||
if (ViewPos.Z > fs->GetPlaneTexZF(sector_t::floor))
|
if (ViewPos.Z > fs->GetPlaneTexZ(sector_t::floor))
|
||||||
zbottom[1] = zbottom[0] = ViewPos.Z;
|
zbottom[1] = zbottom[0] = ViewPos.Z;
|
||||||
|
|
||||||
if (fs->GetTexture(sector_t::ceiling) == skyflatnum)
|
if (fs->GetTexture(sector_t::ceiling) == skyflatnum)
|
||||||
|
@ -393,9 +393,9 @@ bool GLWall::DoHorizon(seg_t * seg,sector_t * fs, vertex_t * v1,vertex_t * v2)
|
||||||
ztop[1] = ztop[0] = zbottom[0];
|
ztop[1] = ztop[0] = zbottom[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ViewPos.Z > fs->GetPlaneTexZF(sector_t::floor))
|
if (ViewPos.Z > fs->GetPlaneTexZ(sector_t::floor))
|
||||||
{
|
{
|
||||||
zbottom[1] = zbottom[0] = fs->GetPlaneTexZF(sector_t::floor);
|
zbottom[1] = zbottom[0] = fs->GetPlaneTexZ(sector_t::floor);
|
||||||
if (fs->GetTexture(sector_t::floor) == skyflatnum)
|
if (fs->GetTexture(sector_t::floor) == skyflatnum)
|
||||||
{
|
{
|
||||||
SkyPlane(fs, sector_t::floor, false);
|
SkyPlane(fs, sector_t::floor, false);
|
||||||
|
@ -707,12 +707,12 @@ void GLWall::DoMidTexture(seg_t * seg, bool drawfogboundary,
|
||||||
float rowoffset = tci.RowOffset(seg->sidedef->GetTextureYOffset(side_t::mid));
|
float rowoffset = tci.RowOffset(seg->sidedef->GetTextureYOffset(side_t::mid));
|
||||||
if ((seg->linedef->flags & ML_DONTPEGBOTTOM) >0)
|
if ((seg->linedef->flags & ML_DONTPEGBOTTOM) >0)
|
||||||
{
|
{
|
||||||
texturebottom = MAX(realfront->GetPlaneTexZF(sector_t::floor), realback->GetPlaneTexZF(sector_t::floor)) + rowoffset;
|
texturebottom = MAX(realfront->GetPlaneTexZ(sector_t::floor), realback->GetPlaneTexZ(sector_t::floor)) + rowoffset;
|
||||||
texturetop = texturebottom + tci.mRenderHeight;
|
texturetop = texturebottom + tci.mRenderHeight;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
texturetop = MIN(realfront->GetPlaneTexZF(sector_t::ceiling), realback->GetPlaneTexZF(sector_t::ceiling)) + rowoffset;
|
texturetop = MIN(realfront->GetPlaneTexZ(sector_t::ceiling), realback->GetPlaneTexZ(sector_t::ceiling)) + rowoffset;
|
||||||
texturebottom = texturetop - tci.mRenderHeight;
|
texturebottom = texturetop - tci.mRenderHeight;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -896,7 +896,7 @@ void GLWall::DoMidTexture(seg_t * seg, bool drawfogboundary,
|
||||||
// set up alpha blending
|
// set up alpha blending
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
if (seg->linedef->Alpha)// && seg->linedef->special!=Line_Fogsheet)
|
if (seg->linedef->alpha != 0)
|
||||||
{
|
{
|
||||||
bool translucent = false;
|
bool translucent = false;
|
||||||
|
|
||||||
|
@ -904,13 +904,13 @@ void GLWall::DoMidTexture(seg_t * seg, bool drawfogboundary,
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
RenderStyle=STYLE_Translucent;
|
RenderStyle=STYLE_Translucent;
|
||||||
alpha=FIXED2FLOAT(seg->linedef->Alpha);
|
alpha = seg->linedef->alpha;
|
||||||
translucent = seg->linedef->Alpha < FRACUNIT || (gltexture && gltexture->GetTransparent());
|
translucent =alpha < 1. || (gltexture && gltexture->GetTransparent());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ML_ADDTRANS:
|
case ML_ADDTRANS:
|
||||||
RenderStyle=STYLE_Add;
|
RenderStyle=STYLE_Add;
|
||||||
alpha=FIXED2FLOAT(seg->linedef->Alpha);
|
alpha = seg->linedef->alpha;
|
||||||
translucent=true;
|
translucent=true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1065,7 +1065,7 @@ void GLWall::BuildFFBlock(seg_t * seg, F3DFloor * rover,
|
||||||
to = (rover->flags&(FF_UPPERTEXTURE | FF_LOWERTEXTURE)) ?
|
to = (rover->flags&(FF_UPPERTEXTURE | FF_LOWERTEXTURE)) ?
|
||||||
0.f : tci.RowOffset(mastersd->GetTextureYOffset(side_t::mid));
|
0.f : tci.RowOffset(mastersd->GetTextureYOffset(side_t::mid));
|
||||||
|
|
||||||
to += rowoffset + rover->top.model->GetPlaneTexZF(rover->top.isceiling);
|
to += rowoffset + rover->top.model->GetPlaneTexZ(rover->top.isceiling);
|
||||||
|
|
||||||
uplft.v = tci.FloatToTexV(to - ff_topleft);
|
uplft.v = tci.FloatToTexV(to - ff_topleft);
|
||||||
uprgt.v = tci.FloatToTexV(to - ff_topright);
|
uprgt.v = tci.FloatToTexV(to - ff_topright);
|
||||||
|
@ -1372,8 +1372,8 @@ void GLWall::Process(seg_t *seg, sector_t * frontsector, sector_t * backsector)
|
||||||
segfront = frontsector;
|
segfront = frontsector;
|
||||||
segback = backsector;
|
segback = backsector;
|
||||||
}
|
}
|
||||||
frefz = realfront->GetPlaneTexZF(sector_t::floor);
|
frefz = realfront->GetPlaneTexZ(sector_t::floor);
|
||||||
crefz = realfront->GetPlaneTexZF(sector_t::ceiling);
|
crefz = realfront->GetPlaneTexZ(sector_t::ceiling);
|
||||||
|
|
||||||
if (seg->sidedef == seg->linedef->sidedef[0])
|
if (seg->sidedef == seg->linedef->sidedef[0])
|
||||||
{
|
{
|
||||||
|
@ -1525,7 +1525,7 @@ void GLWall::Process(seg_t *seg, sector_t * frontsector, sector_t * backsector)
|
||||||
if (gltexture)
|
if (gltexture)
|
||||||
{
|
{
|
||||||
DoTexture(RENDERWALL_TOP, seg, (seg->linedef->flags & (ML_DONTPEGTOP)) == 0,
|
DoTexture(RENDERWALL_TOP, seg, (seg->linedef->flags & (ML_DONTPEGTOP)) == 0,
|
||||||
crefz, realback->GetPlaneTexZF(sector_t::ceiling),
|
crefz, realback->GetPlaneTexZ(sector_t::ceiling),
|
||||||
fch1, fch2, bch1a, bch2a, 0);
|
fch1, fch2, bch1a, bch2a, 0);
|
||||||
}
|
}
|
||||||
else if (!(seg->sidedef->Flags & WALLF_POLYOBJ))
|
else if (!(seg->sidedef->Flags & WALLF_POLYOBJ))
|
||||||
|
@ -1538,7 +1538,7 @@ void GLWall::Process(seg_t *seg, sector_t * frontsector, sector_t * backsector)
|
||||||
if (gltexture)
|
if (gltexture)
|
||||||
{
|
{
|
||||||
DoTexture(RENDERWALL_TOP, seg, (seg->linedef->flags & (ML_DONTPEGTOP)) == 0,
|
DoTexture(RENDERWALL_TOP, seg, (seg->linedef->flags & (ML_DONTPEGTOP)) == 0,
|
||||||
crefz, realback->GetPlaneTexZF(sector_t::ceiling),
|
crefz, realback->GetPlaneTexZ(sector_t::ceiling),
|
||||||
fch1, fch2, bch1a, bch2a, 0);
|
fch1, fch2, bch1a, bch2a, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1602,10 +1602,10 @@ void GLWall::Process(seg_t *seg, sector_t * frontsector, sector_t * backsector)
|
||||||
if (gltexture)
|
if (gltexture)
|
||||||
{
|
{
|
||||||
DoTexture(RENDERWALL_BOTTOM, seg, (seg->linedef->flags & ML_DONTPEGBOTTOM) > 0,
|
DoTexture(RENDERWALL_BOTTOM, seg, (seg->linedef->flags & ML_DONTPEGBOTTOM) > 0,
|
||||||
realback->GetPlaneTexZF(sector_t::floor), frefz,
|
realback->GetPlaneTexZ(sector_t::floor), frefz,
|
||||||
bfh1, bfh2, ffh1, ffh2,
|
bfh1, bfh2, ffh1, ffh2,
|
||||||
frontsector->GetTexture(sector_t::ceiling) == skyflatnum && backsector->GetTexture(sector_t::ceiling) == skyflatnum ?
|
frontsector->GetTexture(sector_t::ceiling) == skyflatnum && backsector->GetTexture(sector_t::ceiling) == skyflatnum ?
|
||||||
frefz - realback->GetPlaneTexZF(sector_t::ceiling) :
|
frefz - realback->GetPlaneTexZ(sector_t::ceiling) :
|
||||||
frefz - crefz);
|
frefz - crefz);
|
||||||
}
|
}
|
||||||
else if (!(seg->sidedef->Flags & WALLF_POLYOBJ))
|
else if (!(seg->sidedef->Flags & WALLF_POLYOBJ))
|
||||||
|
@ -1621,7 +1621,7 @@ void GLWall::Process(seg_t *seg, sector_t * frontsector, sector_t * backsector)
|
||||||
if (gltexture)
|
if (gltexture)
|
||||||
{
|
{
|
||||||
DoTexture(RENDERWALL_BOTTOM, seg, (seg->linedef->flags & ML_DONTPEGBOTTOM) > 0,
|
DoTexture(RENDERWALL_BOTTOM, seg, (seg->linedef->flags & ML_DONTPEGBOTTOM) > 0,
|
||||||
realback->GetPlaneTexZF(sector_t::floor), frefz,
|
realback->GetPlaneTexZ(sector_t::floor), frefz,
|
||||||
bfh1, bfh2, ffh1, ffh2, frefz - crefz);
|
bfh1, bfh2, ffh1, ffh2, frefz - crefz);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1648,8 +1648,8 @@ void GLWall::ProcessLowerMiniseg(seg_t *seg, sector_t * frontsector, sector_t *
|
||||||
if (frontsector->GetTexture(sector_t::floor) == skyflatnum) return;
|
if (frontsector->GetTexture(sector_t::floor) == skyflatnum) return;
|
||||||
lightlist = NULL;
|
lightlist = NULL;
|
||||||
|
|
||||||
float ffh = frontsector->GetPlaneTexZF(sector_t::floor);
|
float ffh = frontsector->GetPlaneTexZ(sector_t::floor);
|
||||||
float bfh = backsector->GetPlaneTexZF(sector_t::floor);
|
float bfh = backsector->GetPlaneTexZ(sector_t::floor);
|
||||||
if (bfh > ffh)
|
if (bfh > ffh)
|
||||||
{
|
{
|
||||||
this->seg = seg;
|
this->seg = seg;
|
||||||
|
|
|
@ -1081,8 +1081,8 @@ public:
|
||||||
float reflect[2];
|
float reflect[2];
|
||||||
|
|
||||||
bool transdoor; // For transparent door hacks
|
bool transdoor; // For transparent door hacks
|
||||||
fixed_t transdoorheight; // for transparent door hacks
|
|
||||||
int subsectorcount; // list of subsectors
|
int subsectorcount; // list of subsectors
|
||||||
|
double transdoorheight; // for transparent door hacks
|
||||||
subsector_t ** subsectors;
|
subsector_t ** subsectors;
|
||||||
FPortal * portals[2]; // floor and ceiling portals
|
FPortal * portals[2]; // floor and ceiling portals
|
||||||
FLightNode * lighthead;
|
FLightNode * lighthead;
|
||||||
|
@ -1094,7 +1094,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
int vboindex[4]; // VBO indices of the 4 planes this sector uses during rendering
|
int vboindex[4]; // VBO indices of the 4 planes this sector uses during rendering
|
||||||
fixed_t vboheight[2]; // Last calculated height for the 2 planes of this actual sector
|
double vboheight[2]; // Last calculated height for the 2 planes of this actual sector
|
||||||
int vbocount[2]; // Total count of vertices belonging to this sector's planes
|
int vbocount[2]; // Total count of vertices belonging to this sector's planes
|
||||||
|
|
||||||
float GetReflect(int pos) { return gl_plane_reflection_i? reflect[pos] : 0; }
|
float GetReflect(int pos) { return gl_plane_reflection_i? reflect[pos] : 0; }
|
||||||
|
|
Loading…
Reference in a new issue