Unclosed sector

From SRB2 Wiki
Jump to navigation Jump to search
An unclosed sector in Zone Builder.

A sector is said to be unclosed if the sidedefs belonging to it do not form closed loops along linedefs.

Sector references

The way in which the game determines which sector of the map contains any given point is often misunderstood. While it may seem natural to assume that each sector is delineated by a polygon of linedefs, the game actually stores in each sidedef the number of the sector to which it belongs. This means that it is possible (but not legal) to have a polygon of linedefs where the sidedefs on the inner side of the polygon belong to different sectors. When a map with such a configuration is loaded into the game, this will result in undefined behavior, normally with significant visual glitches.

Correcting aberrant sector references

Solving these problems is not difficult, but it can become tedious if there are errors in several places in a map. To fix a sidedef whose sector reference is incorrect, simply change its sector reference to match those of other sidedefs on the edges of the polygon. Doom Builder and its variants have a Find map errors function that searches the map for errors, including unclosed sectors and other incorrect sector references.

Causes of unclosed sectors

Certain map editor actions do not adjust sector references correctly, and so can lead to unclosed sectors. By learning which operations are potentially dangerous, the risk of causing such problems can be minimized. Some of these are described here.

Dragging one sector into another

When dragging sectors and linedefs from one sector to another, any sidedefs that end up facing into a different sector must be updated to refer to this new sector. Most map editors do not do this automatically, and so dragging linedefs between sectors will often result in sector reference errors. In simple cases, cutting and pasting between sectors is a safe alternative to dragging.

Deleting linedefs

There are very few legitimate reasons for deleting linedefs. It is a common mistake for beginning map designers to attempt to merge two adjacent sectors into one sector by deleting the linedefs that separate them. Most map editors do not attempt to perform the necessary sector reference adjustments when deleting linedefs. The correct method for combining two adjacent sectors into a single sector is to use the editor's "Merge Sectors" function.

Creating illegal layouts

Apart from causing many other problems, certain illegal map arrangements can lead to sector reference inconsistencies, e.g., crossed linedefs. Even once the layout has been corrected, the sector reference problems may remain. Such circumstances should, of course, be avoided without exception.

Enclosed linedefs

Placing a single isolated linedef (or an unclosed chain of linedefs) completely within another sector is legitimate as long as both sidedefs' sector references point to the sector the linedef is in. Although this appears to create an "unclosed" figure, it does not violate the condition that sector references should stay identical along closed loops of linedefs, and therefore is not an "unclosed sector" in the strict sense. This effect can be used to add texture-based decorations (such as flags or vines) in areas without any intended height variation, without having to create an entirely new sector.