Property transfer linedef types
These linedefs are special purpose and are used to transfer properties from the linedef itself or the sector on its first sidedef to the tagged sector(s). None are triggered, they simply exist.
Extended Property Transfer Linedefs ------------------------------------------------------------------- # Class Trig Description 213 Ext -- Set Tagged Floor Lighting to Lighting on 1st Sidedef's Sector
Used to give the floor of a sector a different light level from the remainder of the sector. For example bright lava in a dark room.
261 Ext -- Set Tagged Ceiling Lighting to Lighting on 1st Sidedef's Sector
Used to give the ceiling of a sector a different light level from the remainder of the sector.
260 Ext -- Make Tagged Lines (or this line if tag==0) Translucent
Used to make 2s normal textures translucent. If tag==0, then this linedef's normal texture is made translucent if it's 2s, and the default translucency map TRANMAP is used as the filter. If tag!=0, then all similarly-tagged 2s linedefs' normal textures are made translucent, and if this linedef's first sidedef contains a valid lump name for its middle texture (as opposed to a texture name), and the lump is 64K long, then that lump will be used as the translucency filter instead of the default TRANMAP, allowing different filters to be used in different parts of the same maps. If the first side's normal texture is not a valid translucency filter lump name, it must be a valid texture name, and will be displayed as such on this linedef.
242 Ext -- Set Tagged Lighting, Flats Heights to 1st Sidedef's Sector, and set colormap based on sidedef textures.
This allows the tagged sector to have two levels -- an actual floor and ceiling, and another floor or ceiling where more flats are rendered. Things will stand on the actual floor or hang from the actual ceiling, while this function provides another rendered floor and ceiling at the heights of the sector on the first sidedef of the linedef. Typical use is "deep water" that can be over the player's head.
---------------------------------- < real sector's ceiling height | real ceiling | < control sector's ceiling texture | | | | < control sector's lightlevel | A | | | < upper texture as colormap | | | | < control sector's floor texture ---------------------------------- < control sector's ceiling height | fake ceiling | < real sector's ceiling texture | | | | < real sector's lightlevel | B | | | < normal texture as colormap | | | fake floor | < real sector's floor texture ---------------------------------- < control sector's floor height | | < control sector's ceiling texture | | | | < control sector's lightlevel | C | | | < lower texture as colormap | | | real floor | < control sector's floor texture ---------------------------------- < real sector's floor height
Boom sectors controlled by a 242 linedef are partitioned into 3 spaces. The viewer's xyz coordinates uniquely determine which space they are in.
If they are in space B (normal space), then the floor and ceiling textures and lightlevel from the real sector are used, and the colormap from the 242 linedef's first sidedef's normal texture is used (COLORMAP is used if it's invalid or missing). The floor and ceiling are rendered at the control sector's heights.
If they are in space C ("underwater"), then the floor and ceiling textures and lightlevel from the control sector are used, and the lower texture in the 242 linedef's first sidedef is used as the colormap.
If they are in space A ("head over ceiling"), then the floor and ceiling textures and lightlevel from the control sector are used, and the upper texture in the 242 linedef's first sidedef is used as the colormap.
If only two of these adjacent partitions in z-space are used, such as underwater and normal space, one has complete control over floor textures, ceiling textures, light level, and colormaps, in each of the two partitions. The control sector determines the textures and lighting in the more "unusual" case (e.g. underwater).
It's also possible for the fake floor to extend below the real floor, in which case an invisible platform / stair effect is created. In that case, the picture looks like this (barring any ceiling effects too):
---------------------------------- < real sector's ceiling texture | real ceiling = fake ceiling | | | | | | B | < real sector's lightlevel | | < normal texture's colormap | | | real floor | ---------------------------------- < invisible, no texture drawn | | | | | | < real sector's lightlevel | C | < normal texture's colormap | | | | | fake floor | < real sector's floor texture ---------------------------------- < fake sector's floor height
In this case, since the viewer is always at or above the fake floor, no colormap/lighting/texture changes occur -- the fake floor just gets drawn at the control sector's height, but at the real sector's lighting and texture, while objects stand on the higher height of the real floor.
It's the viewer's position relative to the fake floor and/or fake ceiling, which determines whether the control sector's lighting and textures should be used, and which colormap should be used. If the viewer is always between the fake floor and fake ceiling, then no colormap, lighting, or texture changes occur, and the view just sees the real sector's textures and light level drawn at possibly different heights.
If the viewer is below the fake floor height set by the control sector, or is above the fake ceiling height set by the control sector, then the corresponding colormap is used (lower or upper texture name), and the textures and lighting are taken from the control sector rather than the real sector. They are still stacked vertically in standard order -- the control sector's ceiling is always drawn above the viewer, and the control sector's floor is always drawn below the viewer.
The kaleidescope effect only occurs when F_SKY1 is used as the control sector's floor or ceiling. If F_SKY1 is used as the control sector's ceiling texture, then under water, only the control sector's floor appears, but it "envelops" the viewer. Similarly, if F_SKY1 is used as the control sector's floor texture, then when the player's head is over a fake ceiling, the control sector's ceiling is used throughout.
F_SKY1 causes HOM when used as a fake ceiling between the viewer and normal space. Since there is no other good use for it, this kaleidescope is an option turned on by F_SKY1. Note that this does not preclude the use of sky REAL ceilings over deep water -- this is the control sector's ceiling, the one displayed when the viewer is underwater, not the real one.
A colormap has the same size and format as Doom's COLORMAP. Extra colormaps may defined in Boom by adding them between C_START and C_END markers in wads. Colormaps between C_START and C_END are automatically merged by Boom with any previously defined colormaps.
WATERMAP is a colormap predefined by Boom which can be used to provide a blue-green tint while the player is under water. WATERMAP can be modified by pwads.
Ceiling bleeding may occur if required upper textures are not used.
223 Ext -- Length Sets Friction in tagged Sector,Sludge<100, Ice>100
The length of the linedef with type 223 controls the amount of friction experienced by the player in the tagged sector, when in contact with the floor. Lengths less than 100 are sticker than normal, lengths greater than 100 are slipperier than normal. The effect is only present in the tagged sector when its friction enable bit (bit 8) in the sector type is set. This allows the flat to be changed in conjunction with turning the effect on or off thru texture/type changes.
New to MBF
271 Ext -- Transfer sky texture to tagged sectors 272 Ext -- Transfer sky texture to tagged sectors, flipped
These linedefs transfer wall textures to skies. F_SKY1 must still be used as the floor or ceiling texture in the sectors for which sky is desired, but the presence of a 271 or 272 property-transfer linedef can change the sky texture to something other than a level-based default.
Every sector with F_SKY1 floor or ceiling which shares the same sector tag as the 271 or 272 linedef will use a sky texture based on the upper texture of the first sidedef in the 271 or 272 linedef. Sectors with F_SKY1 floors or ceilings which are not tagged with 271 or 272 linedefs, behave just like Doom.
Horizontal offsets or scrolling in the transferred texture, is converted into rotation of the sky texture. Vertical offsets or scrolling is transferred as well, allowing for precise adjustments of sky position. Unpegging in the sky transfer linedef does not affect the sky texture.
Horizontal scrolling of the transferred upper wall texture is converted into rotation of the sky texture, but it occurs at a very slow speed relative to the moving texture, allowing for long-period rotations (such as one complete revolution per Doom real-time hour).
Effects other than sky-transfer effects are not excluded from the affected sector(s), and tags can be shared so long as the effects are unambiguous. For example, a wall-scrolling linedef can share a sector tag with both its affectee linedef (the one being scrolled), and with the sector that the latter controls. There is no ambiguity because one effect (scrolling) applies to a linedef, while the other effect (sky transfer) applies to a sector.
If a sector underneath a special sky needs to be set up to have a different purpose (for example, if it is a lift or a stairbuilder), then two tags will need to be created, and the transfer linedef and any scrolling linedefs will need to be duplicated as well, so that the same effect as far as the sky goes, is duplicated in two separate sector tags. This will not affect sky appearance, but it will allow a special sector which needs a unique tag, to sit under such a sky.
Animated textures may be transferred to skies as well.
In Doom, skies were flipped horizontally. To maintain compatibility with this practice, the 272 linedef flips the wall image horizontally. The 271 linedef does not flip the wall image, and it is intended to make it easier to take existing non-flipped wall textures and transfer them to skies.
Sky textures which are different must be separated by non-sky textures, or else the results are undefined. Note for Eternity Engine v3.31 public beta 6 and later: Sky textures will be rendered using the maximum of the texture height and the height of the tallest patch in the texture, in order to properly support tall skies that do not require stretching for mlook. Because of this, textures which are meant to cut off a taller patch at the texture height will not appear as expected when used as sky textures. Avoid using sky textures which contain patches taller than the texture to avoid this problem.
Two types of constant pushers are available, wind and current. Depending on whether you are above, on, or below (special water sectors) the ground level, the amount of force varies.
The length of the linedef defines the 'full' magnitude of the force, and the linedef's angle defines the direction.
line type above on under --------- ----- -- ----- wind 224 full half none current 225 none full full
The linedef should be tagged to the sector where you want the effect. The special type of the sector should have bit 9 set (0x200). If this bit is turned off, the effect goes away. For example, a fan creating a wind could be turned off, and the wind dies, by changing the sector type and clearing that bit.
Constant pushers can be combined with scrolling effects and point pushers.
224 Ext -- Length/Direction Sets Wind Force in tagged Sectors
225 Ext -- Length/Direction Sets Current Force in tagged Sectors
Two types of point pushers are available, push and pull.
This implementation ignores sector boundaries and provides the effect in a circular area whose center is defined by a Thing of type 5001 (push) or 5002 (pull). You don't have to set any option flags on these Things. A new linedef type of 226 is used to control the effect, and this line should be tagged to the sector with the 5001/5002 Thing.
The length of the linedef defines the 'full' magnitude of the force, and the force is inversely proportional to distance from the point source. If the length of the controlling linedef is L, then the force is reduced to zero at a distance of 2L.
The angle of the controlling linedef is not used.
The sector where the 5001/5002 Things reside must have bit 9 set (0x200) in its type. If this is turned off, the effect goes away.
Point pushers can be combined with scrolling effects and constant pushers.
226 Ext -- Length Sets Point Source Wind/Current Force in Tagged Sectors
New to Eternity
Moving 3DMidTex Lines
These line types allow lines with the 3DMidTex flag (linedef flag 1024) to be scrolled vertically along with the floor or ceiling action of a sector.
The floor or ceiling movement of the sector on the first side of one of these lines will be transferred to the y offsets of both sidedefs of all like-tagged 3DMixTex lines. If the transfer sector or the tagged lines are blocked by a moving object such as an enemy, they will obey the transfer sector's rules for movement when blocked (for example, 3DMidTex lines tagged to a DR door sector will bounce off of monster's heads).
The new linedefs are as follows:
281 Ext -- Floor movement of sector on 1st side is transferred to all like-tagged 3DMidTex lines as vertical scrolling 282 Ext -- Ceiling movement of sector on 1st side is transferred to all like-tagged 3DMidTex lines as vertical scrolling
Heretic wind/current transfer
These lines allow Heretic-style wind and current effects to be used independent of automatic Heretic map translation. BOOM-style Heretic levels should use these lines in combination with scrollers and generalized damage sector types to replicate Heretic sector types 4 and 20 through 51.
Line type 293 duplicates Heretic wind specials, which affect only things with the Bits3 WINDTHRUST flag when the things are anywhere within the tagged sectors.
Line type 294 duplicates Heretic current specials, which affect only the player, and only when he/she is on the ground.
The effect, applied in every tagged sector, is to push all things in the direction of the control linedef with a force proportional to its length. The length of the line is scaled by a factor of 512, giving the following equivalencies for Heretic sector types:
Heretic Sector Type Equivalent Line Setup --------------------------------------------------------------------------- 4 294, East (0 degrees), length 112 20 - 24 294, East (0 degrees), lengths 20, 40, 100, 120, 140 25 - 29 294, North (90 deg.), lengths 20, 40, 100, 120, 140 30 - 34 294, South (270 deg.), lengths 20, 40, 100, 120, 140 35 - 39 294, West (180 deg.), lengths 20, 40, 100, 120, 140 40 - 42 293, East (0 degrees), lengths 20, 40, 100 43 - 45 293, North (90 deg.), lengths 20, 40, 100 46 - 48 293, South (270 deg.), lengths 20, 40, 100 49 - 51 293, West (180 deg.), lengths 20, 40, 100 ---------------------------------------------------------------------------
The new linedefs are as follows:
293 Ext -- Heretic wind in line direction with push magnitude proportional to line length. 294 Ext -- Heretic current in line direction with push magnitude proportional to line length.
Back to Linedef types