Control linedef

From SRB2 Wiki
Jump to: navigation, search

A control linedef is the term given to a linedef in a map that has its settings adjusted to change the behavior of its corresponding target sector. They are most commonly found as part of a corresponding control sector.

Description

A screenshot from SRB2 Doom Builder showing a control sector, its properties, and the target sector.

Whenever you see a sector with something special (anything from FOF to scrolling floor texture), then that sector has a tag. If you check its corresponding control linedef, it has the same tag. That means that they are connected, the linedef being the one who controls the sector's behavior. The control linedef has a certain type that describes what the sector will do. In most cases, there are also parameters that are used to specify the effect further. Those are controlled by several things in the linedef itself, including the upper front texture, the linedef's length (horizontal, vertical, both, or main), or even its texture offsets. The attributes of the sector the linedef is part of, which is called the control sector, are also frequently used as parameters. Not all parameters do something on all linedefs, and the way the effects are applied vary from special to special. For more information on how different types work, see Linedef types.

Implementation

Almost any linedef is good enough to be a control linedef, as long as it isn't serving as a control linedef for another sector. Generally, control linedefs and their corresponding control sectors are outside the main map. This facilitates its location. However, if one thinks that it should be better to have the control linedef be inside the main map, it should be tested first. In some situations, it's fine, yet, it might cause the game to crash, especially if it's the control linedef for an FOF.

Specific parameters

Some linedef types such as linedef type 60 need other parameters than the typical ones like linedef length. It also has a different type of location, that must not be overridden. For more and correct information, you should check the type itself, to avoid problems.