- disabled the hack for fixing the original design of the portal in KDiZD's Z1M1.

This portal got fixed in a later re-release of KDiZD and no other portal needs this runtime fix to my knowledge.
The main problem here is that this runtime fix requires some manipulation of the render data that does not work anymore.

Should other maps need this fix as well they are probably best served with a compatibility entry.
This commit is contained in:
Christoph Oelckers 2018-11-06 21:41:16 +01:00
parent 085bf0d33f
commit f2e593f8bf
4 changed files with 10 additions and 19 deletions

View file

@ -702,20 +702,6 @@ void HWDrawInfo::DoSubsector(subsector_t * sub)
ss_renderflags[sub->Index()] = ss_renderflags[sub->Index()] =
(sub->numlines > 2) ? SSRF_PROCESSED|SSRF_RENDERALL : SSRF_PROCESSED; (sub->numlines > 2) ? SSRF_PROCESSED|SSRF_RENDERALL : SSRF_PROCESSED;
if (sub->hacked & 1) AddHackedSubsector(sub); if (sub->hacked & 1) AddHackedSubsector(sub);
FSectorPortalGroup *portal;
portal = fakesector->GetPortalGroup(sector_t::ceiling);
if (portal != nullptr)
{
AddSubsectorToPortal(portal, sub);
}
portal = fakesector->GetPortalGroup(sector_t::floor);
if (portal != nullptr)
{
AddSubsectorToPortal(portal, sub);
}
} }
} }
} }

View file

@ -187,8 +187,8 @@ void HWDrawInfo::ClearBuffers()
MissingUpperSegs.Clear(); MissingUpperSegs.Clear();
MissingLowerSegs.Clear(); MissingLowerSegs.Clear();
SubsectorHacks.Clear(); SubsectorHacks.Clear();
CeilingStacks.Clear(); //CeilingStacks.Clear();
FloorStacks.Clear(); //FloorStacks.Clear();
HandledSubsectors.Clear(); HandledSubsectors.Clear();
spriteindex = 0; spriteindex = 0;

View file

@ -167,8 +167,8 @@ struct HWDrawInfo
TMap<int, gl_floodrendernode*> floodFloorSegs; TMap<int, gl_floodrendernode*> floodFloorSegs;
TMap<int, gl_floodrendernode*> floodCeilingSegs; TMap<int, gl_floodrendernode*> floodCeilingSegs;
TArray<sector_t *> CeilingStacks; //TArray<sector_t *> CeilingStacks;
TArray<sector_t *> FloorStacks; //TArray<sector_t *> FloorStacks;
TArray<subsector_t *> HandledSubsectors; TArray<subsector_t *> HandledSubsectors;
@ -300,7 +300,6 @@ public:
void DrawPlayerSprites(bool hudModelStep, FRenderState &state); void DrawPlayerSprites(bool hudModelStep, FRenderState &state);
void ProcessLowerMinisegs(TArray<seg_t *> &lowersegs); void ProcessLowerMinisegs(TArray<seg_t *> &lowersegs);
void AddSubsectorToPortal(FSectorPortalGroup *portal, subsector_t *sub);
void AddWall(GLWall *w); void AddWall(GLWall *w);
void AddMirrorSurface(GLWall *w); void AddMirrorSurface(GLWall *w);

View file

@ -1180,6 +1180,11 @@ void HWDrawInfo::HandleHackedSubsectors()
SubsectorHacks.Clear(); SubsectorHacks.Clear();
} }
// This code was meant to fix the portal in KDIZD's Z1M1, but later versions of that mod do not need it anymore.
// I am not aware of other portals ever having been set up so badly as this one so it probably is not needed anymore.
// Even if needed this must be done differently because this code depends on hacking the render data in a bad way.
#if 0
//========================================================================== //==========================================================================
// //
// This merges visplanes that lie inside a sector stack together // This merges visplanes that lie inside a sector stack together
@ -1406,3 +1411,4 @@ void HWDrawInfo::AddSubsectorToPortal(FSectorPortalGroup *ptg, subsector_t *sub)
ptl->AddSubsector(sub); ptl->AddSubsector(sub);
} }
#endif