Parameterized linedef specials: Difference between revisions
From Eternity Wiki
Jump to navigationJump to search
(added Floor_Waggle) |
m (removed the "for floor" cacophony) |
||
| Line 64: | Line 64: | ||
the floor toward. Negative numbers are valid for | the floor toward. Negative numbers are valid for | ||
the latter case. | the latter case. | ||
''' | '''Floor_Waggle''': waggle amplitude, in 1/8 units (eight means 1 whole unit etc.) | ||
offset : ''' | offset : '''Floor_Waggle''': phase offset of the waggle. | ||
timer : ''' | timer : '''Floor_Waggle''': how many seconds the waggle lasts. | ||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
Revision as of 15:06, 26 January 2010
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.
Floor_Waggle: waggle amplitude, in 1/8 units (eight means 1 whole unit etc.)
offset : Floor_Waggle: phase offset of the waggle.
timer : 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