Parameterized linedef specials: Difference between revisions
From Eternity Wiki
Jump to navigationJump to search
(New page: Parameterized Floor Types ------------------------------------------------------------------------------ # Function ExtraData Name 306 Up to Highest Nei...) |
(added Floor_Waggle) |
||
Line 20: | Line 20: | ||
321 Down Absolute Param, Instant Floor_LowerInstant | 321 Down Absolute Param, Instant Floor_LowerInstant | ||
322 To Ceiling Instant Floor_ToCeilingInstant | 322 To Ceiling Instant Floor_ToCeilingInstant | ||
397 Waggle Floor_Waggle | |||
Parameters | Parameters | ||
Line 40: | Line 41: | ||
Floor_LowerInstant tag, height, change | Floor_LowerInstant tag, height, change | ||
Floor_ToCeilingInstant tag, change, crush | Floor_ToCeilingInstant tag, change, crush | ||
Floor_Waggle tag, height, speed, offset, timer | |||
Values | Values | ||
Line 62: | Line 64: | ||
the floor toward. Negative numbers are valid for | the floor toward. Negative numbers are valid for | ||
the latter case. | 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. | |||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
Revision as of 16:05, 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. 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