Floor movement classic specials

From Eternity Wiki
(Redirected from Floor linedef types)
Jump to navigationJump to search

Classic floor movement specials move sector floors using the "stnmov" sound effect, ending with "pstop". Typically when blocked they stop, except for a few of them which can crush (the best known example of such a crusher is the rising trap from Doom 1 E2M4).

Their movement is defined to one of the following targets:

  • down to lowest neighbour floor. Some of them can change their texture and damage behaviour to their surrounding area (the so-called numeric model), typical of platforms sinking into acid.
  • up/down to next neighbour floor. These can be used progressively until they get to the highest/lowest floor.
  • up to lowest neighbour ceiling. Some crush, some don't. The ones which crush also leave an 8-unit gap. NOTE: under vanilla compatibility, they keep moving, potentially trapping creatures forever. Under Boom and modern compatibility, they stop while causing damage (similar to Hexen crushers), allowing player to escape.
  • down to highest neighbour floor. There are two varieties: a slow one with no lip, and a fast one with lip (similar to the lowering imp platform from Doom 1 E1M1).
  • raise by an absolute value. 24, 32 and 512 units are available. Some of them also change texture and type to whatever is in front of the triggering switch (trigger model). NOTE: under Boom and modern compatibility modes, they no longer continue moving into the ceiling.
  • raise by shortest lower texture. Uses the height of lower textures of sector's sides. WARNING: this is highly dependent on gameplay compatibility settings. Its definition of "shortest lower texture" may differ. To make sure the setting you want is set, add an OPTIONS lump to your wad.
  • floor transfer with no movement: these merely change texture and type using the trigger model (texture in front of switch) or numeric model (texture around the target sector). Useful to change textures quickly under Doom format maps (it was added in Boom).
Back to Linedef types

Tricks[edit]

  • You can have finer control where a floor will move by creating a control sector outside the map, joining it with the tagged sector, and neighbouring it with sectors of desired height, different from whatever is in the main area. However, this has the side effect of shifting the sound origin, unless you make sure to counterbalance it with another control sector on the opposite side, joined as well.
  • You can produce instant floor movement by using a "raise to lowest" or "lower to highest" movement type, and setting the neighbour sector in the opposite direction. The floor will have no choice but to instantly adjust to the lowest or highest neighbour's level.

Notes[edit]

  • Under vanilla Doom compatibility mode, any blocked floor may have the side effect of blocking any other nearby sectors. Boom and later have solved this problem.

Regular types[edit]

# Trigger Parameterized equivalent Notes
60 SR Floor_LowerToLowest(tag, 8) Lowers to lowest neighbour floor.
23 S1 Floor_LowerToLowest(tag, 8) Lowers to lowest neighbour floor.
82 WR Floor_LowerToLowest(tag, 8) Lowers to lowest neighbour floor.
38 W1 Floor_LowerToLowest(tag, 8) Lowers to lowest neighbour floor.
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) Raises to next neighbour floor.
18 S1 Floor_RaiseToNearest(tag, 8) Raises to next neighbour floor.
128 WR Floor_RaiseToNearest(tag, 8) Raises to next neighbour floor.
119 W1 Floor_RaiseToNearest(tag, 8) Raises to next neighbour floor.
132 SR Floor_RaiseToNearest(tag, 32) Raises to next neighbour floor, faster.
131 S1 Floor_RaiseToNearest(tag, 32) Raises to next neighbour floor, faster.
129 WR Floor_RaiseToNearest(tag, 32) Raises to next neighbour floor, faster.
130 W1 Floor_RaiseToNearest(tag, 32) Raises to next neighbour floor, faster.
222 SR Floor_LowerToNearest(tag, 8) Lowers to next neighbour floor.
221 S1 Floor_LowerToNearest(tag, 8) Lowers to next neighbour floor.
220 WR Floor_LowerToNearest(tag, 8) Lowers to next neighbour floor.
219 W1 Floor_LowerToNearest(tag, 8) Lowers to next neighbour floor.
64 SR Floor_RaiseToLowestCeiling(tag, 8) Raises floor to lowest neighbour ceiling.
101 S1 Floor_RaiseToLowestCeiling(tag, 8) Raises floor to lowest neighbour ceiling.
91 WR Floor_RaiseToLowestCeiling(tag, 8) Raises floor to lowest neighbour ceiling.
5 W1 Floor_RaiseToLowestCeiling(tag, 8) Raises floor to lowest neighbour ceiling.
24 G1 Floor_RaiseToLowestCeiling(tag, 8) Raises floor to lowest neighbour ceiling.
65 SR Floor_RaiseToLowestCeiling(tag, 8, 0, 10, 8) Raises floor to 8 units under the lowest neighbour ceiling, crushing things in the way.
55 S1 Floor_RaiseToLowestCeiling(tag, 8, 0, 10, 8) Raises floor to 8 units under the lowest neighbour ceiling, crushing things in the way.
94 WR Floor_RaiseToLowestCeiling(tag, 8, 0, 10, 8) Raises floor to 8 units under the lowest neighbour ceiling, crushing things in the way.
56 W1 Floor_RaiseToLowestCeiling(tag, 8, 0, 10, 8) Raises floor to 8 units under the lowest neighbour ceiling, crushing things in the way.
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

Donut movement[edit]

Donut movement means that the tagged floor will lower, while its surrounding sector (the 'donut') will rise, all set to match the surrounding area. This effect is used in Doom 1 E1M2 and E2M2.

The specials are:

# Trigger Parameterized equivalent
191 SR Floor_Donut
9 S1 Floor_Donut
155 WR Floor_Donut
146 S1 Floor_Donut

Generalized types[edit]

Generalized Boom specials for floors start at 24576 (hex 0x6000). Add the following values to setup the special:

  • Trigger type: W1 (0), WR (1), S1 (2), SR (3), G1 (4), GR (5), D1 (6), DR (7).
  • Speed: slow (0), normal (8), fast (16), turbo (24).
  • Change model: trigger (0), model (32).
  • Change type: nothing (0), change-zero (1024), change texture (2048), change texture & type (3072).
  • Direction: down (0), up (64).
  • Target: highest neighbour floor (0), lowest neighbour floor (128), next neighbour floor (256), lowest neighbour ceiling (384), ceiling (512), by shortest texture (640), by 24 (768), by 32 (896).
  • Crush: no (0), yes (4096).

NOTE: you can allow monsters to trigger generalized specials if you set change model to numeric and change type to nothing.

There's a visual bug however, in that rising platforms of this type, if set to change texture, will change theirs only at the end of the movement, even if logically it makes sense for them to change it at the start (considering they work as platforms getting out of a liquid). This is unlike the regular specials above which change texture on rising. Parameterized specials don't have this problem, unless you opt to use Generic_Floor, which emulates all of Boom generalized specials' quirks.

Parameterized Floor Types[edit]

See Parameterized specials.