mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-18 22:51:50 +00:00
- this hack is needed because dragging vertices around can randomly create wall intersection.
In clear English: Geometry in Build maps is always broken by design. :(
This commit is contained in:
parent
e1661e0de1
commit
91d51d518b
3 changed files with 5 additions and 2 deletions
|
@ -400,6 +400,7 @@ void dragpoint(walltype* startwall, int newx, int newy)
|
|||
vertexscan(startwall, [&](walltype* wal)
|
||||
{
|
||||
wal->move(newx, newy);
|
||||
wal->sectorp()->exflags |= SECTOREX_DRAGGED;
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -85,6 +85,7 @@ DEFINE_TFLAGS_OPERATORS(ESectorFlags)
|
|||
enum ESectorExBits
|
||||
{
|
||||
SECTOREX_CLOUDSCROLL = 1,
|
||||
SECTOREX_DRAGGED = 2,
|
||||
};
|
||||
|
||||
// Flags for retriangulation
|
||||
|
|
|
@ -250,10 +250,11 @@ int BunchDrawer::ClipLine(int aline, bool portal)
|
|||
// check against the maximum possible viewing range of the sector.
|
||||
// Todo: check if this is sufficient or if we really have to do a more costly check against the single visible segments.
|
||||
// Note: These walls may be excluded from the clipper, but not from being drawn!
|
||||
// if sectors got dragged around there may be overlaps which this code does not handle well do it may not run on such sectors.
|
||||
bool dontclip = false;
|
||||
if (sectStartAngle != -1)
|
||||
if (sectStartAngle != -1 && !(wall[line].sectorp()->exflags & SECTOREX_DRAGGED))
|
||||
{
|
||||
if (sectStartAngle > endAngle || sectEndAngle < startAngle)
|
||||
if ((sectStartAngle > endAngle || sectEndAngle < startAngle))
|
||||
{
|
||||
dontclip = true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue