Ceiling linedef types
- Back to Linedef types
Ceiling Targets
- Highest Neighbor Ceiling (HnC)
This means that the ceiling moves to the height of the highest neighboring ceiling NOT including the ceiling itself. If the ceiling direction is down (only possible with generalized ceilings) motion is instant, else at the ceiling's speed. If no adjacent ceiling exists the ceiling moves to -32000 units.
- Next Neighbor Ceiling (NnC)
This means that the ceiling moves up to the height of the lowest adjacent ceiling greater in height than the current, or to the height of the highest adjacent ceiling less in height than the current, as determined by the ceiling's direction. Instant motion is not possible in this case. If no such ceiling exists, the ceiling does not move.
- Lowest Neighbor Ceiling (LnC)
This means that the ceiling height changes to the height of the lowest ceiling possessed by any neighboring sector, NOT including itself. If the target height is in the opposite direction to ceiling motion, motion is instant, otherwise at the ceiling action's speed. If no adjacent ceiling exists the ceiling moves to 32000 units.
- Highest Neighbor Floor (HnF)
This means that the ceiling height changes to the height of the highest neighboring floor, excluding the ceiling's floor itself. If no neighbor floor exists, the ceiling moves down to -32000 or the ceiling's floor, whichever is higher. If the target height is in the opposite direction to ceiling motion, the motion is instant, otherwise it occurs at the ceiling action's speed.
- Floor
The ceiling moves down until its at floor height, instantly if ceiling direction is up (only available with generalized types), at the ceiling speed if the direction is down.
- 8 Above Floor (8aF)
This means that the ceiling height changes to 8 above the height of the ceiling's floor. If the target height is in the opposite direction to ceiling motion, the motion is instant, otherwise it occurs at the ceiling action's speed.
- 24 Units (24)
The ceiling moves 24 units in the ceiling action's direction. Instant motion is not possible with this linedef type.
- 32 Units (32)
The ceiling moves 32 units in the ceiling action's direction. Instant motion is not possible with this linedef type.
- Shortest Upper Texture (SUT)
The ceiling moves the height of the shortest upper texture on the boundary of the sector, in the ceiling 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.
- Up/Down Absolute Param
Only available to parameterized ceiling specials, this target moves the ceiling in its indicated direction by the number of units provided as a special argument.
- To Absolute Height
Only available to parameterized ceiling specials, this target moves the ceiling to an exact height which is provided as a parameter. This ceiling type always moves either up or down to the given height depending on whether it is higher or lower than the ceiling's current position. This means that instantaneous motion is not possible.
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.
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 D1/DR 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_LowerInstant