Floor movement classic specials

From Eternity Wiki
Jump to navigationJump to search
Back to Linedef types

Floor targets

Lowest Neighbor Floor (LnF)

This means that the floor moves to the height of the lowest neighboring floor including the floor itself. If the floor direction is up (only possible with generalized floors) motion is instant, else at the floor's speed.

Next Neighbor Floor (NnF)

This means that the floor moves up to the height of the lowest adjacent floor greater in height than the current, or down to the height of the highest adjacent floor less in height than the current, as determined by the floor's direction. Instant motion is not possible in this case. If no such floor exists, the floor does not move.

Lowest Neighbor Ceiling (LnC)

This means that the floor height changes to the height of the lowest ceiling possessed by any neighboring sector, including that floor's ceiling. If the target height is in the opposite direction to floor motion, motion is instant, otherwise at the floor action's speed.

8 Under Lowest Neighbor Ceiling (8uLnC)

This means that the floor height changes to 8 less than the height of the lowest ceiling possessed by any neighboring sector, including that floor's ceiling. If the target height is in the opposite direction to floor motion, motion is instant, otherwise at the floor action's speed.

Highest Neighbor Floor (HnF)

This means that the floor height changes to the height of the highest neighboring floor, excluding the floor itself. If no neighbor floor exists, the floor moves down to -32000. If the target height is in the opposite direction to floor motion, the motion is instant, otherwise it occurs at the floor action's speed.

8 Above Highest Neighbor Floor (8aHnF)

This means that the floor height changes to 8 above the height of the highest neighboring floor, excluding the floor itself. If no neighbor floor exists, the floor moves down to -31992. If the target height is in the opposite direction to floor motion, the motion is instant, otherwise it occurs at the floor action's speed.

Ceiling

The floor moves up until its at ceiling height, instantly if floor direction is down (only available with generalized types), at the floor speed if the direction is up.

24 Units (24)

The floor moves 24 units in the floor action's direction. Instant motion is not possible with this linedef type.

32 Units (32)

The floor moves 32 units in the floor action's direction. Instant motion is not possible with this linedef type.

512 Units (512)

The floor moves 512 units in the floor action's direction. Instant motion is not possible with this linedef type.

Shortest Lower Texture (SLT)

The floor moves the height of the shortest lower texture on the boundary of the sector, in the floor direction. Instant motion is not possible with this type. In the case that there is no surrounding texture the motion is to -32000 or +32000 depending on direction.

None

Some pure texture type changes are provided for changing the floor texture and/or sector type without moving the floor.

Up/Down Absolute Param

Only available to parameterized floor specials, this target moves the floor in its indicated direction by the number of units provided as a special argument.

To Absolute Height

Only available to parameterized floor specials, this target moves the floor to an exact height which is provided as a parameter. This floor type always moves either up or down to the given height depending on whether it is higher or lower than the floor's current position. This means that instantaneous motion is not possible.

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.

Floor linedef types

# Trigger Parameterized equivalent Notes
60 SR Floor_LowerToLowest(tag, 8)
23 S1 Floor_LowerToLowest(tag, 8)
82 WR Floor_LowerToLowest(tag, 8)
38 W1 Floor_LowerToLowest(tag, 8)
177 SR Floor_LowerToLowest(tag, 8, 6) Change texture & type, numeric model
159 S1 Floor_LowerToLowest(tag, 8, 6) Change texture & type, numeric model
84 WR Floor_LowerToLowest(tag, 8, 6) Change texture & type, numeric model
37 W1 Floor_LowerToLowest(tag, 8, 6) Change texture & type, numeric model
69 SR Floor_RaiseToNearest(tag, 8)
18 S1 Floor_RaiseToNearest(tag, 8)
128 WR Floor_RaiseToNearest(tag, 8)
119 W1 Floor_RaiseToNearest(tag, 8)
132 SR Floor_RaiseToNearest(tag, 32) Faster
131 S1 Floor_RaiseToNearest(tag, 32) Faster
129 WR Floor_RaiseToNearest(tag, 32) Faster
130 W1 Floor_RaiseToNearest(tag, 32) Faster
222 SR Floor_LowerToNearest(tag, 8)
221 S1 Floor_LowerToNearest(tag, 8)
220 WR Floor_LowerToNearest(tag, 8)
219 W1 Floor_LowerToNearest(tag, 8)
64 SR Floor_RaiseToLowestCeiling(tag, 8)
101 S1 Floor_RaiseToLowestCeiling(tag, 8)
91 WR Floor_RaiseToLowestCeiling(tag, 8)
5 W1 Floor_RaiseToLowestCeiling(tag, 8)
24 G1 Floor_RaiseToLowestCeiling(tag, 8)
65 SR Floor_RaiseToLowestCeiling(tag, 8, 0, 10, 8) Crushes, gap of 8
55 S1 Floor_RaiseToLowestCeiling(tag, 8, 0, 10, 8) Crushes, gap of 8
94 WR Floor_RaiseToLowestCeiling(tag, 8, 0, 10, 8) Crushes, gap of 8
56 W1 Floor_RaiseToLowestCeiling(tag, 8, 0, 10, 8) Crushes, gap of 8
45 SR Floor_LowerToHighestEE(tag, 8)
102 S1 Floor_LowerToHighestEE(tag, 8)
83 WR Floor_LowerToHighestEE(tag, 8)
19 W1 Floor_LowerToHighestEE(tag, 8)
70 SR Floor_LowerToHighest(tag, 32, 136) Faster, lip of 8
71 S1 Floor_LowerToHighest(tag, 32, 136) Faster, lip of 8
98 WR Floor_LowerToHighest(tag, 32, 136) Faster, lip of 8
36 W1 Floor_LowerToHighest(tag, 32, 136) Faster, lip of 8
180 SR Floor_RaiseByValue(tag, 8, 24) Raises by 24 units
161 S1 Floor_RaiseByValue(tag, 8, 24) Raises by 24 units
92 WR Floor_RaiseByValue(tag, 8, 24) Raises by 24 units
58 W1 Floor_RaiseByValue(tag, 8, 24) Raises by 24 units
179 SR Floor_RaiseByValue(tag, 8, 24, 5) Raises by 24 units, change texture & type, trigger model
160 S1 Floor_RaiseByValue(tag, 8, 24, 5) Raises by 24 units, change texture & type, trigger model
93 WR Floor_RaiseByValue(tag, 8, 24, 5) Raises by 24 units, change texture & type, trigger model
59 W1 Floor_RaiseByValue(tag, 8, 24, 5) Raises by 24 units, change texture & type, trigger model
176 SR Floor_RaiseByTexture(tag, 8) Raises by shortest lower texture
158 S1 Floor_RaiseByTexture(tag, 8) Raises by shortest lower texture
96 WR Floor_RaiseByTexture(tag, 8) Raises by shortest lower texture
30 W1 Floor_RaiseByTexture(tag, 8) Raises by shortest lower texture
178 SR Floor_RaiseByValue(tag, 8, 512) Raises by 512 units
140 S1 Floor_RaiseByValue(tag, 8, 512) Raises by 512 units
147 WR Floor_RaiseByValue(tag, 8, 512) Raises by 512 units
142 W1 Floor_RaiseByValue(tag, 8, 512) Raises by 512 units
190 SR Floor_TransferTrigger(tag) Only changes texture & type, no movement
189 S1 Floor_TransferTrigger(tag) Only changes texture & type, no movement
154 WR Floor_TransferTrigger(tag) Only changes texture & type, no movement
153 W1 Floor_TransferTrigger(tag) Only changes texture & type, no movement
78 SR Floor_TransferNumeric(tag) Only changes texture & type, no movement
241 S1 Floor_TransferNumeric(tag) Only changes texture & type, no movement
240 WR Floor_TransferNumeric(tag) Only changes texture & type, no movement
239 W1 Floor_TransferNumeric(tag) Only changes texture & type, no movement

The following tables show the possibilities for generalized floor linedef type parameters. Any combination of parameters is allowed:

Slow and Fast represent the same speeds as slow and fast regular floors. Normal is twice as fast as slow, Fast is twice normal, Turbo is twice Fast.

Generalized Floor Types
---------------------------------------------------------------------------
#      Class   Trig   Dir Spd   *Chg *Mdl Mon Crsh  Target

6000H- Gen     D1/DR  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

Parameterized Floor Types

See Parameterized specials.