Ceiling linedef types: Difference between revisions

From Eternity Wiki
Jump to navigationJump to search
(→‎Ceiling linedef types: Added extradata mnemonics to reg/ext linetypes)
Line 65: Line 65:


  Regular and Extended Ceiling Types
  Regular and Extended Ceiling Types
  -------------------------------------------------------------------
  -----------------------------------------------------------------------------------------------
  #    Class  Trig  Dir Spd  *Chg *Mdl Mon Crsh Target
  #    Class  Trig  Dir Spd  *Chg *Mdl Mon Crsh Target                     ExtraData mnemonic
   
   
  43    Reg    SR    Dn  Fast  None  --  No  No  Floor  
  43    Reg    SR    Dn  Fast  None  --  No  No  Floor                     SR_Ceiling_DnF_Fast
  41    Reg    S1    Dn  Fast  None  --  No  No  Floor  
  41    Reg    S1    Dn  Fast  None  --  No  No  Floor                     S1_Ceiling_DnF_Fast
  152  Ext    WR    Dn  Fast  None  --  No  No  Floor  
  152  Ext    WR    Dn  Fast  None  --  No  No  Floor                     WR_Ceiling_DnF_Fast
  145  Ext    W1    Dn  Fast  None  --  No  No  Floor  
  145  Ext    W1    Dn  Fast  None  --  No  No  Floor                     W1_Ceiling_DnF_Fast
   
   
  186  Ext    SR    Up  Slow  None  --  No  No  Highest Neighbor Ceiling
  186  Ext    SR    Up  Slow  None  --  No  No  Highest Neighbor Ceiling   SR_Ceiling_UpHnC_Slow
  166  Ext    S1    Up  Slow  None  --  No  No  Highest Neighbor Ceiling
  166  Ext    S1    Up  Slow  None  --  No  No  Highest Neighbor Ceiling   S1_Ceiling_UpHnC_Slow
  151  Ext    WR    Up  Slow  None  --  No  No  Highest Neighbor Ceiling
  151  Ext    WR    Up  Slow  None  --  No  No  Highest Neighbor Ceiling   WR_Ceiling_UpHnC_Slow
  40    Reg    W1    Up  Slow  None  --  No  No  Highest Neighbor Ceiling
  40    Reg    W1    Up  Slow  None  --  No  No  Highest Neighbor Ceiling   W1_Ceiling_UpHnC_Slow
   
   
  187  Ext    SR    Dn  Slow  None  --  No  No  8 Above Floor
  187  Ext    SR    Dn  Slow  None  --  No  No  8 Above Floor             SR_Ceiling_DnFp8_Slow
  167  Ext    S1    Dn  Slow  None  --  No  No  8 Above Floor
  167  Ext    S1    Dn  Slow  None  --  No  No  8 Above Floor             S1_Ceiling_DnFp8_Slow
  72    Reg    WR    Dn  Slow  None  --  No  No  8 Above Floor
  72    Reg    WR    Dn  Slow  None  --  No  No  8 Above Floor             WR_Ceiling_DnFp8_Slow
  44    Reg    W1    Dn  Slow  None  --  No  No  8 Above Floor
  44    Reg    W1    Dn  Slow  None  --  No  No  8 Above Floor             W1_Ceiling_DnFp8_Slow
   
   
  205  Ext    SR    Dn  Slow  None  --  No  No  Lowest Neighbor Ceiling
  205  Ext    SR    Dn  Slow  None  --  No  No  Lowest Neighbor Ceiling   SR_Ceiling_DnLnC_Slow
  203  Ext    S1    Dn  Slow  None  --  No  No  Lowest Neighbor Ceiling
  203  Ext    S1    Dn  Slow  None  --  No  No  Lowest Neighbor Ceiling   S1_Ceiling_DnLnC_Slow
  201  Ext    WR    Dn  Slow  None  --  No  No  Lowest Neighbor Ceiling
  201  Ext    WR    Dn  Slow  None  --  No  No  Lowest Neighbor Ceiling   WR_Ceiling_DnLnC_Slow
  199  Ext    W1    Dn  Slow  None  --  No  No  Lowest Neighbor Ceiling
  199  Ext    W1    Dn  Slow  None  --  No  No  Lowest Neighbor Ceiling   W1_Ceiling_DnLnC_Slow
   
   
  206  Ext    SR    Dn  Slow  None  --  No  No  Highest Neighbor Floor
  206  Ext    SR    Dn  Slow  None  --  No  No  Highest Neighbor Floor     SR_Ceiling_DnHnF_Slow
  204  Ext    S1    Dn  Slow  None  --  No  No  Highest Neighbor Floor
  204  Ext    S1    Dn  Slow  None  --  No  No  Highest Neighbor Floor     S1_Ceiling_DnHnF_Slow
  202  Ext    WR    Dn  Slow  None  --  No  No  Highest Neighbor Floor
  202  Ext    WR    Dn  Slow  None  --  No  No  Highest Neighbor Floor     WR_Ceiling_DnHnF_Slow
  200  Ext    W1    Dn  Slow  None  --  No  No  Highest Neighbor Floor
  200  Ext    W1    Dn  Slow  None  --  No  No  Highest Neighbor Floor     W1_Ceiling_DnHnF_Slow
   
   
  Generalized Ceiling Types
  Generalized Ceiling Types

Revision as of 15:55, 21 February 2010

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                     ExtraData mnemonic

43    Reg     SR     Dn  Fast  None  --  No  No   Floor                      SR_Ceiling_DnF_Fast
41    Reg     S1     Dn  Fast  None  --  No  No   Floor                      S1_Ceiling_DnF_Fast
152   Ext     WR     Dn  Fast  None  --  No  No   Floor                      WR_Ceiling_DnF_Fast
145   Ext     W1     Dn  Fast  None  --  No  No   Floor                      W1_Ceiling_DnF_Fast

186   Ext     SR     Up  Slow  None  --  No  No   Highest Neighbor Ceiling   SR_Ceiling_UpHnC_Slow
166   Ext     S1     Up  Slow  None  --  No  No   Highest Neighbor Ceiling   S1_Ceiling_UpHnC_Slow
151   Ext     WR     Up  Slow  None  --  No  No   Highest Neighbor Ceiling   WR_Ceiling_UpHnC_Slow
40    Reg     W1     Up  Slow  None  --  No  No   Highest Neighbor Ceiling   W1_Ceiling_UpHnC_Slow

187   Ext     SR     Dn  Slow  None  --  No  No   8 Above Floor              SR_Ceiling_DnFp8_Slow
167   Ext     S1     Dn  Slow  None  --  No  No   8 Above Floor              S1_Ceiling_DnFp8_Slow
72    Reg     WR     Dn  Slow  None  --  No  No   8 Above Floor              WR_Ceiling_DnFp8_Slow
44    Reg     W1     Dn  Slow  None  --  No  No   8 Above Floor              W1_Ceiling_DnFp8_Slow

205   Ext     SR     Dn  Slow  None  --  No  No   Lowest Neighbor Ceiling    SR_Ceiling_DnLnC_Slow
203   Ext     S1     Dn  Slow  None  --  No  No   Lowest Neighbor Ceiling    S1_Ceiling_DnLnC_Slow
201   Ext     WR     Dn  Slow  None  --  No  No   Lowest Neighbor Ceiling    WR_Ceiling_DnLnC_Slow
199   Ext     W1     Dn  Slow  None  --  No  No   Lowest Neighbor Ceiling    W1_Ceiling_DnLnC_Slow

206   Ext     SR     Dn  Slow  None  --  No  No   Highest Neighbor Floor     SR_Ceiling_DnHnF_Slow
204   Ext     S1     Dn  Slow  None  --  No  No   Highest Neighbor Floor     S1_Ceiling_DnHnF_Slow
202   Ext     WR     Dn  Slow  None  --  No  No   Highest Neighbor Floor     WR_Ceiling_DnHnF_Slow
200   Ext     W1     Dn  Slow  None  --  No  No   Highest Neighbor Floor     W1_Ceiling_DnHnF_Slow

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