Property transfer linedef types

From Eternity Wiki
Revision as of 13:57, 10 May 2018 by Printz (talk | contribs) (New to Boom)
Jump to: navigation, search
Back to 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.

New to Boom

Extended Property Transfer Linedefs
-------------------------------------------------------------------
#     Class  Trig Description
213   Ext    --   Set Tagged Floor Lighting to Lighting on 1st Sidedef's Sector

See Transfer_FloorLight.

261   Ext    --   Set Tagged Ceiling Lighting to Lighting on 1st Sidedef's Sector

See Transfer_CeilingLight.

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.

In UDMF, you need to use linedef's tranmap property to obtain the same effect, on all lines which have to be translucent. You can also opt to use alpha and renderstyle. There's no dedicated linedef special on UDMF for this.

242   Ext    --   Set Tagged Lighting, Flats Heights to 1st Sidedef's Sector,
                  and set colormap based on sidedef textures.

See Transfer_Heights.

223   Ext    --   Length Sets Friction in tagged Sector,Sludge<100, Ice>100

See Sector_SetFriction.

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.

Constant pushers

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

Point pushers

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

For the parameterized special, see Sector_Attach3dMidtex.

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.