include "xlat/defines.i" 1 = USE|MONST|REP, Door_Raise (0, D_SLOW, VDOORWAIT, tag) 2 = WALK, Door_Open (tag, D_SLOW) 3 = WALK, Door_Close (tag, D_SLOW) 4 = WALK|MONST, Door_Raise (tag, D_SLOW, VDOORWAIT) 5 = WALK, Floor_RaiseToLowestCeiling (tag, F_SLOW) 6 = WALK, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10) 7 = USE, Stairs_BuildUpDoom (tag, ST_SLOW, 8) 8 = WALK, Stairs_BuildUpDoom (tag, ST_SLOW, 8) 9 = USE, Floor_Donut (tag, DORATE, DORATE) 10 = WALK|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0) 11 = USE, Exit_Normal (0) 12 = WALK, Light_MaxNeighbor (tag) 13 = WALK, Light_ChangeToValue (tag, 255) 14 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 4) 15 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 3) 16 = WALK, Door_CloseWaitOpen (tag, D_SLOW, 240) 17 = WALK, Light_StrobeDoom (tag, 5, 35) 18 = USE, Floor_RaiseToNearest (tag, F_SLOW) 19 = WALK, Floor_LowerToHighest (tag, F_SLOW, 128) 20 = USE, Plat_RaiseAndStayTx0 (tag, P_SLOW/2) 21 = USE, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT) 22 = WALK, Plat_RaiseAndStayTx0 (tag, P_SLOW/2) 23 = USE, Floor_LowerToLowest (tag, F_SLOW) 24 = SHOOT, Floor_RaiseToLowestCeiling (tag, F_SLOW) 25 = WALK, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10) 26 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, BCard | CardIsSkull, tag) 27 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, YCard | CardIsSkull, tag) 28 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, RCard | CardIsSkull, tag) 29 = USE, Door_Raise (tag, D_SLOW, VDOORWAIT) 30 = WALK, Floor_RaiseByTexture (tag, F_SLOW) 31 = USE, Door_Open (0, D_SLOW, tag) 32 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, BCard | CardIsSkull, tag) 33 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, RCard | CardIsSkull, tag) 34 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, YCard | CardIsSkull, tag) 35 = WALK, Light_ChangeToValue (tag, 35) 36 = WALK, Floor_LowerToHighest (tag, F_FAST, 136) 37 = WALK, Floor_LowerToLowestTxTy (tag, F_SLOW) 38 = WALK, Floor_LowerToLowest (tag, F_SLOW) 39 = WALK|MONST, Teleport (0, tag) 40 = WALK, Generic_Ceiling (tag, C_SLOW, 0, 1, 8) 41 = USE, Ceiling_LowerToFloor (tag, C_SLOW) 42 = USE|REP, Door_Close (tag, D_SLOW) 43 = USE|REP, Ceiling_LowerToFloor (tag, C_SLOW) 44 = WALK, Ceiling_LowerAndCrush (tag, C_SLOW, 0, 2) 45 = USE|REP, Floor_LowerToHighest (tag, F_SLOW, 128) 46 = SHOOT|REP|MONST, Door_Open (tag, D_SLOW) 47 = SHOOT, Plat_RaiseAndStayTx0 (tag, P_SLOW/2) 48 = 0, Scroll_Texture_Left (SCROLL_UNIT) 49 = USE, Ceiling_CrushAndRaiseDist (tag, 8, C_SLOW, 10) 50 = USE, Door_Close (tag, D_SLOW) 51 = USE, Exit_Secret (0) 52 = WALK, Exit_Normal (0) 53 = WALK, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0) 54 = WALK, Plat_Stop (tag) 55 = USE, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2) 56 = WALK, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2) 57 = WALK, Ceiling_CrushStop (tag) 58 = WALK, Floor_RaiseByValue (tag, F_SLOW, 24) 59 = WALK, Floor_RaiseByValueTxTy (tag, F_SLOW, 24) 60 = USE|REP, Floor_LowerToLowest (tag, F_SLOW) 61 = USE|REP, Door_Open (tag, D_SLOW) 62 = USE|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0) 63 = USE|REP, Door_Raise (tag, D_SLOW, VDOORWAIT) 64 = USE|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW) 65 = USE|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2) 66 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3) 67 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4) 68 = USE|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2) 69 = USE|REP, Floor_RaiseToNearest (tag, F_SLOW) 70 = USE|REP, Floor_LowerToHighest (tag, F_FAST, 136) 71 = USE, Floor_LowerToHighest (tag, F_FAST, 136) 72 = WALK|REP, Ceiling_LowerAndCrush (tag, C_SLOW, 0, 2) 73 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10) 74 = WALK|REP, Ceiling_CrushStop (tag) 75 = WALK|REP, Door_Close (tag, D_SLOW) 76 = WALK|REP, Door_CloseWaitOpen (tag, D_SLOW, 240) 77 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10) 78 = USE|REP, Floor_TransferNumeric (tag) // <- BOOM special 79 = WALK|REP, Light_ChangeToValue (tag, 35) 80 = WALK|REP, Light_MaxNeighbor (tag) 81 = WALK|REP, Light_ChangeToValue (tag, 255) 82 = WALK|REP, Floor_LowerToLowest (tag, F_SLOW) 83 = WALK|REP, Floor_LowerToHighest (tag, F_SLOW, 128) 84 = WALK|REP, Floor_LowerToLowestTxTy (tag, F_SLOW) 85 = 0, Scroll_Texture_Right (SCROLL_UNIT) // <- BOOM special 86 = WALK|REP, Door_Open (tag, D_SLOW) 87 = WALK|REP, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0) 88 = WALK|REP|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0) 89 = WALK|REP, Plat_Stop (tag) 90 = WALK|REP, Door_Raise (tag, D_SLOW, VDOORWAIT) 91 = WALK|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW) 92 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 24) 93 = WALK|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24) 94 = WALK|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2) 95 = WALK|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2) 96 = WALK|REP, Floor_RaiseByTexture (tag, F_SLOW) 97 = WALK|REP|MONST, Teleport (0, tag) 98 = WALK|REP, Floor_LowerToHighest (tag, F_FAST, 136) 99 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, BCard | CardIsSkull) 100 = WALK, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0) 101 = USE, Floor_RaiseToLowestCeiling (tag, F_SLOW) 102 = USE, Floor_LowerToHighest (tag, F_SLOW, 128) 103 = USE, Door_Open (tag, D_SLOW) 104 = WALK, Light_MinNeighbor (tag) 105 = WALK|REP, Door_Raise (tag, D_FAST, VDOORWAIT) 106 = WALK|REP, Door_Open (tag, D_FAST) 107 = WALK|REP, Door_Close (tag, D_FAST) 108 = WALK, Door_Raise (tag, D_FAST, VDOORWAIT) 109 = WALK, Door_Open (tag, D_FAST) 110 = WALK, Door_Close (tag, D_FAST) 111 = USE, Door_Raise (tag, D_FAST, VDOORWAIT) 112 = USE, Door_Open (tag, D_FAST) 113 = USE, Door_Close (tag, D_FAST) 114 = USE|REP, Door_Raise (tag, D_FAST, VDOORWAIT) 115 = USE|REP, Door_Open (tag, D_FAST) 116 = USE|REP, Door_Close (tag, D_FAST) 117 = USE|REP, Door_Raise (0, D_FAST, VDOORWAIT, tag) 118 = USE, Door_Open (0, D_FAST, tag) 119 = WALK, Floor_RaiseToNearest (tag, F_SLOW) 120 = WALK|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0) 121 = WALK, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0) 122 = USE, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0) 123 = USE|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0) 124 = WALK, Exit_Secret (0) 125 = MONWALK, Teleport (0, tag) 126 = MONWALK|REP, Teleport (0, tag) 127 = USE, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0) 128 = WALK|REP, Floor_RaiseToNearest (tag, F_SLOW) 129 = WALK|REP, Floor_RaiseToNearest (tag, F_FAST) 130 = WALK, Floor_RaiseToNearest (tag, F_FAST) 131 = USE, Floor_RaiseToNearest (tag, F_FAST) 132 = USE|REP, Floor_RaiseToNearest (tag, F_FAST) 133 = USE, Door_LockedRaise (tag, D_FAST, 0, BCard | CardIsSkull) 134 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, RCard | CardIsSkull) 135 = USE, Door_LockedRaise (tag, D_FAST, 0, RCard | CardIsSkull) 136 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, YCard | CardIsSkull) 137 = USE, Door_LockedRaise (tag, D_FAST, 0, YCard | CardIsSkull) 138 = USE|REP, Light_ChangeToValue (tag, 255) 139 = USE|REP, Light_ChangeToValue (tag, 35) 140 = USE, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64) 141 = WALK, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10) /****** The following are all new to BOOM ******/ 142 = WALK, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64) 143 = WALK, Plat_UpByValueStayTx (tag, P_SLOW/2, 3) 144 = WALK, Plat_UpByValueStayTx (tag, P_SLOW/2, 4) 145 = WALK, Ceiling_LowerToFloor (tag, C_SLOW) 146 = WALK, Floor_Donut (tag, DORATE, DORATE) 147 = WALK|REP, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64) 148 = WALK|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3) 149 = WALK|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4) 150 = WALK|REP, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10) 151 = WALK|REP, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW) 152 = WALK|REP, Ceiling_LowerToFloor (tag, C_SLOW) 153 = WALK, Floor_TransferTrigger (tag) 154 = WALK|REP, Floor_TransferTrigger (tag) 155 = WALK|REP, Floor_Donut (tag, DORATE, DORATE) 156 = WALK|REP, Light_StrobeDoom (tag, 5, 35) 157 = WALK|REP, Light_MinNeighbor (tag) 158 = USE, Floor_RaiseByTexture (tag, F_SLOW) 159 = USE, Floor_LowerToLowestTxTy (tag, F_SLOW) 160 = USE, Floor_RaiseByValueTxTy (tag, F_SLOW, 24) 161 = USE, Floor_RaiseByValue (tag, F_SLOW, 24) 162 = USE, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0) 163 = USE, Plat_Stop (tag) 164 = USE, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10) 165 = USE, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10) 166 = USE, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW, 1998) 167 = USE, Ceiling_LowerAndCrush (tag, C_SLOW, 0, 2) 168 = USE, Ceiling_CrushStop (tag) 169 = USE, Light_MaxNeighbor (tag) 170 = USE, Light_ChangeToValue (tag, 35) 171 = USE, Light_ChangeToValue (tag, 255) 172 = USE, Light_StrobeDoom (tag, 5, 35) 173 = USE, Light_MinNeighbor (tag) 174 = USE|MONST, Teleport (0, tag) 175 = USE, Door_CloseWaitOpen (tag, D_SLOW, 240) 176 = USE|REP, Floor_RaiseByTexture (tag, F_SLOW) 177 = USE|REP, Floor_LowerToLowestTxTy (tag, F_SLOW) 178 = USE|REP, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64) 179 = USE|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24) 180 = USE|REP, Floor_RaiseByValue (tag, F_SLOW, 24) 181 = USE|REP, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0) 182 = USE|REP, Plat_Stop (tag) 183 = USE|REP, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10) 184 = USE|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10) 185 = USE|REP, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10) 186 = USE|REP, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW, 1998) 187 = USE|REP, Ceiling_LowerAndCrush (tag, C_SLOW, 0, 2) 188 = USE|REP, Ceiling_CrushStop (tag) 189 = USE, Floor_TransferTrigger (tag) 190 = USE|REP, Floor_TransferTrigger (tag) 191 = USE|REP, Floor_Donut (tag, DORATE, DORATE) 192 = USE|REP, Light_MaxNeighbor (tag) 193 = USE|REP, Light_StrobeDoom (tag, 5, 35) 194 = USE|REP, Light_MinNeighbor (tag) 195 = USE|REP|MONST, Teleport (0, tag) 196 = USE|REP, Door_CloseWaitOpen (tag, D_SLOW, 240) 197 = SHOOT, Exit_Normal (0) 198 = SHOOT, Exit_Secret (0) 199 = WALK, Ceiling_LowerToLowest (tag, C_SLOW) 200 = WALK, Ceiling_LowerToHighestFloor (tag, C_SLOW) 201 = WALK|REP, Ceiling_LowerToLowest (tag, C_SLOW) 202 = WALK|REP, Ceiling_LowerToHighestFloor (tag, C_SLOW) 203 = USE, Ceiling_LowerToLowest (tag, C_SLOW) 204 = USE, Ceiling_LowerToHighestFloor (tag, C_SLOW) 205 = USE|REP, Ceiling_LowerToLowest (tag, C_SLOW) 206 = USE|REP, Ceiling_LowerToHighestFloor (tag, C_SLOW) 207 = WALK|MONST, Teleport_NoFog (0, 0, tag, 1) 208 = WALK|REP|MONST, Teleport_NoFog (0, 0, tag, 1) 209 = USE|MONST, Teleport_NoFog (0, 0, tag, 1) 210 = USE|REP|MONST, Teleport_NoFog (0, 0, tag, 1) 211 = USE|REP, Plat_ToggleCeiling (tag) 212 = WALK|REP, Plat_ToggleCeiling (tag) 213 = 0, Transfer_FloorLight (tag) 214 = 0, Scroll_Ceiling (tag, 6, 0, 0, 0) 215 = 0, Scroll_Floor (tag, 6, 0, 0, 0) 216 = 0, Scroll_Floor (tag, 6, 1, 0, 0) 217 = 0, Scroll_Floor (tag, 6, 2, 0, 0) 218 = 0, Scroll_Texture_Model (lineid, 2) 219 = WALK, Floor_LowerToNearest (tag, F_SLOW) 220 = WALK|REP, Floor_LowerToNearest (tag, F_SLOW) 221 = USE, Floor_LowerToNearest (tag, F_SLOW) 222 = USE|REP, Floor_LowerToNearest (tag, F_SLOW) 223 = 0, Sector_SetFriction (tag, 0) 224 = 0, Sector_SetWind (tag, 0, 0, 1) 225 = 0, Sector_SetCurrent (tag, 0, 0, 1) 226 = 0, PointPush_SetForce (tag, 0, 0, 1) 227 = WALK, Elevator_RaiseToNearest (tag, ELEVATORSPEED) 228 = WALK|REP, Elevator_RaiseToNearest (tag, ELEVATORSPEED) 229 = USE, Elevator_RaiseToNearest (tag, ELEVATORSPEED) 230 = USE|REP, Elevator_RaiseToNearest (tag, ELEVATORSPEED) 231 = WALK, Elevator_LowerToNearest (tag, ELEVATORSPEED) 232 = WALK|REP, Elevator_LowerToNearest (tag, ELEVATORSPEED) 233 = USE, Elevator_LowerToNearest (tag, ELEVATORSPEED) 234 = USE|REP, Elevator_LowerToNearest (tag, ELEVATORSPEED) 235 = WALK, Elevator_MoveToFloor (tag, ELEVATORSPEED) 236 = WALK|REP, Elevator_MoveToFloor (tag, ELEVATORSPEED) 237 = USE, Elevator_MoveToFloor (tag, ELEVATORSPEED) 238 = USE|REP, Elevator_MoveToFloor (tag, ELEVATORSPEED) 239 = WALK, Floor_TransferNumeric (tag) 240 = WALK|REP, Floor_TransferNumeric (tag) 241 = USE, Floor_TransferNumeric (tag) 242 = 0, Transfer_Heights (tag) 243 = WALK|MONST, Teleport_Line (tag, tag, 0) 244 = WALK|REP|MONST, Teleport_Line (tag, tag, 0) 245 = 0, Scroll_Ceiling (tag, 5, 0, 0, 0) 246 = 0, Scroll_Floor (tag, 5, 0, 0, 0) 247 = 0, Scroll_Floor (tag, 5, 1, 0, 0) 248 = 0, Scroll_Floor (tag, 5, 2, 0, 0) 249 = 0, Scroll_Texture_Model (lineid, 1) 250 = 0, Scroll_Ceiling (tag, 4, 0, 0, 0) 251 = 0, Scroll_Floor (tag, 4, 0, 0, 0) 252 = 0, Scroll_Floor (tag, 4, 1, 0, 0) 253 = 0, Scroll_Floor (tag, 4, 2, 0, 0) 254 = 0, Scroll_Texture_Model (lineid, 0) 255 = 0, Scroll_Texture_Offsets () 256 = WALK|REP, Stairs_BuildUpDoom (tag, ST_SLOW, 8, 0, 0) 257 = WALK|REP, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0) 258 = USE|REP, Stairs_BuildUpDoom (tag, ST_SLOW, 8, 0, 0) 259 = USE|REP, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0) 260 = 0, TranslucentLine (lineid, 168) // Changed to better reflect the BOOM default 261 = 0, Transfer_CeilingLight (tag) 262 = WALK|MONST, Teleport_Line (tag, tag, 1) 263 = WALK|REP|MONST, Teleport_Line (tag, tag, 1) 264 = MONWALK, Teleport_Line (tag, tag, 1) 265 = MONWALK|REP, Teleport_Line (tag, tag, 1) 266 = MONWALK, Teleport_Line (tag, tag, 0) 267 = MONWALK|REP, Teleport_Line (tag, tag, 0) 268 = MONWALK, Teleport_NoFog (0, 0, tag, 1) 269 = MONWALK|REP, Teleport_NoFog (0, 0, tag, 1) /****** MBF linetypes ******/ 270 = WALK|REP, FS_Execute(tag) 271 = 0, Static_Init (tag, Init_TransferSky, 0) 272 = 0, Static_Init (tag, Init_TransferSky, 1) /****** Legacy linetypes ******/ 273 = WALK|REP, FS_Execute(tag, 1) 274 = WALK, FS_Execute(tag) 275 = WALK, FS_Execute(tag, 1) 276 = USE|REP, FS_Execute(tag) 277 = USE, FS_Execute(tag) 278 = SHOOT|REP, FS_Execute(tag) 279 = SHOOT, FS_Execute(tag) 280 = 0, Transfer_Heights (tag, 12) 281 = 0, Sector_Set3DFloor(tag, 1, 0, 255) 282 = 0, Static_Init(tag, 1) // No, I haven't actually looked at these in Legacy. But these look like they // should give results equivalent to hardware Legacy rendering. 284 = 0, TranslucentLine (lineid, 128, 0) 285 = 0, TranslucentLine (lineid, 192, 0) 286 = 0, TranslucentLine (lineid, 48, 0) 287 = 0, TranslucentLine (lineid, 128, 1) 288 = 0, TranslucentLine(lineid, 255, 0) 289 = 0, Sector_Set3DFloor(tag, 1, 1, 255) 300 = 0, Sector_Set3DFloor(tag, 1, 1, 127) 301 = 0, Sector_Set3DFloor(tag, 2, 2, 127) 302 = 0, Sector_Set3DFloor(tag, 3, 6, 127) 303 = 0, Sector_Set3DFloor(tag, 3) 304 = 0, Sector_Set3DFloor(tag, 2, 2, 255) 305 = 0, Sector_Set3DFloor(tag, 3, 2) 306 = 0, Sector_Set3DFloor(tag, 1) 332 = 0, Sector_Set3DFloor(tag, 4) /****** ZDoom linetypes ******/ 333 = 0, Static_Init (tag, Init_Gravity) 334 = 0, Static_Init (tag, Init_Color) 335 = 0, Static_Init (tag, Init_Damage) 336 = 0, Line_Mirror () 337 = 0, Line_Horizon () 338 = WALK, Floor_Waggle (tag, 24, 32, 0, 0) 339 = WALK, Floor_Waggle (tag, 12, 32, 0, 0) 340 = 0, Plane_Align (1, 0) // Slope front floor 341 = 0, Plane_Align (0, 1) // Slope front ceiling 342 = 0, Plane_Align (1, 1) // Slope front floor and ceiling 343 = 0, Plane_Align (2, 0) // Slope back floor 344 = 0, Plane_Align (0, 2) // Slope back ceiling 345 = 0, Plane_Align (2, 2) // Slope back floor and ceiling 346 = 0, Plane_Align (2, 1) // Slope b.f. and f.c. 347 = 0, Plane_Align (1, 2) // Slope f.f. and b.c. 348 = WALK, Autosave () 349 = USE, Autosave () 350 = 0, Transfer_Heights (tag, 2) // Just fake the floor 351 = 0, Transfer_Heights (tag, 6) // Just fake the floor and clip it too 352 = 0, Sector_CopyScroller(tag, 1) // copy ceiling scroller 353 = 0, Sector_CopyScroller(tag, 2) // copy floor scroller 354 = 0, Sector_CopyScroller(tag, 6) // copy carrying floor scroller /****** EDGE linetypes ******/ 400 = 0, Sector_Set3DFloor(tag, 1, 0, 255) 401 = 0, Sector_Set3DFloor(tag, 1, 16, 255) 402 = 0, Sector_Set3DFloor(tag, 1, 32, 255) 403 = 0, Sector_Set3DFloor(tag, 2, 2, 255) 404 = 0, Sector_Set3DFloor(tag, 2, 2, 204) 405 = 0, Sector_Set3DFloor(tag, 2, 2, 153) 406 = 0, Sector_Set3DFloor(tag, 2, 2, 102) 407 = 0, Sector_Set3DFloor(tag, 2, 2, 51) 408 = 0, Sector_Set3DFloor(tag, 2, 2) 413 = 0, Sector_Set3DFloor(tag, 1, 8, 255) 414 = 0, Sector_Set3DFloor(tag, 1, 8, 204) 415 = 0, Sector_Set3DFloor(tag, 1, 8, 153) 416 = 0, Sector_Set3DFloor(tag, 1, 8, 102) 417 = 0, Sector_Set3DFloor(tag, 1, 8, 51) 409 = 0, TranslucentLine (lineid, 204) // 80% translucent 410 = 0, TranslucentLine (lineid, 153) // 60% translucent 411 = 0, TranslucentLine (lineid, 101) // 40% translucent 412 = 0, TranslucentLine (lineid, 50) // 20% translucent 422 = 0, Scroll_Texture_Right (SCROLL_UNIT) 423 = 0, Scroll_Texture_Up (SCROLL_UNIT) 424 = 0, Scroll_Texture_Down (SCROLL_UNIT) 425 = 0, Scroll_Texture_Both (0, SCROLL_UNIT, 0, 0, SCROLL_UNIT) 426 = 0, Scroll_Texture_Both (0, SCROLL_UNIT, 0, SCROLL_UNIT, 0) 427 = 0, Scroll_Texture_Both (0, 0, SCROLL_UNIT, 0, SCROLL_UNIT) 428 = 0, Scroll_Texture_Both (0, 0, SCROLL_UNIT, SCROLL_UNIT, 0) 434 = USE, Floor_RaiseByValue (tag, F_SLOW, 2) 435 = USE|REP, Floor_RaiseByValue (tag, F_SLOW, 2) 436 = WALK, Floor_RaiseByValue (tag, F_SLOW, 2) 437 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 2) 438 = SHOOT, Floor_RaiseByValue (tag, F_SLOW, 2) 439 = SHOOT|REP, Floor_RaiseByValue (tag, F_SLOW, 2) /****** BOOM generalized linetypes ****** * * The general structure for a BOOM generalized translator is * * [ZDoom Line Special] (first line type for this, last line type for this) * { * one or more stores * } * * Stores have the form: * * * * can be arg2, arg3, arg4, arg5, or flags. Arg1 will always * be set to the line's tag, so it cannot be specified in a store. * * can be |= or =. If it is =, then is simply stored in * . If it is |=, then is logically or'ed with * whatever is already in . * * can be either a simple number, which will always be stored in * based on , or it can be a list of numbers chosen * by using a bitmask. When using a list, this form is used: * * mask [choices] * * There can be at most 15 choices in a list. (If you need more, use * more than one list.) Each choice is separated from the other choices * by a comma. Each individual choice has the form: * * : * * When ZDoom processes one of these lists, the linetype is logically * and'ed with the mask. It then searches the list for a selector that * matches the result of this operation. If it finds one, the selector's * corresponding value is used as the value for to store into * . */ // Generalized crusher (tag, dnspeed, upspeed, silent, damage) [Generic_Crusher] (0x2f80, 0x2fff) { flags |= 0x0020 [0x0020 : MONST] arg2 = 0x0018 [0x0000 : C_SLOW, 0x0008 : C_NORMAL, 0x0010 : C_FAST, 0x0018 : C_TURBO] arg3 = 0x0018 [0x0000 : C_SLOW, 0x0008 : C_NORMAL, 0x0010 : C_FAST, 0x0018 : C_TURBO] arg4 = 0x0040 [0x0040 : 1] arg5 = 10 } // Generalized stairs (tag, speed, step, dir/igntxt, reset) [Generic_Stairs] (0x3000, 0x33ff) { flags |= 0x0020 [0x0020 : MONST] arg2 = 0x0018 [0x0000 : ST_SLOW, 0x0008 : ST_NORMAL, 0x0010 : ST_FAST, 0x0018 : ST_TURBO] arg3 = 0x00c0 [0x0000 : 4, 0x0040 : 8, 0x0080 : 16, 0x00c0 : 24] arg4 = 0x0300 [0x0100 : 1, 0x0200 : 2, 0x0300 : 3] } // Generalized lift (tag, speed, delay, target, height) [Generic_Lift] (0x3400, 0x37ff) { flags |= 0x0020 [0x0020 : MONST] arg2 = 0x0018 [0x0000 : P_SLOW*2, 0x0008 : P_NORMAL*2, 0x0010 : P_FAST*2, 0x0018 : P_TURBO*2] arg3 = 0x00c0 [0x0000 : 8, 0x0040 : 24, 0x0080 : 40, 0x00c0 : 80] arg4 = 0x0300 [0x0000 : 1, 0x0100 : 2, 0x0200 : 3, 0x0300 : 4] } // Generalized locked door (tag, speed, kind, delay, lock) [Generic_Door] (0x3800, 0x3bff) { arg2 = 0x0018 [0x0000 : D_SLOW, 0x0008 : D_NORMAL, 0x0010 : D_FAST, 0x0018 : D_TURBO] arg3 = 0x0020 [0x0020 : 1] arg4 = 0x0020 [0 : 34] arg5 = 0x01c0 [0x0000 : AnyKey, 0x0040 : RCard, 0x0080 : BCard, 0x00c0 : YCard, 0x0100 : RSkull, 0x0140 : BSkull, 0x0180 : YSkull, 0x01c0 : AllKeys] arg5 |= 0x0200 [0x0200 : CardIsSkull] } // Generalized door (tag, speed, kind, delay, lock) [Generic_Door] (0x3c00, 0x3fff) { flags |= 0x0080 [0x0080 : MONST] arg2 = 0x0018 [0x0000 : D_SLOW, 0x0008 : D_NORMAL, 0x0010 : D_FAST, 0x0018 : D_TURBO] arg3 = 0x0060 [0x0000 : 0, 0x0020 : 1, 0x0040 : 2, 0x0060 : 3] arg4 = 0x0300 [0x0000 : 8, 0x0100 : 34, 0x0200 : 69, 0x0300 : 240] } // Generalized ceiling (tag, speed, height, target, change/model/direct/crush) [Generic_Ceiling] (0x4000, 0x5fff) { flags |= 0x0c20 [0x0020 : MONST] arg2 = 0x0018 [0x0000 : F_SLOW, 0x0008 : F_NORMAL, 0x0010 : F_FAST, 0x0018 : F_TURBO] arg3 = 0x0380 [0x0300 : 24, 0x0380 : 32] arg4 = 0x0380 [0x0000 : 1, 0x0080 : 2, 0x0100 : 3, 0x0180 : 4, 0x0200 : 5, 0x0280 : 6] arg5 = 0x0c00 [0x0000 : 0, 0x0400 : 1, 0x0800 : 2, 0x0c00 : 3] arg5 |= 0x0060 [0x0020 : 4, 0x0040 : 8, 0x0060 : 12] arg5 |= 0x1000 [0x1000 : 16] } // Generalized floor (tag, speed, height, target, change/model/direct/crush) [Generic_Floor] (0x6000, 0x7fff) { flags |= 0x0c20 [0x0020 : MONST] arg2 = 0x0018 [0x0000 : F_SLOW, 0x0008 : F_NORMAL, 0x0010 : F_FAST, 0x0018 : F_TURBO] arg3 = 0x0380 [0x0300 : 24, 0x0380 : 32] arg4 = 0x0380 [0x0000 : 1, 0x0080 : 2, 0x0100 : 3, 0x0180 : 4, 0x0200 : 5, 0x0280 : 6] arg5 = 0x0c00 [0x0000 : 0, 0x0400 : 1, 0x0800 : 2, 0x0c00 : 3] arg5 |= 0x0060 [0x0020 : 4, 0x0040 : 8, 0x0060 : 12] arg5 |= 0x1000 [0x1000 : 16] }