Ceiling linedef types

From Eternity Wiki
Jump to navigationJump to search

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

Back to Linedef types