Difference between revisions of "Linedef types"

From Eternity Wiki
Jump to: navigation, search
(New page: In BOOM actions are caused to happen in the game thru linedef types. BOOM has three kinds of linedef types: * Regular - the linedef types that were already in DOOM II v1.9 * Extended - li...)
 
(Parameterized specials (for UDMF format and ExtraData))
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
In BOOM actions are caused to happen in the game thru linedef types. BOOM has three kinds of linedef types:
+
In Eternity actions are caused to happen in the game through linedef types. Eternity has four kinds of linedef types:
 
* Regular - the linedef types that were already in DOOM II v1.9  
 
* Regular - the linedef types that were already in DOOM II v1.9  
* Extended - linedef types not in DOOM II v1.9 but less than 8192 in value  
+
* Extended - linedef types introduced in BOOM, not in DOOM II v1.9, but less than 8192 in value
* Generalized - linedef types over 8192 in value that contain bit fields that independently control the actions of the sector affected.  
+
* Generalized - linedef types over 8192 in value that contain bit fields that independently control the actions of the sector affected. Introduced by BOOM.
As of Eternity Engine v3.33.00, a new type of linedef special is implemented called the Parameterized Line Special. Parameterized specials are similar to Extended specials, but they can be given fully customizable arguments via the ExtraData linedef field "args". These line types are similar to those in the Hexen engine, and are heavily interoperable with the Small scripting system. In addition, parameterized specials are subject to a completely separate system for determining how they are activated and what can activate them that is far more flexible than that used by normal lines. A linedef with non-zero linedef type is called a linedef trigger. Normal, extended, and generalized linedef triggers are always activated in one of three ways - pushing on the first sidedef of the linedef, walking over the linedef, or shooting the linedef with an impact weapon (fists, chainsaw, pistol, shotgun, double barreled, or chaingun).  
+
* Parameterized - linedef types also less than 8192 in value, but with arguments accessible only from [[ExtraData]] or [[UDMF]]. Based on the Hexen specials, designed to be compatible with ZDoom as well. They are the only kind of special supported by UDMF.
  
Parameterized line specials' activation methods are controlled by flags in the ExtraData linedef "extflags" field. A parameterized line can be activated in multiple ways simultaneously, and can also be activated in ways not available for normal lines, including being used from the back side and impacted by projectiles. The extflags field also controls what classes of objects can perform the activation (monsters, missiles, and players), whether or not the special activates from the second side of the line, and whether or not the line special is repeatable. See the ExtraData documentation for full information.
+
Parameterized specials are subject to a completely separate system for determining how they are activated and what can activate them that is far more flexible than that used by normal lines.
  
Linedefs activated by pushing on them come in two varieties. A manual linedef affects the sector on the second sidedef of the line pushed. A switched linedef affects all sectors that have the same tag field as the linedef that was pushed.
+
A linedef with non-zero linedef type is called a linedef trigger. Normal, extended, and generalized linedef triggers are always activated in one of three ways - using the first sidedef of the linedef, walking over the linedef, or shooting the linedef with an impact weapon (fists, chainsaw, pistol, shotgun, double barreled, or chaingun). Watch out that unless the PASSTHRU flag is enabled, any non-zero linedef type will block any farther switchtype linedefs. This is a common mapping error on maps tested on, but not designed specifically for ports that ignore it.
 +
 
 +
Parameterized line specials' activation methods are controlled by flags in the [[ExtraData]] linedef '''extflags''' field, or by specific [[UDMF]] linedef properties. A parameterized line can be activated in multiple ways simultaneously, and can also be activated in ways not available for normal lines, including being used from the back side and impacted by projectiles. The '''extflags''' field or the UDMF properties also control what classes of objects can perform the activation (monsters, missiles, and players), whether or not the special activates from the second side of the line, and whether or not the line special is repeatable. See the [[ExtraData|ExtraData documentation]] and [[UDMF]] for full information.
 +
 
 +
Linedefs activated by using them come in two varieties. A manual linedef affects the sector on the second sidedef of the line pushed. A switched linedef affects all sectors that have the same tag field as the linedef that was pushed.
  
 
Nearly all switched, walkover, and gun linedefs operate on the sectors with the same tag as that in the tag field of the linedef. Most parameterized specials take the tag of sectors to act on as their first parameter, freeing the line tag for use as a line identifier.
 
Nearly all switched, walkover, and gun linedefs operate on the sectors with the same tag as that in the tag field of the linedef. Most parameterized specials take the tag of sectors to act on as their first parameter, freeing the line tag for use as a line identifier.
  
Some linedefs are never activated per se, but simply create or control an effect thru their existence and properties, usually affecting the sectors sharing the linedef's tags. There are also a few special case like line-line teleporters and exit linedefs that do not affect sectors.
+
Some linedefs are never activated per se, but simply create or control an effect through their existence and properties, usually affecting the sectors sharing the linedef's tags. There are also a few special case like line-line teleporters and exit linedefs that do not affect sectors.
  
 
Some linedefs are only triggerable once, others are triggerable as many times as you like.
 
Some linedefs are only triggerable once, others are triggerable as many times as you like.
  
Triggering types are denoted by the letters P, S, W, and G for manual(push), switched, walkover, and gun. Their retriggerability is denoted by a 1 or R following the letter. So the triggering types for linedefs are:
+
Triggering types are denoted by the letters D, S, W, and G for manual(push), switched, walkover, and gun. Their retriggerability is denoted by a 1 or R following the letter. So the triggering types for linedefs are:
  
  P1 PR S1 SR W1 WR G1 GR
+
  D1 DR S1 SR W1 WR G1 GR
Note: P1/PR types are also sometimes referred to as D1/DR types.
 
  
 
Often linedef actions depend on values in neighboring sectors. A neighboring sector is one that shares a linedef in common, just sharing a vertex is not sufficient.
 
Often linedef actions depend on values in neighboring sectors. A neighboring sector is one that shares a linedef in common, just sharing a vertex is not sufficient.
  
In DOOM only one action on a sector could occur at a time. BOOM supports one floor action, one ceiling action, and one lighting action simultaneously.
+
In Doom only one action on a sector could occur at a time. Eternity supports one floor action, one ceiling action, and one lighting action simultaneously.
 +
{{backto|Editing reference}}
 +
== Parameterized specials (for UDMF format and ExtraData) ==
 +
* [[Detailed parameterized linedef specification]]
 +
* [[Static linedef specials]]
 +
 
 +
== Classic specials (for classic Doom format) ==
 +
=== Plane movement ===
 +
==== Floor ====
 +
* [[Floor linedef types|Floors]]
 +
* [[Platform linedef types|Platforms]]
 +
* [[Stair builder linedef types|Stairs]]
 +
* [[Donut linedef types|Donuts]]
  
 +
==== Ceiling ====
 
* [[Door linedef types|Doors]]
 
* [[Door linedef types|Doors]]
* [[Floor linedef types|Floors]]
 
 
* [[Ceiling linedef types|Ceilings (non-crushing)]]
 
* [[Ceiling linedef types|Ceilings (non-crushing)]]
* [[Platform linedef types|Platforms (lifts)]]
 
 
* [[Crushing ceiling linedef types|Crushing ceilings]]
 
* [[Crushing ceiling linedef types|Crushing ceilings]]
* [[Stair builder linedef types|Stairs]]
+
==== Both ====
 
* [[Elevator linedef types|Elevators]]
 
* [[Elevator linedef types|Elevators]]
 +
* [[Pillar linedef types|Pillars]]
 +
=== Polyobjects ===
 +
* [[Polyobject linedef types|Polyobjects]]
 +
=== Light ===
 
* [[Lighting linedef types|Lighting]]
 
* [[Lighting linedef types|Lighting]]
* [[Exit linedef types|Exits]]
+
=== Actors ===
* [[Teleport linedef types|Teleportation]]
+
* [[Thing linedef types|Things]]
* [[Donut linedef types|Donuts]]
+
=== Property transfer ===
* [[Property transfer linedef types|Property transfer]]
+
* [[Property transfer linedef types|Light, plane and physics transfer]]
 
* [[Scroller linedef types|Scrollers]]
 
* [[Scroller linedef types|Scrollers]]
 
* [[Portal linedef types|Portals]]
 
* [[Portal linedef types|Portals]]
 +
* [[Slope linedef types|Slopes]]
 +
* [[Attached surface linedef types|Attached surfaces]]
 +
 +
=== Teleportation ===
 +
* [[Teleport linedef types|Teleportation]]
 +
* [[Exit linedef types|Exits]]
 +
=== Scripting ===
 
* [[Script control linedef types|Script control]]
 
* [[Script control linedef types|Script control]]
* [[Polyobject linedef types|Polyobjects]]
 
* [[Pillar linedef types|Pillars]]
 
  
  
 +
* [[ExtraData#Linedefs|ExtraData Control Line Special #270]]
 
* [[Detailed generalized linedef specification]]
 
* [[Detailed generalized linedef specification]]
* [[Detailed parameterized linedef specification]]
+
 
 +
 
 +
 
 +
[[category:Editing reference]]

Revision as of 13:43, 12 April 2017

In Eternity actions are caused to happen in the game through linedef types. Eternity has four kinds of linedef types:

  • Regular - the linedef types that were already in DOOM II v1.9
  • Extended - linedef types introduced in BOOM, not in DOOM II v1.9, but less than 8192 in value
  • Generalized - linedef types over 8192 in value that contain bit fields that independently control the actions of the sector affected. Introduced by BOOM.
  • Parameterized - linedef types also less than 8192 in value, but with arguments accessible only from ExtraData or UDMF. Based on the Hexen specials, designed to be compatible with ZDoom as well. They are the only kind of special supported by UDMF.

Parameterized specials are subject to a completely separate system for determining how they are activated and what can activate them that is far more flexible than that used by normal lines.

A linedef with non-zero linedef type is called a linedef trigger. Normal, extended, and generalized linedef triggers are always activated in one of three ways - using the first sidedef of the linedef, walking over the linedef, or shooting the linedef with an impact weapon (fists, chainsaw, pistol, shotgun, double barreled, or chaingun). Watch out that unless the PASSTHRU flag is enabled, any non-zero linedef type will block any farther switchtype linedefs. This is a common mapping error on maps tested on, but not designed specifically for ports that ignore it.

Parameterized line specials' activation methods are controlled by flags in the ExtraData linedef extflags field, or by specific UDMF linedef properties. A parameterized line can be activated in multiple ways simultaneously, and can also be activated in ways not available for normal lines, including being used from the back side and impacted by projectiles. The extflags field or the UDMF properties also control what classes of objects can perform the activation (monsters, missiles, and players), whether or not the special activates from the second side of the line, and whether or not the line special is repeatable. See the ExtraData documentation and UDMF for full information.

Linedefs activated by using them come in two varieties. A manual linedef affects the sector on the second sidedef of the line pushed. A switched linedef affects all sectors that have the same tag field as the linedef that was pushed.

Nearly all switched, walkover, and gun linedefs operate on the sectors with the same tag as that in the tag field of the linedef. Most parameterized specials take the tag of sectors to act on as their first parameter, freeing the line tag for use as a line identifier.

Some linedefs are never activated per se, but simply create or control an effect through their existence and properties, usually affecting the sectors sharing the linedef's tags. There are also a few special case like line-line teleporters and exit linedefs that do not affect sectors.

Some linedefs are only triggerable once, others are triggerable as many times as you like.

Triggering types are denoted by the letters D, S, W, and G for manual(push), switched, walkover, and gun. Their retriggerability is denoted by a 1 or R following the letter. So the triggering types for linedefs are:

D1 DR S1 SR W1 WR G1 GR

Often linedef actions depend on values in neighboring sectors. A neighboring sector is one that shares a linedef in common, just sharing a vertex is not sufficient.

In Doom only one action on a sector could occur at a time. Eternity supports one floor action, one ceiling action, and one lighting action simultaneously.

Back to Editing reference

Parameterized specials (for UDMF format and ExtraData)

Classic specials (for classic Doom format)

Plane movement

Floor

Ceiling

Both

Polyobjects

Light

Actors

Property transfer

Teleportation

Scripting