Parameterized linedef specials

From Eternity Wiki
Revision as of 16:05, 26 January 2010 by Printz (talk | contribs) (added Floor_Waggle)
Jump to: navigation, search
Parameterized Floor Types
------------------------------------------------------------------------------
#    Function                           ExtraData Name

306  Up to Highest Neighbor Floor       Floor_RaiseToHighest
307  Down to Highest Neighbor Floor     Floor_LowerToHighest
308  Up to Lowest Neighbor Floor        Floor_RaiseToLowest
309  Down to Lowest Neighbor Floor      Floor_LowerToLowest
310  Up to Next Neighbor Floor          Floor_RaiseToNearest
311  Down to Next Neighbor Floor        Floor_LowerToNearest
312  Up to Lowest Neighbor Ceiling      Floor_RaiseToLowestCeiling
313  Down to Lowest Neighbor Ceiling    Floor_LowerToLowestCeiling
314  Up to Ceiling                      Floor_RaiseToCeiling
315  Up Abs Shortest Lower Texture      Floor_RaiseByTexture
316  Down Abs Shortest Lower Texture    Floor_LowerByTexture
317  Up Absolute Param                  Floor_RaiseByValue
318  Down Absolute Param                Floor_LowerByValue
319  To Absolute Height                 Floor_MoveToValue
320  Up Absolute Param, Instant         Floor_RaiseInstant
321  Down Absolute Param, Instant       Floor_LowerInstant
322  To Ceiling Instant                 Floor_ToCeilingInstant
397  Waggle                             Floor_Waggle

Parameters
---------------------------------------------------------------
Floor_RaiseToHighest         tag, speed, change, crush
Floor_LowerToHighest         tag, speed, change
Floor_RaiseToLowest          tag, change, crush
Floor_LowerToLowest          tag, speed, change
Floor_RaiseToNearest         tag, speed, change, crush
Floor_LowerToNearest         tag, speed, change
Floor_RaiseToLowestCeiling   tag, speed, change, crush
Floor_LowerToLowestCeiling   tag, speed, change
Floor_RaiseToCeiling         tag, speed, change, crush
Floor_RaiseByTexture         tag, speed, change, crush
Floor_LowerByTexture         tag, speed, change
Floor_RaiseByValue           tag, speed, height, change, crush
Floor_LowerByValue           tag, speed, height, change
Floor_MoveToValue            tag, speed, height, change, crush
Floor_RaiseInstant           tag, height, change, crush
Floor_LowerInstant           tag, height, change
Floor_ToCeilingInstant       tag, change, crush 
Floor_Waggle                 tag, height, speed, offset, timer

Values
---------------------------------------------------------------
tag    : Tag of the sector(s) to affect. A tag of zero means to
         affect the sector on the second side of the line.
speed  : Speed of floor in eights of a unit per tic.
change : This parameter takes the following values:
         0 : No texture or type change.
         1 : Copy texture, zero type; trigger model.
         2 : Copy texture, zero type; numeric model.
         3 : Copy texture, preserve type; trigger model.
         4 : Copy texture, preserve type; numeric model.
         5 : Copy texture and type; trigger model.
         6 : Copy texture and type; numeric model.
crush  : Amount of crushing damage floor inflicts at each
         crushing event (when gametic % 4 = 0). If this
         amount is less than or equal to zero, no crushing
         damage is done.
height : An integer number of units, either the amount to 
         move the floor by or the exact z coordinate to move
         the floor toward. Negative numbers are valid for 
         the latter case.
         for Floor_Waggle: waggle amplitude, in 1/8 units (eight means 1 whole unit etc.)
offset : for Floor_Waggle: phase offset of the waggle.
timer  : for Floor_Waggle: how many seconds the waggle lasts.
------------------------------------------------------------------------------

Parameterized Ceiling Types
------------------------------------------------------------------------------
#    Function                           ExtraData Name 

323  Up to Highest Neighbor Ceiling     Ceiling_RaiseToHighest
324  Up to HnC Instant                  Ceiling_ToHighestInstant
325  Up to Nearest Neighbor Ceiling     Ceiling_RaiseToNearest
326  Down to Nearest Neighbor Ceiling   Ceiling_LowerToNearest
327  Up to Lowest Neighbor Ceiling      Ceiling_RaiseToLowest
328  Down to Lowest Neighbor Ceiling    Ceiling_LowerToLowest
329  Up to Highest Neighbor Floor       Ceiling_RaiseToHighestFloor
330  Down to Highest Neighbor Floor     Ceiling_LowerToHighestFloor
331  Down to Floor Instant              Ceiling_ToFloorInstant
332  Down to Floor                      Ceiling_LowerToFloor
333  Up Abs Shortest Upper Texture      Ceiling_RaiseByTexture
334  Down Abs Shortest Upper Texture    Ceiling_LowerByTexture
335  Up Absolute Param                  Ceiling_RaiseByValue
336  Down Absolute Param                Ceiling_LowerByValue
337  To Absolute Height                 Ceiling_MoveToValue
338  Up Absolute Param, Instant         Ceiling_RaiseInstant
339  Down Absolute Param, Instant       Ceiling_LowerInstant 

Parameters
---------------------------------------------------------------
Ceiling_RaiseToHighest       tag, speed, change
Ceiling_ToHighestInstant     tag, change, crush
Ceiling_RaiseToNearest       tag, speed, change
Ceiling_LowerToNearest       tag, speed, change, crush
Ceiling_RaiseToLowest        tag, speed, change
Ceiling_LowerToLowest        tag, speed, change, crush
Ceiling_RaiseToHighestFloor  tag, speed, change
Ceiling_LowerToHighestFloor  tag, speed, change, crush
Ceiling_ToFloorInstant       tag, change, crush
Ceiling_LowerToFloor         tag, speed, change, crush
Ceiling_RaiseByTexture       tag, speed, change
Ceiling_LowerByTexture       tag, speed, change, crush
Ceiling_RaiseByValue         tag, speed, height, change
Ceiling_LowerByValue         tag, speed, height, change, crush
Ceiling_MoveToValue          tag, speed, height, change, crush
Ceiling_RaiseInstant         tag, height, change
Ceiling_LowerInstant         tag, height, change, crush 

Values
---------------------------------------------------------------
tag    : Tag of the sector(s) to affect. A tag of zero means to
         affect the sector on the second side of the line.
speed  : Speed of ceiling in eighths of a unit per tic.
change : This parameter takes the following values:
         0 : No texture or type change.
         1 : Copy texture, zero type; trigger model.
         2 : Copy texture, zero type; numeric model.
         3 : Copy texture, preserve type; trigger model.
         4 : Copy texture, preserve type; numeric model.
         5 : Copy texture and type; trigger model.
         6 : Copy texture and type; numeric model.
crush  : Amount of crushing damage ceiling inflicts at each
         crushing event (when gametic % 4 = 0). If this
         amount is less than or equal to zero, no crushing
         damage is done.
height : An integer number of units, either the amount to 
         move the floor by or the exact z coordinate to move
         the floor toward. Negative numbers are valid for 
         the latter case.
------------------------------------------------------------------------------ 

Parameterized Door Types
------------------------------------------------------------------------------
#    Function                     ExtraData Name 

300  Open, Wait, Then Close       Door_Raise
301  Open and Stay Open           Door_Open
302  Close and Stay Closed        Door_Close
303  Close, Wait, Then Open       Door_CloseWaitOpen
304  Wait, Open, Wait, Close      Door_WaitRaise
305  Wait, Close and Stay Closed  Door_WaitClose 

Parameters
---------------------------------------------------------------
Door_Raise          tag, speed, delay, lighttag 
Door_Open           tag, speed, lighttag
Door_Close          tag, speed, lighttag
Door_CloseWaitOpen  tag, speed, delay, lighttag
Door_WaitRaise      tag, speed, delay, countdown, lighttag
Door_WaitClose      tag, speed, countdown, lighttag 

Values
---------------------------------------------------------------
tag       : Tag of the sector(s) to affect as a door. A tag of 
            zero means to affect the sector on the second side
            of the line.
speed     : Speed of door in eights of a unit per tic.
delay     : Delay time in tics.
lighttag  : Tag used to determine what sector will receive the 
            BOOM dynamic door light effect when this door opens
            or closes.
countdown : Delay before action occurs in tics.
------------------------------------------------------------------------------ 

Parameterized Stair Types
------------------------------------------------------------------------------
#    Function                            ExtraData Name 

340  Build stairs up, DOOM method        Stairs_BuildUpDoom
341  Build stairs down, DOOM method      Stairs_BuildDownDoom
342  Build stairs up sync*, DOOM method  Stairs_BuildUpDoomSync
343  Build stairs dn sync*, DOOM method  Stairs_BuildDownDoomSync 

* Synchronized stairs have each step move at a different speed so that all the
  steps reach the destination height at the same time. This stair building
  style is only available with these parameterized line types. 

Parameters
---------------------------------------------------------------
Stairs_BuildUpDoom        tag, speed, stepsize, delay, reset
Stairs_BuildDownDoom      tag, speed, stepsize, delay, reset
Stairs_BuildUpDoomSync    tag, speed, stepsize, reset
Stairs_BuildDownDoomSync  tag, speed, stepsize, reset

Values
---------------------------------------------------------------
tag       : Tag of first sector to raise or lower as a step.
            When the stair building method is DOOM, subsequent
            steps are found by searching across two-sided
            lines where the first side belongs to the current
            sector and the floor texture is the same. The
            Hexen stair building method is not yet supported.
speed     : Speed of steps in eights of a unit per tic. If the
            build style is synchronized, only the first step
            moves at this speed. Other steps will move at a
            speed which allows them to reach their 
            destination height at the same time.
stepsize  : Step size in units.
delay     : Delay time in tics between steps
reset     : If greater than zero, the stairs will wait this
            amount of time in tics after completely building
            and will then reset by repeating the same stair
            building action but in the reverse direction. If
            zero, the stairs will never reset.
------------------------------------------------------------------------------ 

Parameterized PolyObject Types
------------------------------------------------------------------------------
#    Function                            ExtraData Name 

348  Marks first line in PolyObject*     Polyobj_StartLine
349  Explicitly includes a line*         Polyobj_ExplicitLine
350  Open PolyObject as sliding door     Polyobj_DoorSlide
351  Open PolyObject as swinging door    Polyobj_DoorSwing
352  Move PolyObject in xy plane         Polyobj_Move
353  Move PolyObject w/override**        Polyobj_OR_Move
354  Rotate PolyObject right             Polyobj_RotateRight
355  Rotate PolyObject right w/override  Polyobj_OR_RotateRight
356  Rotate PolyObject left              Polyobj_RotateLeft
357  Rotate PolyObject left w/override   Polyobj_OR_RotateLeft 

* There are two different methods of creating a PolyObject. In the first,
  the "first" line is given the Polyobj_StartLine special, and subsequent
  lines are added to the PolyObject by following segs from vertex to vertex.
  To use this, all the lines around the PolyObject must run in the same
  direction, and the last line must end at the same vertex which starts the
  first line (in other words, it must be closed).
  
  With the second method, every line to be included must be given the
  Polyobj_ExplicitLine special and must be given a linenum param which is
  unique amongst all lines that will added to that polyobject. Polyobjects
  of this sort should also be closed for proper rendering, but the game
  engine cannot and will not verify that this is the case.
  
  Only PolyObjects created with the Polyobj_StartLine method can have other
  line specials on the PolyObject's lines themselves. 

** Override types will take effect even if an action is already affecting the
  specified polyobject. Normal actions will fail in this case. 

Parameters
------------------------------------------------------------------
Polyobj_StartLine       polyobj_id, mirror_id, sndseq_id
Polyobj_ExplicitLine    polyobj_id, linenum, mirror_id, sndseq_id
Polyobj_DoorSlide       polyobj_id, speed, angle, dist, delay
Polyobj_DoorSwing       polyobj_id, aspeed, adist, delay
Polyobj_Move            polyobj_id, speed, angle, dist
Polyobj_OR_Move         polyobj_id, speed, angle, dist
Polyobj_RotateRight     polyobj_id, aspeed, adist
Polyobj_OR_RotateRight  polyobj_id, aspeed, adist
Polyobj_RotateLeft      polyobj_id, aspeed, adist
Polyobj_OR_RotateLeft   polyobj_id, aspeed, adist 

Values
---------------------------------------------------------------
polyobj_id : ID number of the PolyObject of which this line is
             a part. PolyObject ID numbers are defined in the
             angle field of their EEPolyObjSpawnSpot object
             (DoomEd numbers 9301 or 9302). Every PolyObject
             must be given a valid unique ID number greater
             than zero.
mirror_id  : The ID number of a PolyObject that wants to mirror
             every action that this PolyObject makes. This
             number cannot refer to the self-same PolyObject,
             nor should PolyObjects attempt to mirror each
             other in a cycle since this will create problems
             with override actions. Angle of motion is always
             reversed when applying an action to a mirroring
             PolyObject. If a mirror is already in motion for
             a non-override action, the mirror will not be
             affected even if the main object was moved. Mirror
             polyobjects can themselves define a mirror, and
             an action will affect all mirroring polyobjects
             in the chain.
sndseq_id  : Selects the EDF sound sequence this
             PolyObject uses when moving.
linenum    : For Polyobj_ExplicitLine only, specifies the
             order in which lines should be added to the
             PolyObject. Each line must have a number greater
             than zero which is unique within all lines that
             belong to that PolyObject. Although, unlike Hexen,
             there is no requirement that the numbers be in
             consecutive order or that they start at 1.
speed      : Linear speed of PolyObject motion in eighths of a
             unit per tic.
angle      : Byte angle of linear motion. *
dist       : Total linear distance to move in units.
delay      : Time to wait before closing in tics.
aspeed     : Byte angle specifying speed in degrees per tic. *
adist      : Byte angle specifying total angular distance to
             rotate. *, **
---------------------------------------------------------------

* Byte angles follow this system:
    0 =   0 degrees (East)
   64 =  90 degrees (North)
  128 = 180 degrees (West)
  192 = 270 degrees (South)
  
  To convert from degrees to byte angles, use the following calculation:
 
  byteangle = (degrees * 256) / 360

  Chop or round the result to an integer.
 
  Valid byte angles fall between 0 and 255, so adjust any angles less than
  0 or greater than or equal to 360 before performing this conversion.
 
** For the adist parameter to Polyobj_Rotate-type specials (excluding
   Polyobj_DoorSwing), the values 0 and 255 have the following special
   meanings:
  0   == The PolyObject will rotate exactly 360 degrees.
  255 == The PolyObject will rotate perpetually.
  All other byte angle values have their normal meaning.
------------------------------------------------------------------------------

Parameterized Pillar Types
------------------------------------------------------------------------------
#    Function                            ExtraData Name

362  Build pillar                        Pillar_Build
363  Build pillar and crush              Pillar_BuildAndCrush
364  Open pillar                         Pillar_Open 

Parameters
---------------------------------------------------------------
Pillar_Build              tag, speed, height
Pillar_BuildAndCrush      tag, speed, height, crush
Pillar_Open               tag, speed, fdist, cdist

Values
---------------------------------------------------------------
tag       : Tag of sector to close or open as a pillar. For the
            action to succeed, neither surface may have an 
            action running on it already. If the tag is zero,
            the sector on the backside of a 2S line with this
            special will be used.
speed     : Speed of the surface with the greatest distance to
            move in eights of a unit per tic. The other surface
            will move at a speed which causes it to reach its
            destination at the same time.
height    : For Build and BuildAndCrush types, this is the 
            height relative to the floor where the floor and 
            ceiling should meet. If this value is zero, the 
            floor and ceiling will meet exactly half-way.
crush     : For BuildAndCrush type only, this specifies the 
            amount of damage to inflict per crush event.
fdist     : For Open type only, this is the distance the floor
            should move down. If this value is zero, the floor
            will move to its lowest neighboring floor.
cdist     : For Open type only, this is the distance the
            ceiling should move up. If this value is zero, the
            ceiling will move to its highest neighboring 
            ceiling.          
------------------------------------------------------------------------------

Back to Linedef types