mapthing { recordnum = 1; } mapthing { recordnum = 1; } mapthing { recordnum = 1 ;;;;;; }Obviously, you are encouraged to use a clean and consistent format, even though it is not required.
# Single line comment // Another single line comment /* This is a multiline comment */
somefield = "This string is split \ across two lines"The "\" character, when followed immediately by a line break, signifies that line continuation should be triggered. Whitespace before the line continuation will be included in the string, but any spaces or tabs at the beginning of the next line will NOT be included (this is the same as line continuation in BEX and EDF files). This allows the following continued parts of the string to be arbitrarily indented for purposes of beautification. A string can be split across any number of lines in this fashion.
# this is a normal, decimal number (base 10) recordnum = 16 ... # this is an octal number (base 8) recordnum = 020 ... # this is a hexadecimal number (base 16) recordnum = 0x10Floating-point numbers must have a decimal point in them, as in "20.0". Floating-point numbers are always base 10.
Embedding and Associating ExtraData
ExtraData is embedded directly as a text script into a lump of any name. This can be done with
any number of wad file management tools, including WinTex (though WinTex has some bugs which
make the process more complicated).
An ExtraData script is associated with a map via use of the MapInfo variable extradata. A map can only have one ExtraData script, but it is possible for multiple maps to share the same script.
Example of ExtraData specification via MapInfo:
[level info] extradata = EDLUMP01ExtraData (as well as all other MapInfo variables) can be specified in either global or level-header MapInfo scripts.
Mapthings
Mapthings define monsters, lamps, control points, items, etc -- anything that is spawned on
the map at level start.
Each field in the mapthing definition, with the exception of the recordnum field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order.
Note that the order of mapthing definitions in ExtraData is not important. The recordnum field serves to identify mapthing records.
Creating ExtraData Control Objects
Mapthing records in ExtraData are only associated with a special control object that must be
placed on the map in the usual manner in your editor of choice.
The ExtraData control object has a doomednum of 5004. Each control object specifies its corresponding ExtraData mapthing record number as an integer value in its mapthing options field. If your editor does not allow entering arbitrary values into the options field of mapthings, you will need to use the BOOM command-line editor, CLED. As of the initial writing time of this document, both DETH and Doom Builder support entering arbitrary integer values for the options field. Check your editor's documentation or user interface to verify if it supports this.
The x, y, and angle fields of the ExtraData control object are passed on to the thing which will be spawned at the control point's location, so those fields of the control object should be set normally. The true type and options fields of the thing to be spawned, along with any extended fields, are specified in the ExtraData record which the control thing references.
Any number of ExtraData control objects can reference the same ExtraData record. In the event that a control object references a non-existant ExtraData record, the ExtraData script for a level is missing, or the thing type referenced by an ExtraData record isn't valid, an Unknown thing will be spawned at the control point's location. See the EDF Documentation for information on the required Unknown thingtype definition. Note that you cannot spawn ExtraData control objects using ExtraData. Attempting this will also result in an Unknown thing.
Mapthing Syntax and Fields
The syntax of the ExtraData mapthing record is as follows. Remember that all fields except
the recordnum field are optional and can be specified in any order.
mapthing { recordnum = <unique number> # These fields are normal mapthing fields type = <doomednum> OR <EDF thingtype mnemonic> options = <options flag list> # These fields are ExtraData extensions tid = <number> args = { <special field>, ... } height = <number> }Explanation of fields:
mapthing { type = 3001 } // This record specifies an Imp via its doomednum mapthing { type = thing:DoomImp } // This record specifies an Imp by its EDF mnemonic
Flag name Decimal Hex Meaning ------------------------------------------------------------------------------ EASY 1 0x0001 Thing appears in easy difficulties NORMAL 2 0x0002 Thing appears in "Hurt Me Plenty" HARD 4 0x0004 Thing appears in Ultra-Violence and Nightmare AMBUSH 8 0x0008 Thing is "deaf", will not wake up via sound NOTSINGLE 16 0x0010 Thing doesn't appear in single-player mode NOTDM 32 0x0020 Thing doesn't appear in deathmatch NOTCOOP 64 0x0040 Thing doesn't appear in cooperative multiplayer FRIEND 128 0x0080 Thing uses MBF friendly logic DORMANT 512 0x0200 Thing is dormant at map startup (script feature) ------------------------------------------------------------------------------The mapthing options value 256 (0x0100) is reserved. If this bit is set, all BOOM, MBF, and Eternity extended mapthing bits will be cleared. This is to guard against editors like Hellmaker which set all bits they do not understand, instead of leaving them zero.
# This is the only syntax that does not require quotations. mapthing { options = EASY|NORMAL|HARD } # All of these syntaxes must be quoted, because unquoted strings in # ExtraData cannot contain spaces, commas, or plus signs. mapthing { options = "EASY NORMAL HARD" } mapthing { options = "EASY | NORMAL | HARD" } mapthing { options = "EASY+NORMAL+HARD" } mapthing { options = "EASY + NORMAL + HARD" } mapthing { options = "EASY,NORMAL,HARD" } mapthing { options = "EASY, NORMAL, HARD" }
mapthing { args = { 0, 1, 2, 3, 4 } }
Linedefs
Linedefs define walls, two-sided textures, and provide action triggers within maps.
Each field in the linedef definition, with the exception of the recordnum field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order.
Note that the order of linedef definitions in ExtraData is not important. The recordnum field serves to identify linedef records.
Creating ExtraData Linedefs
Linedef records in ExtraData are associated only with lines which bear the ExtraData Control
Line Special, #270. You can place this special into the normal "special" field of a line using
virtually any map editor. Editors with Eternity-specific configurations should support this
special natively.
Each control linedef specifies its corresponding ExtraData linedef record number as an integer value in its linedef tag field. If your editor does not allow entering arbitrary values up to 32767 into the tag field of linedefs, you will need to use the BOOM command-line editor, CLED. As of the initial writing time of this document, both DETH and Doom Builder support entering arbitrary integer values for the tag field. Check your editor's documentation or user interface to verify if it supports this.
The flags, sidedefs, textures, and location of the ExtraData control linedef are used normally by the line and cannot be altered from within ExtraData. The true special and tag fields of the linedef, along with any extended fields, are specified in the ExtraData record which the control linedef references.
Any number of ExtraData control linedefs can reference the same ExtraData record. In the event that a control linedef references a non-existant ExtraData record or the ExtraData script for a level is missing, the special and tag of the ExtraData control linedef will both be set to zero.
Linedef Syntax and Fields
The syntax of the ExtraData linedef record is as follows. Remember that all fields except
the recordnum field are optional and can be specified in any order.
linedef { recordnum = <unique number> # These fields are normal mapthing fields special = <number> OR <special name> OR <generalized specifier> tag = <number> # These fields are ExtraData extensions extflags = <extended line flags list> args = { <special field>, ... } }Explanation of fields:
Flag name Decimal Hex Meaning --------------------------------------------------------------------------------------- CROSS 1 0x0001 Linedef can be activated by being crossed. USE 2 0x0002 Linedef can be activated by being used. IMPACT 4 0x0004 Linedef can be activated by being shot. PUSH 8 0x0008 Linedef can be activated by being pushed. PLAYER 16 0x0010 Linedef can be activated by players. MONSTER 32 0x0020 Linedef can be activated by objects with SPACMONSTER flag. MISSILE 64 0x0040 Linedef can be activated by objects with SPACMISSILE flag. REPEAT 128 0x0080 Linedef action is repeatable. 1SONLY 256 0x0100 Linedef can only be activated from first side. ---------------------------------------------------------------------------------------Notes: IMPACT is currently only implemented for bullet weapons. The ability to use IMPACT with MISSILE will be added in the near future. The PUSH style of activation is not implemented at all yet, so this flag currently does nothing.
# This is the only syntax that does not require quotations. linedef { extflags = CROSS|PLAYER|MISSILE|REPEAT } # All of these syntaxes must be quoted, because unquoted strings in # ExtraData cannot contain spaces, commas, or plus signs. linedef { extflags = "CROSS PLAYER MISSILE REPEAT" } linedef { extflags = "CROSS | PLAYER | MISSILE | REPEAT" } linedef { extflags = "CROSS+PLAYER+MISSILE+REPEAT" } linedef { extflags = "CROSS + PLAYER + MISSILE + REPEAT" } linedef { extflags = "CROSS,PLAYER,MISSILE,REPEAT" } linedef { extflags = "CROSS, PLAYER, MISSILE, REPEAT" }
linedef { args = { 0, 1, 2, 3, 4 } }
Appendix: Linedef Special Names
The special field of the linedef record can accept name strings in the place of numbers
for any linedef special that exists in Eternity, including normal DOOM specials, extended BOOM
specials, BOOM generalized specials, and Eternity parameterized specials. Except for generalized
specials, the syntax is simply to provide the string name as a normal value, as in this example:
linedef { special = Door_Raise }Generalized linedefs, however, must be specified with a more complicated syntax:
'Gen'<type>'('<arg>+')' where: <type> = Floor | Ceiling | Door | LockedDoor | Lift | Stairs | Crusher <arg> = <char>+','The number and order of arguments for each type of generalized line special are fixed, and each type of special accepts certain values in each argument. To make this more clear before proceeding with the details, here is a complete example of a generalized special:
// door type speed monster? delay linedef { special = "GenDoor(OpenWaitClose, turbo, true, 9 )" }This defines a door which opens, waits 9 seconds, and then closes at turbo speed and can be activated by monsters as well as the player.
----------------------------------------------------------------------------------------- Linedef Special Names ----------------------------------------------------------------------------------------- ------------------------------ Normal and Extended Line Types ------------------------------ Note that most normal/extended line types have ugly names in order to be fully descriptive. Use of new parameterized specials is preferred where possible. Notes on Nomenclature: Activation Types ---------------- DR = Use repeatedly, activates sector on backside, tag is for lighting effect only D1 = Use once, activates sector on backside, tag is for lighting effect only WR = Cross repeatedly W1 = Cross once SR = Use repeatedly S1 = Use once GR = Shoot repeatedly G1 = Shoot once Targets ------- UpHnC = Up to Highest Neighboring Ceiling UpLnC = Up to Lowest Neighboring Ceiling DnLnC = Down to Lowest Neighboring Ceiling UpLnCm8 = Up to Lowest Neighboring Ceiling - 8 DnF = Down to Floor DnFp8 = Down to Floor + 8 UpNnF = Up to Nearest Neighboring Floor DnNnF = Down to Nearest Neighboring Floor DnHnF = Down to Highest Neighboring Floor DnHnFp8 = Down to Highest Neighboring Floor + 8 DnLnF = Down to Lowest Neighboring Floor UpsT = Up by Shortest Texture Change Types ------------ c0t = Change texture, zero type, trigger model cTt = Change texture, preserve type, trigger model cSt = Change texture and type, trigger model cSn = Change texture and type, numeric model Number Name Notes ----------------------------------------------------------------------------------------- 0 None 1 DR_RaiseDoor_Slow_Mon Can be opened by monsters 2 W1_OpenDoor_Slow 3 W1_CloseDoor_Slow 4 W1_RaiseDoor_Slow 5 W1_Floor_UpLnC_Slow 6 W1_StartCrusher_Fast 7 S1_Stairs_Up8_Slow 8 W1_Stairs_Up8_Slow 9 S1_Donut 10 W1_Plat_Lift_Slow 11 S1_ExitLevel 12 W1_Light_MaxNeighbor 13 W1_Light_Set255 14 S1_Plat_Up32_c0t_Slow 15 S1_Plat_Up24_cTt_Slow 16 W1_Door_CloseWait30 17 W1_Light_Blink 18 S1_Floor_UpNnF_Slow 19 W1_Floor_DnHnF_Slow 20 S1_Plat_UpNnF_c0t_Slow 21 S1_Plat_Lift_Slow 22 W1_Plat_UpNnF_c0t_Slow 23 S1_Floor_DnLnF_Slow 24 G1_Floor_UpLnC_Slow 25 W1_StartCrusher_Slow 26 DR_RaiseLockedDoor_Blue_Slow 27 DR_RaiseLockedDoor_Yellow_Slow 28 DR_RaiseLockedDoor_Red_Slow 29 S1_RaiseDoor_Slow 30 W1_Floor_UpsT_Slow 31 D1_OpenDoor_Slow 32 D1_OpenLockedDoor_Blue_Slow 33 D1_OpenLockedDoor_Red_Slow 34 D1_OpenLockedDoor_Yellow_Slow 35 W1_Light_Set35 36 W1_Floor_DnHnFp8_Fast 37 W1_Floor_DnLnF_cSn_Slow 38 W1_Floor_DnLnF_Slow 39 W1_TeleportToSpot 40 W1_Ceiling_UpHnC_Slow 41 S1_Ceiling_DnF_Fast 42 SR_CloseDoor_Slow 43 SR_Ceiling_DnF_Fast 44 W1_Ceiling_DnFp8_Slow 45 SR_Floor_DnHnF_Slow 46 GR_OpenDoor_Slow 47 G1_Plat_UpNnF_c0t_Slow 48 ScrollLeft 49 S1_StartCrusher_Slow 50 S1_CloseDoor_Slow 51 S1_ExitSecret 52 W1_ExitLevel 53 W1_Plat_LoHiPerpetual 54 W1_StopPlat 55 S1_Floor_UpLnCm8_Slow_Crush 56 W1_Floor_UpLnCm8_Slow_Crush 57 W1_StopCrusher 58 W1_Floor_Up24_Slow 59 W1_Floor_Up24_cSt_Slow 60 SR_Floor_DnLnF_Slow 61 SR_OpenDoor_Slow 62 SR_Plat_Lift_Slow 63 SR_RaiseDoor_Slow 64 SR_Floor_UpLnC_Slow 65 SR_Floor_UpLnCm8_Slow_Crush 66 SR_Plat_Up24_cTt_Slow 67 SR_Plat_Up32_c0t_Slow 68 SR_Plat_UpNnF_c0t_Slow 69 SR_Floor_UpNnF_Slow 70 SR_Floor_DnHnFp8_Fast 71 S1_Floor_DnHnFp8_Fast 72 WR_Ceiling_DnFp8_Slow 73 WR_StartCrusher_Slow 74 WR_StopCrusher 75 WR_CloseDoor_Slow 76 WR_Door_CloseWait30 77 WR_StartCrusher_Fast 78 SR_Floor_cSn Pure transfer type 79 WR_Light_Set35 80 WR_Light_MaxNeighbor 81 WR_Light_Set255 82 WR_Floor_DnLnF_Slow 83 WR_Floor_DnHnF_Slow 84 WR_Floor_DnLnF_cSn_Slow 85 ScrollRight 86 WR_OpenDoor_Slow 87 WR_Plat_LoHiPerpetual 88 WR_Plat_Lift_Slow 89 WR_StopPlat 90 WR_RaiseDoor_Slow 91 WR_Floor_UpLnC_Slow 92 WR_Floor_Up24_Slow 93 WR_Floor_Up24_cSt_Slow 94 WR_Floor_UpLnCm8_Slow_Crush 95 WR_Plat_UpNnF_c0t_Slow 96 WR_Floor_UpsT_Slow 97 WR_TeleportToSpot 98 WR_Floor_DnHnFp8_Fast 99 WR_OpenLockedDoor_Blue_Fast 100 W1_Stairs_Up16_Fast 101 S1_Floor_UpLnC_Slow 102 S1_Floor_DnHnF_Slow 103 S1_OpenDoor_Slow 104 W1_Light_MinNeighbor 105 WR_RaiseDoor_Fast 106 WR_OpenDoor_Fast 107 WR_CloseDoor_Fast 108 W1_RaiseDoor_Fast 109 W1_OpenDoor_Fast 110 W1_CloseDoor_Fast 111 S1_RaiseDoor_Fast 112 S1_OpenDoor_Fast 113 S1_CloseDoor_Fast 114 SR_RaiseDoor_Fast 115 SR_OpenDoor_Fast 116 SR_CloseDoor_Fast 117 DR_RaiseDoor_Fast 118 D1_OpenDoor_Fast 119 W1_Floor_UpNnF_Slow 120 WR_Plat_Lift_Fast 121 W1_Plat_Lift_Fast 122 S1_Plat_Lift_Fast 123 SR_Plat_Lift_Fast 124 W1_ExitSecret 125 W1_TeleportToSpot_MonOnly Monsters only 126 WR_TeleportToSpot_MonOnly Monsters only 127 S1_Stairs_Up16_Fast 128 WR_Floor_UpNnF_Slow 129 WR_Floor_UpNnF_Fast 130 W1_Floor_UpNnF_Fast 131 S1_Floor_UpNnF_Fast 132 SR_Floor_UpNnF_Fast 133 S1_OpenLockedDoor_Blue_Fast 134 SR_OpenLockedDoor_Red_Fast 135 S1_OpenLockedDoor_Red_Fast 136 SR_OpenLockedDoor_Yellow_Fast 137 S1_OpenLockedDoor_Yellow_Fast 138 SR_Light_Set255 139 SR_Light_Set35 140 S1_Floor_Up512_Slow 141 W1_StartCrusher_Silent_Slow 142 W1_Floor_Up512_Slow 143 W1_Plat_Up24_cTt_Slow 144 W1_Plat_Up32_c0t_Slow 145 W1_Ceiling_DnF_Fast 146 W1_Donut 147 WR_Floor_Up512_Slow 148 WR_Plat_Up24_cTt_Slow 149 WR_Plat_Up32_c0t_Slow 150 WR_StartCrusher_Silent_Slow 151 WR_Ceiling_UpHnC_Slow 152 WR_Ceiling_DnF_Fast 153 W1_Floor_cSt Pure transfer type 154 WR_Floor_cSt Pure transfer type 155 WR_Donut 156 WR_Light_Blink 157 WR_Light_MinNeighbor 158 S1_Floor_UpsT_Slow 159 S1_Floor_DnLnF_cSn_Slow 160 S1_Floor_Up24_cSt_Slow 161 S1_Floor_Up24_Slow 162 S1_Plat_LoHiPerpetual 163 S1_StopPlat 164 S1_StartCrusher_Fast 165 S1_StartCrusher_Silent_Slow 166 S1_Ceiling_UpHnC_Slow 167 S1_Ceiling_DnFp8_Slow 168 S1_StopCrusher 169 S1_Light_MaxNeighbor 170 S1_Light_Set35 171 S1_Light_Set255 172 S1_Light_Blink 173 S1_Light_MinNeighbor 174 S1_TeleportToSpot 175 S1_Door_CloseWait30 176 SR_Floor_UpsT_Slow 177 SR_Floor_DnLnF_cSn_Slow 178 SR_Floor_Up512_Slow 179 SR_Floor_Up24_cSt_Slow 180 SR_Floor_Up24_Slow 181 SR_Plat_LoHiPerpetual 182 SR_StopPlat 183 SR_StartCrusher_Fast 184 SR_StartCrusher_Slow 185 SR_StartCrusher_Silent_Slow 186 SR_Ceiling_UpHnC_Slow 187 SR_Ceiling_DnFp8_Slow 188 SR_StopCrusher 189 S1_Floor_cSt Pure transfer type 190 SR_Floor_cSt Pure transfer type 191 SR_Donut 192 SR_Light_MaxNeighbor 193 SR_Light_Blink 194 SR_Light_MinNeighbor 195 SR_TeleportToSpot 196 SR_Door_CloseWait30 197 G1_ExitLevel 198 G1_ExitSecret 199 W1_Ceiling_DnLnC_Slow 200 W1_Ceiling_DnHnF_Slow 201 WR_Ceiling_DnLnC_Slow 202 WR_Ceiling_DnHnF_Slow 203 S1_Ceiling_DnLnC_Slow 204 S1_Ceiling_DnHnF_Slow 205 SR_Ceiling_DnLnC_Slow 206 SR_Ceiling_DnHnF_Slow 207 W1_TeleportToSpot_Orient_Silent Preserves orientation 208 WR_TeleportToSpot_Orient_Silent Preserves orientation 209 S1_TeleportToSpot_Orient_Silent Preserves orientation 210 SR_TeleportToSpot_Orient_Silent Preserves orientation 211 SR_Plat_CeilingToggle_Instant 212 WR_Plat_CeilingToggle_Instant 213 TransferLight_Floor 214 ScrollCeiling_Accel Accelerate w/tagged floor 215 ScrollFloor_Accel Accelerate w/tagged floor 216 CarryObjects_Accel Accelerate w/tagged floor 217 ScrollFloorCarryObjects_Accel Accelerate w/tagged floor 218 ScrollWallWithFlat_Accel Accelerate w/tagged floor 219 W1_Floor_DnNnF_Slow 220 WR_Floor_DnNnF_Slow 221 S1_Floor_DnNnF_Slow 222 SR_Floor_DnNnF_Slow 223 TransferFriction 224 TransferWind 225 TransferCurrent 226 TransferPointForce 227 W1_Elevator_NextHi 228 WR_Elevator_NextHi 229 S1_Elevator_NextHi 230 SR_Elevator_NextHi 231 W1_Elevator_NextLo 232 WR_Elevator_NextLo 233 S1_Elevator_NextLo 234 SR_Elevator_NextLo 235 W1_Elevator_Current 236 WR_Elevator_Current 237 S1_Elevator_Current 238 SR_Elevator_Current 239 W1_Floor_cSn Pure transfer type 240 WR_Floor_cSn Pure transfer type 241 S1_Floor_cSn Pure transfer type 242 TransferHeights 243 W1_TeleportToLine 244 WR_TeleportToLine 245 ScrollCeiling_ByHeight Scroll w/tagged floor motion 246 ScrollFloor_ByHeight Scroll w/tagged floor motion 247 CarryObjects_ByHeight Carry w/tagged floor motion 248 ScrollFloorCarryObjects_ByHeight Scroll/carry w/tagged floor motion 249 ScrollWallWithFlat_ByHeight Scroll wall w/floor w/tagged floor motion 250 ScrollCeiling 251 ScrollFloor 252 CarryObjects 253 ScrollFloorCarryObjects 254 ScrollWallWithFlat Scroll wall along with sector's flat 255 ScrollWallByOffsets Scroll wall by texture offsets 256 WR_Stairs_Up8_Slow 257 WR_Stairs_Up16_Fast 258 SR_Stairs_Up8_Slow 259 SR_Stairs_Up16_Fast 260 Translucent 261 TransferLight_Ceiling 262 W1_TeleportToLine_Reverse Reverse orientation 263 WR_TeleportToLine_Reverse Reverse orientation 264 W1_TeleportToLine_Reverse_MonOnly Reverse orientation, monsters only 265 WR_TeleportToLine_Reverse_MonOnly Reverse orientation, monsters only 266 W1_TeleportToLine_MonOnly Monsters only 267 WR_TeleportToLine_MonOnly Monsters only 268 W1_TeleportToSpot_Silent_MonOnly Monsters only 269 WR_TeleportToSpot_Silent_MonOnly Monsters only 270 ExtraDataSpecial 271 TransferSky 272 TransferSkyFlipped 273 WR_StartScript_1S Activated from first side only 274 W1_StartScript 275 W1_StartScript_1S Activated from first side only 276 SR_StartScript 277 S1_StartScript 278 GR_StartScript 279 G1_StartScript 280 WR_StartScript 281 3DMidTex_MoveWithFloor 282 3DMidTex_MoveWithCeiling 283 Portal_PlaneCeiling 284 Portal_PlaneFloor 285 Portal_PlaneFloorCeiling 286 Portal_HorizonCeiling 287 Portal_HorizonFloor 288 Portal_HorizonFloorCeiling 289 Portal_LineTransfer 290 Portal_SkyboxCeiling 291 Portal_SkyboxFloor 292 Portal_SkyboxFloorCeiling 293 TransferHereticWind 294 TransferHereticCurrent 295 Portal_AnchoredCeiling 296 Portal_AnchoredFloor 297 Portal_AnchoredFloorCeiling 298 Portal_AnchorLine 299 Portal_AnchorLineFloor 344 Portal_TwowayCeiling 345 Portal_TwowayFloor 346 Portal_TwowayAnchorLine 347 Portal_TwowayAnchorLineFloor ------------------------ Parameterized Line Types ------------------------ See the Eternity Engine Editing Reference for information on how these specials work. Number Name Parameters ----------------------------------------------------------------------------------------- 300 Door_Raise tag, speed, delay, lighttag 301 Door_Open tag, speed, lighttag 302 Door_Close tag, speed, lighttag 303 Door_CloseWaitOpen tag, speed, delay, lighttag 304 Door_WaitRaise tag, speed, delay, countdown, lighttag 305 Door_WaitClose tag, speed, countdown, lighttag 306 Floor_RaiseToHighest tag, speed, change, crush 307 Floor_LowerToHighest tag, speed, change 308 Floor_RaiseToLowest tag, change, crush 309 Floor_LowerToLowest tag, speed, change 310 Floor_RaiseToNearest tag, speed, change, crush 311 Floor_LowerToNearest tag, speed, change 312 Floor_RaiseToLowestCeiling tag, speed, change, crush 313 Floor_LowerToLowestCeiling tag, speed, change 314 Floor_RaiseToCeiling tag, speed, change, crush 315 Floor_RaiseByTexture tag, speed, change, crush 316 Floor_LowerByTexture tag, speed, change 317 Floor_RaiseByValue tag, speed, height, change, crush 318 Floor_LowerByValue tag, speed, height, change 319 Floor_MoveToValue tag, speed, height, change, crush 320 Floor_RaiseInstant tag, height, change, crush 321 Floor_LowerInstant tag, height, change 322 Floor_ToCeilingInstant tag, change, crush 323 Ceiling_RaiseToHighest tag, speed, change 324 Ceiling_ToHighestInstant tag, change, crush 325 Ceiling_RaiseToNearest tag, speed, change 326 Ceiling_LowerToNearest tag, speed, change, crush 327 Ceiling_RaiseToLowest tag, speed, change 328 Ceiling_LowerToLowest tag, speed, change, crush 329 Ceiling_RaiseToHighestFloor tag, speed, change 330 Ceiling_LowerToHighestFloor tag, speed, change, crush 331 Ceiling_ToFloorInstant tag, change, crush 332 Ceiling_LowerToFloor tag, speed, change, crush 333 Ceiling_RaiseByTexture tag, speed, change 334 Ceiling_LowerByTexture tag, speed, change, crush 335 Ceiling_RaiseByValue tag, speed, height, change 336 Ceiling_LowerByValue tag, speed, height, change, crush 337 Ceiling_MoveToValue tag, speed, height, change, crush 338 Ceiling_RaiseInstant tag, height, change 339 Ceiling_LowerInstant tag, height, change, crush 340 Stairs_BuildUpDoom tag, speed, stepsize, delay, reset 341 Stairs_BuildDownDoom tag, speed, stepsize, delay, reset 342 Stairs_BuildUpDoomSync tag, speed, stepsize, delay, reset 343 Stairs_BuildDownDoomSync tag, speed, stepsize, delay, reset 348 Polyobj_StartLine polyobj_id, mirror_id, sndseq_id 349 Polyobj_ExplicitLine polyobj_id, linenum, mirror_id, sndseq_id 350 Polyobj_DoorSlide polyobj_id, speed, angle, dist, delay 351 Polyobj_DoorSwing polyobj_id, aspeed, adist, delay 352 Polyobj_Move polyobj_id, speed, angle, dist 353 Polyobj_OR_Move polyobj_id, speed, angle, dist 354 Polyobj_RotateRight polyobj_id, aspeed, adist 355 Polyobj_OR_RotateRight polyobj_id, aspeed, adist 356 Polyobj_RotateLeft polyobj_id, aspeed, adist 357 Polyobj_OR_RotateLeft polyobj_id, aspeed, adist ---------------------- Generalized Line Types ---------------------- Values indicated are the exact values which must be provided inside the generalized specifier, although case of letters is not important and will be ignored. Range Name Parameters ----------------------------------------------------------------------------------------- 6000h- GenFloor crush, speed, changetype, modelormonster, targ, dir 7FFFh Values: crush -- true, false speed -- slow, normal, fast, turbo changetype -- none, zero, texture, texturetype modelormonster -- if change == none, true or false else: numeric or trigger targ -- HnF, LnF, NnF, LnC, C, sT, 24, 32 4000h- GenCeiling crush, speed, changetype, modelormonster, targ, dir 5FFFh Values: crush -- true, false speed -- slow, normal, fast, turbo changetype -- none, zero, texture, texturetype modelormonster -- if change == none, true or false else: numeric or trigger targ -- HnC, LnC, NnC, HnF, F, sT, 24, 32 3C00h- GenDoor kind, speed, monster, delay 4000h Values: kind -- Open, Close, OpenWaitClose, CloseWaitOpen speed -- slow, normal, fast, turbo monster -- true, false delay -- 1, 4, 9, 30 3800h- GenLockedDoor kind, speed, key, skulliscard 3C00h Values: kind -- Open, OpenWaitClose speed -- slow, normal, fast, turbo key -- Any, RedCard, BlueCard, YellowCard, RedSkull, BlueSkull, YellowSkull, All skulliscard -- true, false 3400h- GenLift target, delay, monster, speed 37FFh Values: target -- LnF, NnF, LnC, Perpetual delay -- 1, 3, 5, 10 monster -- true, false speed -- slow, normal, fast, turbo 3000h- GenStairs dir, stepsize, ignoretex, monster, speed 33FFh Values: dir -- up, down stepsize -- 4, 8, 16, 24 ignoretex -- true, false monster -- true, false speed -- slow, normal, fast, turbo 2F80h- GenCrusher silent, monster, speed 2FFFh Values: silent -- true, false monster -- true, false speed -- slow, normal, fast, turbo -----------------------------------------------------------------------------------------