P1 PR S1 SR W1 WR G1 GRNote: P1/PR types are also sometimes referred to as D1/DR types.
Section 1. Doors
A door is a sector, usually placed between two rooms, whose
ceiling raises to open, and lowers to close.
A door is fully closed when its ceiling height is equal to its
floor height.
A door is fully open when its ceiling height is 4 less than the
lowest neighbor ceiling adjacent to it.
A door may be set to an intermediate state initially, or thru the
action of a linedef trigger that affects ceilings or floors. The
door is passable to a player when its ceiling is at least 56
units higher than its floor. In general the door is passable to a
monster or a thing when its ceiling is at least the monster or
thing's height above the floor.
If a door has a ceiling height ABOVE the fully open height, then
an open door action moves the ceiling to the fully open height
instantly.
If a door has a ceiling height BELOW the fully closed height
(that is the ceiling of the door sector is lower than the floor
of the door sector) a close door action moves the ceiling to the
fully closed height instantly.
Section 1.2 Varieties of doors
A door can be triggered by pushing on it, walking over or
pressing a linedef trigger tagged to it, or shooting a linedef
tagged to it. These are called manual, walkover, switched, or gun
doors resp.
Since a push door (P1/PR) has no use for its tag, BOOM has
extended the functionality to include changing any tagged sectors
to maximum neighbor lighting on fully opening, then to minimum
neighbor lighting on fully closing. This is true for regular,
extended, and generalized doors with push triggers. Parameterized
push doors use a separate argument to control dynamic door
lighting.
A door trigger can be locked. This means that the door function
will only operate if the player is in possession of the right
key(s). Regular and extended door triggers only care if the
player has a key of the right color, they do not care which.
Generalized door triggers can distinguish between skull and card
keys, and can also require any key, or all keys in order to
activate.
A door can have different speeds, slow, normal, fast or turbo.
Parameterized doors can open at any speed.
A door can wait for different amounts of time.
A door may or may not be activatable by monsters.
Any door function except Close and Stay Closed, when closing and
encountering a monster or player's head will bounce harmlessly
off that head and return to fully open. A Close and Stay Closed
will rest on the head until it leaves the door sector.
Section 1.3 Door linedef types
Regular and Extended Door Types --------------------------------------------------------------- # Class Trig Lock Speed Wait Monst Function 1 Reg PR No Slow 4s Yes Open, Wait, Then Close 117 Reg PR No Fast 4s No Open, Wait, Then Close 63 Reg SR No Slow 4s No Open, Wait, Then Close 114 Reg SR No Fast 4s No Open, Wait, Then Close 29 Reg S1 No Slow 4s No Open, Wait, Then Close 111 Reg S1 No Fast 4s No Open, Wait, Then Close 90 Reg WR No Slow 4s No Open, Wait, Then Close 105 Reg WR No Fast 4s No Open, Wait, Then Close 4 Reg W1 No Slow 4s No Open, Wait, Then Close 108 Reg W1 No Fast 4s No Open, Wait, Then Close 31 Reg P1 No Slow -- No Open and Stay Open 118 Reg P1 No Fast -- No Open and Stay Open 61 Reg SR No Slow -- No Open and Stay Open 115 Reg SR No Fast -- No Open and Stay Open 103 Reg S1 No Slow -- No Open and Stay Open 112 Reg S1 No Fast -- No Open and Stay Open 86 Reg WR No Slow -- No Open and Stay Open 106 Reg WR No Fast -- No Open and Stay Open 2 Reg W1 No Slow -- No Open and Stay Open 109 Reg W1 No Fast -- No Open and Stay Open 46 Reg GR No Slow -- No Open and Stay Open 42 Reg SR No Slow -- No Close and Stay Closed 116 Reg SR No Fast -- No Close and Stay Closed 50 Reg S1 No Slow -- No Close and Stay Closed 113 Reg S1 No Fast -- No Close and Stay Closed 75 Reg WR No Slow -- No Close and Stay Closed 107 Reg WR No Fast -- No Close and Stay Closed 3 Reg W1 No Slow -- No Close and Stay Closed 110 Reg W1 No Fast -- No Close and Stay Closed 196 Ext SR No Slow 30s No Close, Wait, Then Open 175 Ext S1 No Slow 30s No Close, Wait, Then Open 76 Reg WR No Slow 30s No Close, Wait, Then Open 16 Reg W1 No Slow 30s No Close, Wait, Then Open Regular and Extended Locked Door Types --------------------------------------------------------------- # Class Trig Lock Speed Wait Monst Function 26 Reg PR Blue Slow 4s No Open, Wait, Then Close 28 Reg PR Red Slow 4s No Open, Wait, Then Close 27 Reg PR Yell Slow 4s No Open, Wait, Then Close 32 Reg P1 Blue Slow -- No Open and Stay Open 33 Reg P1 Red Slow -- No Open and Stay Open 34 Reg P1 Yell Slow -- No Open and Stay Open 99 Reg SR Blue Fast -- No Open and Stay Open 134 Reg SR Red Fast -- No Open and Stay Open 136 Reg SR Yell Fast -- No Open and Stay Open 133 Reg S1 Blue Fast -- No Open and Stay Open 135 Reg S1 Red Fast -- No Open and Stay Open 137 Reg S1 Yell Fast -- No Open and Stay OpenThere are two generalized door linedef types, Generalized Door, and Generalized Locked Door. The following tables show the possibilities for each parameter, any combination of parameters is allowed:
Generalized Door Types
---------------------------------------------------------------
# Class Trig Lock Speed Wait Monst Function
3C00H- Gen P1/PR No Slow 1s Yes Open, Wait, Then Close
4000H S1/SR Normal 4s No Open and Stay Open
W1/WR Fast 9s Close and Stay Closed
G1/GR Turbo 30s Close, Wait, Then Open
Generalized Locked Door Types
---------------------------------------------------------------
# Class Trig Lock Speed Wait Monst Function
3800H- Gen P1/PR Any Slow 1s No Open, Wait, Then Close
3C00H S1/SR Blue Normal 4s Open and Stay Open
W1/WR Red Fast 9s Close and Stay Closed
G1/GR Yell Turbo 30s Close, Wait, Then Open
BlueC
RedC
YellC
BlueS
RedS
YellS
All3
All6
There are currently six types of parameterized door specials, each
performing a different type of door action. See the
Parameterized Door Types section for full
information on how to use these specials.
Parameterized Door Types ----------------------------------------------------------------- # Class Function ExtraData Name 300 Param Open, Wait, Then Close Door_Raise 301 Param Open and Stay Open Door_Open 302 Param Close and Stay Closed Door_Close 303 Param Close, Wait, Then Open Door_CloseWaitOpen 304 Param Wait, Open, Wait, Close Door_WaitRaise 305 Param Wait, Close and Stay Closed Door_WaitCloseReturn to Table of Contents
Section 2. Floors
Section 2.1 Floor targets
Section 2.2 Varieties of floors
A floor can be activated by pushing on a linedef bounding it
(generalized types only), or by pushing on a switch with the same
tag as the floor sector, or by walking over a linedef with the
same tag as the floor, or by shooting a linedef with the same tag
as the floor with an impact weapon.
A floor can move either Up or Down.
A floor can move with speeds of Slow, Normal, Fast, or Turbo. If
the target height specified by the floor function (see Floor
Targets above) is in the opposite direction to the floor's
motion, then travel is instantaneous, otherwise its at the speed
specified. Parameterized floor types can move at any speed.
A floor action can be a texture change type, in which case after
the action the floor texture of the affected floor, and possibly
the sector type of the affected floor are changed to those of a
model sector. The sector type may be zeroed instead of copied
from the model, or not changed at all. These change types are
referred to below as Tx (texture only), Tx0 (type zeroed), and
TxTy (texture and type changed). The model sector for the change
may be the sector on the first sidedef of the trigger (trigger
model) or the sector with floor at destination height across the
lowest numbered two-sided linedef surrounding the affected sector
(numeric model). If no model sector exists, no change occurs. If
a change occurs, floor texture is always affected, lighting is
never affected, even that corresponding to the sector's type, nor
is any other sector property other than the sector's type.
Numeric model algorithm:
1) Find all floors adjacent to the tagged floor at destination
height
2) Find the lowest numbered linedef separating those floors from
that tagged
3) The sector on the other side of that linedef is the model
A floor action can have the crush property, in which case players
and monsters are crushed when the floor tries to move above the
point where they fit exactly underneath the ceiling. This means
they take damage until they die, leave the sector, or the floor
action is stopped. A floor action never reverses on encountering
an obstacle, even if the crush property is not true, the floor
merely remains in the same position until the obstacle is removed
or dies, then continues.
Section 2.3 Floor linedef types
Regular and Extended Floor Types
-------------------------------------------------------------------
# Class Trig Dir Spd Chg Mdl Mon Crsh Target
60 Reg SR Dn Slow None -- No No Lowest Neighbor Floor
23 Reg S1 Dn Slow None -- No No Lowest Neighbor Floor
82 Reg WR Dn Slow None -- No No Lowest Neighbor Floor
38 Reg W1 Dn Slow None -- No No Lowest Neighbor Floor
177 Ext SR Dn Slow TxTy Num No No Lowest Neighbor Floor
159 Ext S1 Dn Slow TxTy Num No No Lowest Neighbor Floor
84 Reg WR Dn Slow TxTy Num No No Lowest Neighbor Floor
37 Reg W1 Dn Slow TxTy Num No No Lowest Neighbor Floor
69 Reg SR Up Slow None -- No No Next Neighbor Floor
18 Reg S1 Up Slow None -- No No Next Neighbor Floor
128 Reg WR Up Slow None -- No No Next Neighbor Floor
119 Reg W1 Up Slow None -- No No Next Neighbor Floor
132 Reg SR Up Fast None -- No No Next Neighbor Floor
131 Reg S1 Up Fast None -- No No Next Neighbor Floor
129 Reg WR Up Fast None -- No No Next Neighbor Floor
130 Reg W1 Up Fast None -- No No Next Neighbor Floor
222 Ext SR Dn Slow None -- No No Next Neighbor Floor
221 Ext S1 Dn Slow None -- No No Next Neighbor Floor
220 Ext WR Dn Slow None -- No No Next Neighbor Floor
219 Ext W1 Dn Slow None -- No No Next Neighbor Floor
64 Reg SR Up Slow None -- No No Lowest Neighbor Ceiling
101 Reg S1 Up Slow None -- No No Lowest Neighbor Ceiling
91 Reg WR Up Slow None -- No No Lowest Neighbor Ceiling
5 Reg W1 Up Slow None -- No No Lowest Neighbor Ceiling
24 Reg G1 Up Slow None -- No No Lowest Neighbor Ceiling
65 Reg SR Up Slow None -- No Yes Lowest Neighbor Ceiling - 8
55 Reg S1 Up Slow None -- No Yes Lowest Neighbor Ceiling - 8
94 Reg WR Up Slow None -- No Yes Lowest Neighbor Ceiling - 8
56 Reg W1 Up Slow None -- No Yes Lowest Neighbor Ceiling - 8
45 Reg SR Dn Slow None -- No No Highest Neighbor Floor
102 Reg S1 Dn Slow None -- No No Highest Neighbor Floor
83 Reg WR Dn Slow None -- No No Highest Neighbor Floor
19 Reg W1 Dn Slow None -- No No Highest Neighbor Floor
70 Reg SR Dn Fast None -- No No Highest Neighbor Floor + 8
71 Reg S1 Dn Fast None -- No No Highest Neighbor Floor + 8
98 Reg WR Dn Fast None -- No No Highest Neighbor Floor + 8
36 Reg W1 Dn Fast None -- No No Highest Neighbor Floor + 8
180 Ext SR Up Slow None -- No No Absolute 24
161 Ext S1 Up Slow None -- No No Absolute 24
92 Reg WR Up Slow None -- No No Absolute 24
58 Reg W1 Up Slow None -- No No Absolute 24
179 Ext SR Up Slow TxTy Trg No No Absolute 24
160 Ext S1 Up Slow TxTy Trg No No Absolute 24
93 Reg WR Up Slow TxTy Trg No No Absolute 24
59 Reg W1 Up Slow TxTy Trg No No Absolute 24
176 Ext SR Up Slow None -- No No Abs Shortest Lower Texture
158 Ext S1 Up Slow None -- No No Abs Shortest Lower Texture
96 Reg WR Up Slow None -- No No Abs Shortest Lower Texture
30 Reg W1 Up Slow None -- No No Abs Shortest Lower Texture
178 Ext SR Up Slow None -- No No Absolute 512
140 Reg S1 Up Slow None -- No No Absolute 512
147 Ext WR Up Slow None -- No No Absolute 512
142 Ext W1 Up Slow None -- No No Absolute 512
190 Ext SR -- ---- TxTy Trg No No None
189 Ext S1 -- ---- TxTy Trg No No None
154 Ext WR -- ---- TxTy Trg No No None
153 Ext W1 -- ---- TxTy Trg No No None
78 Ext SR -- ---- TxTy Num No No None
241 Ext S1 -- ---- TxTy Num No No None
240 Ext WR -- ---- TxTy Num No No None
239 Ext W1 -- ---- TxTy Num No No None
The following tables show the possibilities for generalized floor
linedef type parameters. Any combination of parameters is
allowed:
Generalized Floor Types
---------------------------------------------------------------------------
# Class Trig Dir Spd *Chg *Mdl Mon Crsh Target
6000H- Gen P1/PR Up Slow None Trg Yes Yes Lowest Neighbor Floor
7FFFH S1/SR Dn Normal Tx Num No No Next Neighbor Floor
W1/WR Fast Tx0 Lowest Neighbor Ceiling
G1/GR Turbo TxTy Highest Neighbor Floor
Ceiling
24
32
*Mon(ster) enabled must be No if Shortest Lower Texture
Chg field is not None
Tx = Texture copied only Trg = Trigger Model
Tx0 = Texture copied and Type->0 Num = Numeric Model
TxTy = Texture and Type copied
There are currently seventeen types of parameterized floor specials, each
performing a different type of floor action. See the
Parameterized Floor Types section for full information
on how to use these specials.
Parameterized Floor Types ------------------------------------------------------------------------------ # Class Function ExtraData Name 306 Param Up to Highest Neighbor Floor Floor_RaiseToHighest 307 Param Down to Highest Neighbor Floor Floor_LowerToHighest 308 Param Up to Lowest Neighbor Floor Floor_RaiseToLowest 309 Param Down to Lowest Neighbor Floor Floor_LowerToLowest 310 Param Up to Next Neighbor Floor Floor_RaiseToNearest 311 Param Down to Next Neighbor Floor Floor_LowerToNearest 312 Param Up to Lowest Neighbor Ceiling Floor_RaiseToLowestCeiling 313 Param Down to Lowest Neighbor Ceiling Floor_LowerToLowestCeiling 314 Param Up to Ceiling Floor_RaiseToCeiling 315 Param Up Abs Shortest Lower Texture Floor_RaiseByTexture 316 Param Down Abs Shortest Lower Texture Floor_LowerByTexture 317 Param Up Absolute Param Floor_RaiseByValue 318 Param Down Absolute Param Floor_LowerByValue 319 Param To Absolute Height Floor_MoveToValue 320 Param Up Absolute Param, Instant Floor_RaiseInstant 321 Param Down Absolute Param, Instant Floor_LowerInstant 322 Param To Ceiling Instant Floor_ToCeilingInstantReturn to Table of Contents
Section 3. Ceilings
Section 3.1 Ceiling Targets
Section 3.2 Varieties of ceilings
A ceiling can be activated by pushing on a linedef bounding it
(generalized types only), or by pushing on a switch with the same
tag as the ceiling sector, or by walking over a linedef with the
same tag as the ceiling, or by shooting a linedef with the same
tag as the ceiling with an impact weapon (generalized types
only).
A ceiling can move either Up or Down.
A ceiling can move with speeds of Slow, Normal, Fast, or Turbo.
If the target height specified by the ceiling function (see
Ceiling Targets above) is in the opposite direction to the
ceiling's motion, then travel is instantaneous, otherwise its at
the speed specified.
A ceiling action can be a texture change type, in which case
after the action the ceiling texture of the affected ceiling, and
possibly the sector type of the affected ceiling are changed to
those of a model sector. The sector type may be zeroed instead of
copied from the model, or not changed at all. These change types
are referred to below as Tx (texture only), Tx0 (type set to 0),
and TxTy (texture and type copied from model). The model sector
for the change may be the sector on the first sidedef of the
trigger (trigger model) or the sector with ceiling at destination
height across the lowest numbered two-sided linedef surrounding
the affected sector (numeric model). If no model sector exists,
no change occurs. If a change occurs, ceiling texture is always
affected, lighting is never affected, even that corresponding to
the sector's type, nor is any other sector property other than
the sector's type.
Numeric model algorithm:
1) Find all ceilings adjacent to the tagged ceiling at
destination height
2) Find the lowest numbered linedef separating those ceilings
from that tagged
3) The sector on the other side of that linedef is the model
A ceiling action can have the crush property (generalized types
only), in which case players and monsters are crushed when the
ceiling tries to move below the point where they fit exactly
underneath the ceiling. This means they take damage until they
die, leave the sector, or the ceiling action is stopped. A
ceiling action never reverses on encountering an obstacle, even
if the crush property is not true, the ceiling merely remains in
the same position until the obstacle is removed or dies, then
continues.
Section 3.3 Ceiling linedef types
Regular and Extended Ceiling Types
-------------------------------------------------------------------
# Class Trig Dir Spd *Chg *Mdl Mon Crsh Target
43 Reg SR Dn Fast None -- No No Floor
41 Reg S1 Dn Fast None -- No No Floor
152 Ext WR Dn Fast None -- No No Floor
145 Ext W1 Dn Fast None -- No No Floor
186 Ext SR Up Slow None -- No No Highest Neighbor Ceiling
166 Ext S1 Up Slow None -- No No Highest Neighbor Ceiling
151 Ext WR Up Slow None -- No No Highest Neighbor Ceiling
40 Reg W1 Up Slow None -- No No Highest Neighbor Ceiling
187 Ext SR Dn Slow None -- No No 8 Above Floor
167 Ext S1 Dn Slow None -- No No 8 Above Floor
72 Reg WR Dn Slow None -- No No 8 Above Floor
44 Reg W1 Dn Slow None -- No No 8 Above Floor
205 Ext SR Dn Slow None -- No No Lowest Neighbor Ceiling
203 Ext S1 Dn Slow None -- No No Lowest Neighbor Ceiling
201 Ext WR Dn Slow None -- No No Lowest Neighbor Ceiling
199 Ext W1 Dn Slow None -- No No Lowest Neighbor Ceiling
206 Ext SR Dn Slow None -- No No Highest Neighbor Floor
204 Ext S1 Dn Slow None -- No No Highest Neighbor Floor
202 Ext WR Dn Slow None -- No No Highest Neighbor Floor
200 Ext W1 Dn Slow None -- No No Highest Neighbor Floor
Generalized Ceiling Types
---------------------------------------------------------------------------
# Class Trig Dir Spd *Chg *Mdl Mon Crsh Target
4000H- Gen P1/PR Up Slow None Trg Yes Yes Highest Neighbor Ceiling
5FFFH S1/SR Dn Normal Tx Num No No Next Neighbor Ceiling
W1/WR Fast Tx0 Lowest Neighbor Ceiling
G1/GR Turbo TxTy Highest Neighbor Floor
Floor
24
32
*Mon(ster) enabled must be No if Shortest Upper Texture
Chg field is not None
Tx = Texture copied only Trg = Trigger Model
Tx0 = Texture copied and Type->0 Num = Numeric Model
TxTy = Texture and Type copied
There are currently seventeen types of parameterized ceiling specials, each
performing a different type of ceiling action. See the
Parameterized Ceiling Types section for full
information on how to use these specials.
Parameterized Ceiling Types ------------------------------------------------------------------------------- # Class Function ExtraData Name 323 Param Up to Highest Neighbor Ceiling Ceiling_RaiseToHighest 324 Param Up to HnC Instant Ceiling_ToHighestInstant 325 Param Up to Nearest Neighbor Ceiling Ceiling_RaiseToNearest 326 Param Down to Nearest Neighbor Ceiling Ceiling_LowerToNearest 327 Param Up to Lowest Neighbor Ceiling Ceiling_RaiseToLowest 328 Param Down to Lowest Neighbor Ceiling Ceiling_LowerToLowest 329 Param Up to Highest Neighbor Floor Ceiling_RaiseToHighestFloor 330 Param Down to Highest Neighbor Floor Ceiling_LowerToHighestFloor 331 Param Down to Floor Instant Ceiling_ToFloorInstant 332 Param Down to Floor Ceiling_LowerToFloor 333 Param Up Abs Shortest Upper Texture Ceiling_RaiseByTexture 334 Param Down Abs Shortest Upper Texture Ceiling_LowerByTexture 335 Param Up Absolute Param Ceiling_RaiseByValue 336 Param Down Absolute Param Ceiling_LowerByValue 337 Param To Absolute Height Ceiling_MoveToValue 338 Param Up Absolute Param, Instant Ceiling_RaiseInstant 339 Param Down Absolute Param, Instant Ceiling_LowerInstantReturn to Table of Contents
Section 4. Platforms (Lifts)
A platform is basically a floor action involving two heights. The
simple raise platform actions, for example, differ from the
corresponding floor actions in that if they encounter an
obstacle, they reverse direction and return to their former
height.
The most often used kind of platform is a lift which travels from
its current height to the target height, then waits a specified
time and returns to it former height.
Section 4.2 Varieties of Platforms
A platform can be activated by pushing on a linedef bounding it
(generalized types only), or by pushing on a switch with the same
tag as the platform sector, or by walking over a linedef with the
same tag as the platform, or by shooting a linedef with the same
tag as the platform with an impact weapon.
A platform can move with speeds of Slow, Normal, Fast, or Turbo.
Only the instant toggle platform moves instantly, all others move
at the platform's speed.
A platform can have a delay, in between when it reaches
"high" height and returns to "low" height, or
at both ends of the motion in the case of perpetual lifts.
A platform action can be a texture change type, in which case
after the action the floor texture of the affected floor, and
possibly the sector type of the affected floor are changed to
those of a model sector. The sector type may be zeroed instead of
copied from the model, or not changed at all. These change types
are referred to below as Tx (texture only), Tx0 (type zeroed),
and TxTy (texture and type changed). The model sector for the
change is always the sector on the first sidedef of the trigger
(trigger model). If a change occurs, floor texture is always
affected, lighting is never affected, even that corresponding to
the sector's type, nor is any other sector property other than
the sector's type.
Section 4.3 Platform Linedef types
Regular and Extended Platform Types
-------------------------------------------------------------------
# Class Trig Dly Spd Chg Mdl Mon Target
66 Reg SR -- Slow Tx Trg No Raise 24 Units
15 Reg S1 -- Slow Tx Trg No Raise 24 Units
148 Ext WR -- Slow Tx Trg No Raise 24 Units
143 Ext W1 -- Slow Tx Trg No Raise 24 Units
67 Reg SR -- Slow Tx0 Trg No Raise 32 Units
14 Reg S1 -- Slow Tx0 Trg No Raise 32 Units
149 Ext WR -- Slow Tx0 Trg No Raise 32 Units
144 Ext W1 -- Slow Tx0 Trg No Raise 32 Units
68 Reg SR -- Slow Tx0 Trg No Raise Next Floor
20 Reg S1 -- Slow Tx0 Trg No Raise Next Floor
95 Reg WR -- Slow Tx0 Trg No Raise Next Floor
22 Reg W1 -- Slow Tx0 Trg No Raise Next Floor
47 Reg G1 -- Slow Tx0 Trg No Raise Next Floor
181 Ext SR 3s Slow None -- No Lowest and Highest Floor (perpetual)
162 Ext S1 3s Slow None -- No Lowest and Highest Floor (perpetual)
87 Reg WR 3s Slow None -- No Lowest and Highest Floor (perpetual)
53 Reg W1 3s Slow None -- No Lowest and Highest Floor (perpetual)
182 Ext SR -- ---- ---- -- -- Stop
163 Ext S1 -- ---- ---- -- -- Stop
89 Reg WR -- ---- ---- -- -- Stop
54 Reg W1 -- ---- ---- -- -- Stop
62 Reg SR 3s Slow None -- No Lowest Neighbor Floor (lift)
21 Reg S1 3s Slow None -- No Lowest Neighbor Floor (lift)
88 Reg WR 3s Slow None -- No Lowest Neighbor Floor (lift)
10 Reg W1 3s Slow None -- No Lowest Neighbor Floor (lift)
123 Reg SR 3s Fast None -- No Lowest Neighbor Floor (lift)
122 Reg S1 3s Fast None -- No Lowest Neighbor Floor (lift)
120 Reg WR 3s Fast None -- No Lowest Neighbor Floor (lift)
121 Reg W1 3s Fast None -- No Lowest Neighbor Floor (lift)
211 Ext SR -- Inst None -- No Ceiling (toggle)
212 Ext WR -- Inst None -- No Ceiling (toggle)
Generalized Lift Types
---------------------------------------------------------------------------
# Class Trig Dly Spd Mon Target
3400H- Gen P1/PR 1s Slow Yes Lowest Neighbor Floor
37FFH S1/SR 3s Normal No Next Lowest Neighbor Floor
W1/WR 5s Fast Lowest Neighbor Ceiling
G1/GR 10s Turbo Lowest and Highest Floor (perpetual)
Return to Table of Contents
Section 5. Crusher Ceilings
A crusher ceiling is a linedef type that causes the ceiling to
cycle between its starting height and 8 above the floor, damaging
monsters and players that happen to be in between. Barrels
explode when crushed.
Once a crusher ceiling is started it remains running for the
remainder of the level even if temporarily suspended with a stop
type. No other ceiling action can be used in that sector
thereafter.
Section 5.1 Varieties of Crushers
A crusher can be activated by pushing on a linedef bounding it
(generalized types only), or by pushing on a switch with the same
tag as the crusher sector, or by walking over a linedef with the
same tag as the crusher, or by shooting a linedef with the same
tag as the crusher with an impact weapon (generalized types
only).
A crusher has a speed: slow, normal, fast, or turbo. The slower
the speed, the more damage the crusher does when crushing, simply
thru being applied longer. When a slow or normal crusher is
moving down and encounters something to crush, it slows down even
more, by a factor of 8. This persists until it reaches bottom of
stroke and starts up again. Fast and turbo crushers do not slow
down.
A crusher can be silent. The regular silent crusher makes
platform stop and start noises at top and bottom of stroke. The
generalized silent crusher is completely quiet.
A crusher linedef is provided to stop a crusher in its current
position. Care should be used that this doesn't lock the player
out of an area of the wad if the crusher is too low to pass. A
crusher can be restarted, but not changed, with any crusher
linedef.
Section 5.2 Crusher Linedef Types
Regular and Extended Crusher Types
-------------------------------------------------------------------
# Class Trig Spd Mon Silent Action
184 Ext SR Slow No No Start
49 Reg S1 Slow No No Start
73 Reg WR Slow No No Start
25 Reg W1 Slow No No Start
183 Ext SR Fast No No Start
164 Ext S1 Fast No No Start
77 Reg WR Fast No No Start
6 Reg W1 Fast No No Start
185 Ext SR Slow No Yes Start
165 Ext S1 Slow No Yes Start
150 Ext WR Slow No Yes Start
141 Reg W1 Slow No Yes Start
188 Ext SR ---- -- -- Stop
168 Ext S1 ---- -- -- Stop
74, Reg WR ---- -- -- Stop
57, Reg W1 ---- -- -- Stop
Generalized Crusher Types
---------------------------------------------------------------------------
# Class Trig Spd Mon Silent
2F80H- Gen P1/PR Slow Yes Yes
2FFFH S1/SR Normal No No
W1/WR Fast
G1/GR Turbo
Return to Table of Contents
Section 6. Stair Builders
A stair builder is a linedef type that sets a sequence of sectors
defined by a complex rule to an ascending or descending sequence
of heights.
The rule for stair building is as follows:
1) The first step to rise or fall is the tagged sector. It rises
or falls by the stair stepsize, at the stair speed.
2) To find the next step (sector) affected examine all two-sided
linedefs with first sidedef facing into the previous step for the
one with lowest linedef number. The sector on the other side of
this linedef is the next step. If no such linedef exists, stair
building ceases.
3) If the next step is already moving, or has already risen as
part of the stair, stair building ceases. Optionally if the floor
texture of the next step is different from the previous step's
the stair building stops. Otherwise the next step moves to the
height of the previous step plus or minus the stepsize depending
on the direction the stairs build, up or down. If the motion is
in the same direction as the stairs build, it occurs at stair
build speed, otherwise it is instant.
4) Repeat from step 2 until stair building ceases.
With parameterized stairs, it is possible to have synchronized
movement. This means that each step will move at a different speed
such that all the steps reach their destination height at the same
time. It is also possible to have parameterized stairs reset to
their original positions after a given amount of time.
Section 6.1 Varieties of Stair Builders
A stair can be activated by pushing on a linedef bounding it
(generalized types only), or by pushing on a switch with the same
tag as the stair sector, or by walking over a linedef with the
same tag as the stair, or by shooting a linedef with the same tag
as the stair with an impact weapon (generalized types only).
Only extended and generalized stair types are retriggerable. The
extended retriggerable stairs are mostly useless, though
triggering a stair with stepsize 8 twice might be used. The
generalized retriggerable stairs alternate building up and down
on each activation which is much more useful. For parameterized
stair types, retriggering is only useful if the staircase resets
itself after building.
A stair can build up or down (generalized types only).
A stair can have a step size of 4, 8, 16, or 24. Only generalized
types support stepsize of 4 or 24. Parameterized stairs can
build steps of any size greater than zero.
A stair can have build speeds of slow, normal, fast or turbo.
Only generalized types support speeds of normal or turbo.
Parameterized stairs can build at any speed.
A stair can stop on encountering a different texture or ignore
(generalized types only) different textures and continue.
Only the regular build fast, stepsize 16 stair has the property
that monsters and players can be crushed by the motion, all
others do not crush.
Section 6.2 Regular and Extended Stair Builder Types
Regular and Extended Stairs Types
-------------------------------------------------------------------
# Class Trig Dir Spd Step Ignore Mon
258 Ext SR Up Slow 8 No No
7 Reg S1 Up Slow 8 No No
256 Ext WR Up Slow 8 No No
8 Reg W1 Up Slow 8 No No
259 Ext SR Up Fast 16 No No
127 Reg S1 Up Fast 16 No No
257 Ext WR Up Fast 16 No No
100 Reg W1 Up Fast 16 No No
Generalized Stairs Types
---------------------------------------------------------------------------
# Class Trig Dir Spd Step Ignore Mon
3000H- Gen P1/PR Up Slow 4 Yes Yes
33FFH S1/SR Dn Normal 8 No No
W1/WR Fast 16
G1/GR Turbo 24
There are currently four types of parameterized stair specials, each
performing a different type of stair action. See the
Parameterized Stair Types section for full
information on how to use these specials.
Parameterized Stair Types ------------------------------------------------------------------------------- # Class Function ExtraData Name 340 Param Build stairs up, DOOM method Stairs_BuildUpDoom 341 Param Build stairs down, DOOM method Stairs_BuildDownDoom 342 Param Build stairs up sync, DOOM method Stairs_BuildUpDoomSync 343 Param Build stairs dn sync, DOOM method Stairs_BuildDownDoomSyncReturn to Table of Contents
Section 7. Elevators
An elevator is a linedef type that moves both floor and ceiling
together. All elevator linedefs are extended, there are no
regular or generalized elevator types. Instant elevator motion is
not possible, and monsters cannot activate elevators. All
elevator triggers are either switched or walkover.
Section 7.2 Elevator Linedef Types
Extended Elevator types ------------------------------------------------------------------- # Class Trig Spd Target 230 Ext SR Fast Next Highest Floor 229 Ext S1 Fast Next Highest Floor 228 Ext WR Fast Next Highest Floor 227 Ext W1 Fast Next Highest Floor 234 Ext SR Fast Next Lowest Floor 233 Ext S1 Fast Next Lowest Floor 232 Ext WR Fast Next Lowest Floor 231 Ext W1 Fast Next Lowest Floor 238 Ext SR Fast Current Floor 237 Ext S1 Fast Current Floor 236 Ext WR Fast Current Floor 235 Ext W1 Fast Current FloorReturn to Table of Contents
Section 7a. Lighting
The lighting linedef types change the lighting in the tagged
sector. All are regular or extended types, there are no
generalized lighting types. All are switched or walkovers.
Section 7a.2 Lighting Linedef Types
Regular and Extended Lighting types ------------------------------------------------------------------- # Class Trig Target 139 Reg SR 35 Units 170 Ext S1 35 Units 79 Reg WR 35 Units 35 Reg W1 35 Units 138 Reg SR 255 Units 171 Ext S1 255 Units 81 Reg WR 255 Units 13 Reg W1 255 Units 192 Ext SR Maximum Neighbor 169 Ext S1 Maximum Neighbor 80 Reg WR Maximum Neighbor 12 Reg W1 Maximum Neighbor 194 Ext SR Minimum Neighbor 173 Ext S1 Minimum Neighbor 157 Ext WR Minimum Neighbor 104 Reg W1 Minimum Neighbor 193 Ext SR Blinking 172 Ext S1 Blinking 156 Ext WR Blinking 17 Reg W1 BlinkingReturn to Table of Contents
Section 8. Exits
An exit linedef type ends the current level bringing up the
intermission screen with its report of kills/items/secrets or
frags in the case of deathmatch. Obviously, none are
retriggerable, and none require tags, since no sector is
affected.
Section 8.1 Exit Varieties
An exit can be activated by pushing on a switch with the exit
type or by walking over a linedef with the exit type, or by
shooting a linedef with the exit type with an impact weapon.
An exit can be normal or secret. The normal exit simply ends the
level and takes you to the next level via the intermission
screen. A secret exit only works in a special level depending on
the IWAD being played. In DOOM the secret exits can be on E1M3,
E2M5, or E3M6. In DOOM II they can be in levels 15 and 31. If a
secret exit is used in any other level, it brings you back to the
start of the current level. In DOOM the secret exits go from E1M3
to E1M9, E2M5 to E2M9, and E3M6 to E3M9. In DOOM II they go from
15 to 31 and from 31 to 32. In DOOM II a normal exit from 31 or
32 goes to level 16.
Section 8.2 Exit Linedef Types
Regular and Extended Exit types ------------------------------------------------------------------- # Class Trig Type 11 Reg S1 Normal 52 Reg W1 Normal 197 Ext G1 Normal 51 Reg S1 Secret 124 Reg W1 Secret 198 Ext G1 SecretReturn to Table of Contents
Section 9. Teleporters
A teleporter is a linedef that when crossed or switched makes the
player or monster appear elsewhere in the level. There are only
regular and extended teleporters, no generalized teleporters
exist (yet). Teleporters are the only direction sensitive
walkover triggers in DOOM (to allow them to be exited without
teleporting again). They must be crossed from the first sidedef
side in order to work.
The place that the player or monster appears is set in one of two
ways. The more common is by a teleport thing in the sector tagged
to the teleport line. The newer completely player preserving
line-line silent teleport makes the player appear relative to the
exit line (identified by having the same tag as the entry line)
with the same orientation, position, momentum and height that
they had relative to the entry line just before teleportation. A
special kind of line-line teleporter is also provided that
reverses the player's orientation by 180 degrees.
In the case of several lines tagged the same as the teleport
line, or several sectors tagged the same, or several teleport
things in the tagged sector, in all cases the lowest numbered one
is used.
In DOOM crossing a W1 teleport line in the wrong direction used
it up, and it was never activatable. In BOOM this is not the
case, it does not teleport but remains active until next crossed
in the right direction.
If the exit of a teleporter is blocked a monster (or anything
besides a player) will not teleport thru it. However if the exit
of teleporter is blocked a player will, including into a down
crusher, a monster, or another player. In the latter two cases
the monster/player occupying the spot dies messily, and this is
called a telefrag.
Section 9.1 Teleport Varieties
A teleporter can be walkover or switched, and retriggerable or
not.
A teleporter can have destination set by a teleport thing in the
tagged sector, or by a line tagged the same as the teleport line.
These are called thing teleporters and line teleporters resp.
A teleporter can preserve orientation or set orientation from the
position, height, and angle of the teleport thing. Note a thing
destination teleporter always sets position, though it may
preserve orientation otherwise.
A teleporter can produce green fog and a whoosh noise, or it can
be silent, in which case it does neither.
A teleporter can transport monsters only, or both players and
monsters.
Section 9.2 Teleport Linedef types
Regular and Extended Teleport types ------------------------------------------------------------------- # Class Trig Silent Mon Plyr Orient Dest 195 Ext SR No Yes Yes Set TP thing in tagged sector 174 Ext S1 No Yes Yes Set TP thing in tagged sector 97 Reg WR No Yes Yes Set TP thing in tagged sector 39 Reg W1 No Yes Yes Set TP thing in tagged sector 126 Reg WR No Yes No Set TP thing in tagged sector 125 Reg W1 No Yes No Set TP thing in tagged sector 269 Ext WR Yes Yes No Set TP thing in tagged sector 268 Ext W1 Yes Yes No Set TP thing in tagged sector 210 Ext SR Yes Yes Yes Preserve TP thing in tagged sector 209 Ext S1 Yes Yes Yes Preserve TP thing in tagged sector 208 Ext WR Yes Yes Yes Preserve TP thing in tagged sector 207 Ext W1 Yes Yes Yes Preserve TP thing in tagged sector 244 Ext WR Yes Yes Yes Preserve Line with same tag 243 Ext W1 Yes Yes Yes Preserve Line with same tag 263 Ext WR Yes Yes Yes Preserve Line with same tag (reversed) 262 Ext W1 Yes Yes Yes Preserve Line with same tag (reversed) 267 Ext WR Yes Yes No Preserve Line with same tag 266 Ext W1 Yes Yes No Preserve Line with same tag 265 Ext WR Yes Yes No Preserve Line with same tag (reversed) 264 Ext W1 Yes Yes No Preserve Line with same tag (reversed)Return to Table of Contents
Section 10. Donuts
A donut is a very specialized linedef type that lowers a pillar
in a surrounding pool, while raising the pool and changing its
texture and type.
The tagged sector is the pillar, and its lowest numbered line
must be two-sided. The sector on the other side of that is the
pool. The pool must have a two-sided line whose second sidedef
does not adjoin the pillar, and the sector on the second side of
the lowest numbered such linedef is the model for the pool's
texture change. The model sector floor also provides the
destination height both for lowering the pillar and raising the
pool.
No generalized donut linedefs exist, and all are switched or
walkover.
Section 10.1 Donut Linedef types
Regular and Extended Donut types ------------------------------------------------------------------- # Class Trig 191 Ext SR 9 Reg S1 155 Ext WR 146 Ext W1Return to Table of Contents
Section 11. Property Transfer
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 SectorUsed 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 SectorUsed 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) TranslucentUsed 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.
---------------------------------- < 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.223 Ext -- Length Sets Friction in tagged Sector,Sludge<100, Ice>100The 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.
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
224 Ext -- Length/Direction Sets Wind Force in tagged Sectors 225 Ext -- Length/Direction Sets Current Force in tagged Sectors
226 Ext -- Length Sets Point Source Wind/Current Force in Tagged Sectors=== New to Eternity ===
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 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.
Return to Table of Contents
Section 12. Scrolling Walls, Flats, Objects
Section 12.1 Static Scrollers
The most basic kind of scrolling linedef causes some part of the
tagged sector or tagged wall to scroll, in proportion to the
length of the linedef the trigger is on, and according to the
direction that trigger linedef lies. For each 32 units of length
of the trigger, the tagged object scrolls 1 unit per frame. Since
the length of a linedef doesn't change during gameplay, these
types are static, the scrolling effect remains constant during
gameplay. However, these effects can be combined with, and/or
canceled by, other scrollers.
Section 12.2 Simple Static Scrollers
For convenience three simpler static scroll functions are
provided for when you just need a wall to scroll and don't need
to control its rate and don't want to bother with
proportionality.
Section 12.3 Dynamic Scrolling
To achieve dynamic scrolling effects, the position or rate of
scrolling is controlled by the relative position of the floor and
ceiling of the sector on the scrolling trigger's first sidedef.
The direction of scrolling remains controlled by the direction of
the linedef trigger. Either the floor or ceiling may move in the
controlling sector, or both. The control variable is the amount
of change in the sum of the floor and ceiling heights.
All scroll effects are additive, and thus two or more effects may
reinforce and/or cancel each other.
Displacement Scrollers
In the first kind, displacement scrolling, the position of the
scrolled objects or walls changes proportionally to the motion of
the floor or ceiling in the sector on the first sidedef of the
scrolling trigger. The proportionality is set by the length of
the linedef trigger. If it is 32 units long, the wall, floor,
ceiling, or object moves 1 unit for each unit the floor or
ceiling of the controlling sector moves. If it is 64 long, they
move 2 units per unit of relative floor/ceiling motion in the
controlling sector and so on.
Section 13. Portals
Portals turn a set of floors, ceilings, or linedefs into "windows" onto another part of the
map, allowing for some otherwise impossible visual effects. Portals are not interactive,
however -- objects cannot travel through them, enemies cannot see through them or fire into
them, etc.
Plane Portals
A plane portal linedef creates a portal which displays an infinite plane. The flat and light
level used are determined from the ceiling of the sector on the front side of the plane portal
control linedef.
Plane portal linedefs are as follows:
283 Ext -- Applies plane portal to ceilings of all like-tagged sectors.
284 Ext -- Applies plane portal to floors of all like-tagged sectors.
285 Ext -- Applies plane portal to floors and ceilings of all like-tagged sectors.
Horizon Portals
A horizon portal linedef creates a portal which displays two infinite planes which converge on
a fixed horizon at the center of the screen. The flat and light level of the two planes come
from the floor and ceiling of the sector on the front side of the horizon portal control linedef.
Horizon portal linedefs are as follows:
286 Ext -- Applies horizon portal to ceilings of all like-tagged sectors.
287 Ext -- Applies horizon portal to floors of all like-tagged sectors.
288 Ext -- Applies horizon portal to floors and ceilings of all like-tagged sectors.
Skyboxes
A skybox is a portal which renders part of the map from the point of view of a control object.
To setup a skybox, an EESkyboxCam object (doomednum 5006) must be placed in a sector. Then, one
of the following skybox portal lines must be placed in that same sector such that it is the
sector on the front side of the line. When viewed in the map, the surroundings of the control
object will be seen at their real, fixed distance from that point, although the player's
viewing angle will still be applied (so the scenery will turn, but not move).
Skybox linedefs are as follows:
290 Ext -- Applies skybox portal to ceilings of all like-tagged sectors.
291 Ext -- Applies skybox portal to floors of all like-tagged sectors.
292 Ext -- Applies skybox portal to floors and ceilings of all like-tagged sectors.
Anchored Portals
Anchored portals are the most complicated portal type. They define a portal similar to a skybox,
but which moves relative to the player's point of view. This allows an anchored portal to appear
as if it is a seamless part of the surrounding map.
To create an anchored portal, first one of the below anchored portal control linedefs should be
placed into the sector which will appear inside the portal. Then, the sector in which the portal
will appear should be tagged the same as the control linedef. This is the same as for all other
types. However, an anchor line is also required so that the renderer can guage the offset
between the real map area and the portal sector. This line, with specials 298 or 299, must be
placed in the real sector, and must share the same tag as the sector and control linedef.
Here is an illustration of an anchored portal setup:
+---+ +---+ | A |-298 linedef | B |-295 linedef +---+ +---+Sector A is the normal sector in which the player will walk. Sector B is the portal sector which will be drawn into the portal. The 298 linedef, the 295 linedef, and sector A all share a common tag. Eternity will guage the distance between the portal linedef and the anchor linedef and will know how far to offset the camera in order to render the portal. In this case, Eternity will render sector B over the ceiling of sector A, and the two will appear to be placed directly on top of each other.
295 Ext -- Applies anchored portal to ceilings of all like-tagged sectors.
296 Ext -- Applies anchored portal to floors of all like-tagged sectors.
297 Ext -- Applies anchored portal to floors and ceilings of all like-tagged sectors.
298 Ext -- Anchor line, required for use alongside specials 295 and 297.
299 Ext -- Anchor line, required for use alongside special 296.
Warning: As of Eternity Engine v3.33.33, normal anchored portals should no longer be used
for two-way setups, where both areas of an anchored portal are visible from each other. Use
the new two-way types discussed below instead for this situation. If the lines above are used
instead, the player may see seemingly spontaneous error messages and feel annoying pauses
during gameplay.
Two-Way Anchored Portals
For two-way anchored portal setups, where each area involved in the portal can be seen from
the other area, you are now required to use the following set of linedefs instead of those
outlined in the section above. This change is necessary to support visibility of normal portals
even when the player's viewpoint would be beneath the floor or ceiling. Unfortunately, such a
change causes the normal anchored portals to begin drawing each other repeatedly when used in
a two-way setup. Although this will no longer crash Eternity, it is considered an error and will
be displayed to the player as such. To avoid this, use only these types in such a situation.
344 Ext -- Applies two-way anchored portal to ceilings of all like-tagged sectors.
345 Ext -- Applies two-way anchored portal to floors of all like-tagged sectors.
346 Ext -- Anchor line, required for use alongside special 344 only.
347 Ext -- Anchor line, required for use alongside special 345 only.
289: Portal Transfer
The portal transfer linedef allows the effects of any type of portal to be transferred to the
front side of a one-sided line (it will *not* work on 2S lines). To accomplish this, simply
give the 289 line the same tag used by the portal control linedef which is being targetted.
Any number of 289 lines may share a portal, and the portal may still be used normally. If the
normal effect of the portal (applied to a floor or ceiling) is not needed, it does not have to
be tagged to a sector.
An example:
+------+---+ +------+ | \ B|<- B tag = 1 | | | \ | | C | | A + | | | | | * |<- Skybox line special 290 , tag = 1 +----------+ +------+ ^ ^ Line special 289, tag = 1 Control thing 5006In this example, sector C will be visible in sector B's ceiling as a skybox. However, it will also appear on the line in sector A with special 289, giving it a window-like effect.
289 Ext -- Transfers a like-tagged portal to the first side of this linedef.Return to Table of Contents
Section 14. Script Control Linedefs
These linedefs are used to start Small Levelscripts. See the
Small Usage Documentation for full information
on how to use these linedefs along with a Small script to add dynamic actions to
your maps.
280 WR Start script with tag number 273 WR Start script, 1-way trigger 274 W1 Start script with tag number 275 W1 Start script, 1-way trigger 276 SR Start script with tag number 277 S1 Start script with tag number 278 GR Start script with tag number 279 G1 Start script with tag numberThese linedefs exist for all activation models. The two one-way script activators will only be activated when the player crosses them from the first side, as with other line types which function in that manner. Crossing from the second side will have no effect.
Section 15. PolyObjects
PolyObjects are special sets of one-sided linedefs which, unlike any other
lines, can be moved on the map during gameplay. Unlike the Hexen and zdoom
implementation of PolyObjects, Eternity does not restrict these objects to
one per subsector, and they are also allowed to move any distance from their
spawn point, even across subsector boundaries. The only real restriction is
that PolyObjects should remain separated by a plane from all other surfaces,
including other PolyObjects and normal walls.
PolyObjects fully clip normal objects such as the player and enemies, optionally
doing crushing damage depending upon the type of spawn spot used. They also
block bullet tracers and monsters' lines of site. They do not, however, clip
sound propagation, so it may be necessary to use sound blocking lines near areas
where PolyObjects are meant to function as a normal wall until they move.
Although Eternity does allow PolyObjects to move between different subsectors,
this will only work properly if the subsectors on both sides of a line have the
same properties (floor & ceiling heights, light level, and flat) -- otherwise,
temporary rendering oddities such as bleeding or disappearing lines may occur.
Also, the proper rendering of PolyObjects in certain situations is dependent
upon how the BSP builder splits sectors into subsectors. To get PolyObjects to
render properly in areas where they may partially occlude normal walls, such as
when functioning as doors, it may be necessary to "tweak" the area they are in,
particularly by enclosing them within a convex sector made of invisible 2S lines
(this was common practice for sliding door PolyObjects in Hexen as well).
However, Eternity does not require a "PolyObject-aware" node builder.
Finally, unlike zdoom, Eternity allows PolyObjects to be used in DOOM-format
maps via the use of Return to Table of Contents
15.1 Creating PolyObjects
PolyObjects are a combination of a set of 1S lines, which are typically placed
in a "control sector" area outside of the main map, and exactly two mapthings:
one spawn spot, and one anchor point. There are two different methods for
grouping lines into a PolyObject.
Method 1: The Polyobj_StartLine Special
The Polyobj_StartLine special marks the first line in a PolyObject which is made
up of a cyclic set of linedefs (that is, each line "points toward" the
next line, ending at the first vertex of the first line).
Diagrammatic Example:
[Control Sector] [Main Map Area]
+-------------------+ +-------------------------------+
| | | |
| | | | |
| +--->+ | | |
| ^ | | | |
| | |_ | | |
| A -| B | | | C |
| | v | | |
| +<---+ | | |
| | | | |
| | | |
+-------------------+ +-------------------------------+
Assume that the linedef A is assigned the Polyobj_StartLine special and
has argument #1 set to "1" -- this is its PolyObject ID number, which must
be unique amongst all on the map, and must be a number greater than zero.
Method 2: The Polyobj_ExplicitLine Special
The Polyobj_ExplicitLine special demarcates every line that will be added to
a PolyObject and the exact order in which the lines will be added. This affords
a bit more flexibility in the construction of PolyObjects at the price of not
allowing any other line specials to be placed on the object itself.
Diagrammatic Example:
[Control Sector] [Main Map Area]
+-------------------+ +-------------------------------+
| 2 | | |
| | | | |
| +--->+ | | |
| ^ | | | |
| | |_ 4 | | |
| 1 -| B | | | C |
| | v | | |
| +<---+ | | |
| | | | |
| 3 | | |
+-------------------+ +-------------------------------+
Assume that the linedefs labeled 1 through 4 are assigned the
Polyobj_ExplicitLine special, all have argument #1 set to "1" -- this is its
PolyObject ID number, which must be unique amongst all on the map, and must be a
number greater than zero -- and all have argument #2 set to the integer values
1 through 4, corresponding to their labels in the diagram.
15.2 Moving PolyObjects
There are two types of basic motion which PolyObjects can currently undergo:
translation and rotation. Using "override" actions, it is possible to combine
the two to have a PolyObject which rotates while moving in the xy plane.
Translating PolyObjects
To move a PolyObject in the xy plane, use one of the following line specials:
Rotating PolyObjects
To rotate a PolyObject, use one of the following line specials:
15.3 PolyObject Doors
There are two distinct types of actions provided to allow PolyObjects to
function as doors. There are no override versions of door actions, and
applying other overrides to currently moving PolyObject doors will most
likely cause the doors to malfunction and move erratically.
All PolyObject doors accept a delay parameter, and this specifies the
amount of time the door will wait before closing. A door which is closing
will reopen if blocked by an object.
Section 16. Detailed Generalized Linedef Specification
BOOM has added generalized linedef types that permit the
parameters of linedef actions to be nearly independently chosen.
To support these, DETH has been modified to support them via
dialogs for each generalized type; each dialog allows the
parameters for that type to be independently specified by choice
from a array of radio buttons. A parser has also been added to
support reading back the function of a generalized linedef from
its type number.
NOTE to wad authors:
This requires a lot of type numbers, 20608 in all so far. Some
editors may object to the presence of these new types thru
assuming that a lookup table of size 256 suffices (or some other
reason). For those that must continue to use such an editor, it
may be necessary to stick to the old linedef types, which are
still present.
We are also providing command line tools to set these linedef
types, independent of which editor you happen to use, but they
are a lot less slick, and more difficult to use than DETH. See
TRIGCALC.EXE and CLED.EXE in the EDITUTIL.ZIP package of the BOOM
distribution.
== Generalized Linedef Ranges ======================================= There are types for Floors, Ceilings, Doors, Locked Doors, Lifts, Stairs, and Crushers. The allocation of linedef type field numbers is according to the following table: Type Start Length (Dec) ----------------------------------------------------------------- Floors 0x6000 0x2000 (8192) Ceilings 0x4000 0x2000 (8192) Doors 0x3c00 0x0400 (1024) Locked Doors 0x3800 0x0400 (1024) Lifts 0x3400 0x0400 (1024) Stairs 0x3000 0x0400 (1024) Crushers 0x2F80 0x0080 (128) ----------------------------------------------------------------- Totals: 0x2f80-0x7fff 0x5080 (20608) ======================================================================The following sections define the placement and meaning of the bit fields within each linedef category. Fields in the description are listed in increasing numeric order.
c0n change texture, change sector type to 0, numeric model change c0t change texture, change sector type to 0, trigger model change cTn change texture only, numeri