2010-02-06 15:31:26 +00:00
|
|
|
#include "xlat/doom.txt"
|
|
|
|
|
|
|
|
// xlat file for Eternity levels.
|
|
|
|
// Many specials are unsupported, especially portal stuff.
|
|
|
|
// Some unsupported linedefs wouldn't be hard to add to ZDoom,
|
|
|
|
// or are already there but implemented differently. Others are
|
|
|
|
// practically impossible, or aren't worth the effort.
|
|
|
|
|
|
|
|
define Unsupported (0)
|
|
|
|
|
|
|
|
// The tag for such a line is actually a key to find, in an ExtraData lump
|
|
|
|
// indicated for the current level by the EMAPINFO lump, what line special
|
|
|
|
// to actually use. This is how parameterized linedefs are used by Eternity
|
|
|
|
// in the Doom format. "xlating" this would thus be quite complicated...
|
|
|
|
270 = 0, Unsupported() // "ExtraDataSpecial"
|
|
|
|
|
|
|
|
// These two are standard MBF specials, no need to redefine them, they're in xlat/doom.txt
|
|
|
|
// 271 = 0, Static_Init (tag, Init_TransferSky, 0)
|
|
|
|
// 272 = 0, Static_Init (tag, Init_TransferSky, 1)
|
|
|
|
|
|
|
|
// Small script starters. Small is considered deprecated now anyway.
|
|
|
|
273 = 0, Unsupported() // "WR_StartScript_1S"
|
|
|
|
274 = 0, Unsupported() // "W1_StartScript"
|
|
|
|
275 = 0, Unsupported() // "W1_StartScript_1S"
|
|
|
|
276 = 0, Unsupported() // "SR_StartScript"
|
|
|
|
277 = 0, Unsupported() // "S1_StartScript"
|
|
|
|
278 = 0, Unsupported() // "GR_StartScript"
|
|
|
|
279 = 0, Unsupported() // "G1_StartScript"
|
|
|
|
280 = 0, Unsupported() // "WR_StartScript"
|
|
|
|
|
|
|
|
// 3D mid-textures
|
|
|
|
281 = 0, Sector_Attach3DMidtex(tag, 0, 0) // "3DMidTex_MoveWithFloor"
|
|
|
|
282 = 0, Sector_Attach3DMidtex(tag, 0, 1) // "3DMidTex_MoveWithCeiling"
|
|
|
|
|
|
|
|
// Plane portals are not supported in ZDoom, though they probably wouldn't be too hard to implement.
|
|
|
|
283 = 0, Unsupported() // "Portal_PlaneCeiling"
|
|
|
|
284 = 0, Unsupported() // "Portal_PlaneFloor"
|
|
|
|
285 = 0, Unsupported() // "Portal_PlaneFloorCeiling"
|
|
|
|
286 = 0, Unsupported() // "Portal_HorizonCeiling"
|
|
|
|
287 = 0, Unsupported() // "Portal_HorizonFloor"
|
|
|
|
288 = 0, Unsupported() // "Portal_HorizonFloorCeiling"
|
|
|
|
289 = 0, Unsupported() // "Portal_LineTransfer"
|
|
|
|
|
|
|
|
// Skybox portals
|
|
|
|
290 = 0, Sector_SetPortal(tag, 2, 1, 1, 0) // "Portal_SkyboxCeiling"
|
|
|
|
291 = 0, Sector_SetPortal(tag, 2, 0, 1, 0) // "Portal_SkyboxFloor"
|
|
|
|
292 = 0, Sector_SetPortal(tag, 2, 2, 1, 0) // "Portal_SkyboxFloorCeiling"
|
|
|
|
|
|
|
|
// Sector specials
|
|
|
|
293 = 0, Sector_SetWind(tag, 0, 0, 1) // "TransferHereticWind"
|
|
|
|
294 = 0, Sector_SetCurrent(tag, 0, 0, 1) // "TransferHereticCurrent"
|
|
|
|
|
|
|
|
// Anchored portals -- Sector_SetPortal needs to allow to set both floor and ceiling, though.
|
|
|
|
295 = 0, Sector_SetPortal(tag, 0, 1, 1, 0) // "Portal_AnchoredCeiling"
|
|
|
|
296 = 0, Sector_SetPortal(tag, 0, 0, 1, 0) // "Portal_AnchoredFloor"
|
|
|
|
297 = 0, Sector_SetPortal(tag, 0, 2, 1, 0) // "Portal_AnchoredFloorCeiling"
|
|
|
|
298 = 0, Sector_SetPortal(tag, 0, 1, 0, 0) // "Portal_AnchorLine"
|
|
|
|
299 = 0, Sector_SetPortal(tag, 0, 0, 0, 0) // "Portal_AnchorLineFloor"
|
|
|
|
|
|
|
|
// Parameterized linedefs
|
|
|
|
// They are never used directly in Doom-format maps. Instead, it passes through ExtraData and 270.
|
|
|
|
// Hexen format is incomplete; and Quasar wants to use ZDoom-compatible special values for UDMF.
|
|
|
|
// So there is no need to bother with them and they are listed only for completeness' sake.
|
|
|
|
/*
|
|
|
|
300: "Door_Raise"
|
|
|
|
301: "Door_Open"
|
|
|
|
302: "Door_Close"
|
|
|
|
303: "Door_CloseWaitOpen"
|
|
|
|
304: "Door_WaitRaise"
|
|
|
|
305: "Door_WaitClose"
|
|
|
|
306: "Floor_RaiseToHighest"
|
|
|
|
307: "Floor_LowerToHighest"
|
|
|
|
308: "Floor_RaiseToLowest"
|
|
|
|
309: "Floor_LowerToLowest"
|
|
|
|
310: "Floor_RaiseToNearest"
|
|
|
|
311: "Floor_LowerToNearest"
|
|
|
|
312: "Floor_RaiseToLowestCeiling"
|
|
|
|
313: "Floor_LowerToLowestCeiling"
|
|
|
|
314: "Floor_RaiseToCeiling"
|
|
|
|
315: "Floor_RaiseByTexture"
|
|
|
|
316: "Floor_LowerByTexture"
|
|
|
|
317: "Floor_RaiseByValue"
|
|
|
|
318: "Floor_LowerByValue"
|
|
|
|
319: "Floor_MoveToValue"
|
|
|
|
320: "Floor_RaiseInstant"
|
|
|
|
321: "Floor_LowerInstant"
|
|
|
|
322: "Floor_ToCeilingInstant"
|
|
|
|
323: "Ceiling_RaiseToHighest"
|
|
|
|
324: "Ceiling_ToHighestInstant"
|
|
|
|
325: "Ceiling_RaiseToNearest"
|
|
|
|
326: "Ceiling_LowerToNearest"
|
|
|
|
327: "Ceiling_RaiseToLowest"
|
|
|
|
328: "Ceiling_LowerToLowest"
|
|
|
|
329: "Ceiling_RaiseToHighestFloor"
|
|
|
|
330: "Ceiling_LowerToHighestFloor"
|
|
|
|
331: "Ceiling_ToFloorInstant"
|
|
|
|
332: "Ceiling_LowerToFloor"
|
|
|
|
333: "Ceiling_RaiseByTexture"
|
|
|
|
334: "Ceiling_LowerByTexture"
|
|
|
|
335: "Ceiling_RaiseByValue"
|
|
|
|
336: "Ceiling_LowerByValue"
|
|
|
|
337: "Ceiling_MoveToValue"
|
|
|
|
338: "Ceiling_RaiseInstant"
|
|
|
|
339: "Ceiling_LowerInstant"
|
|
|
|
340: "Stairs_BuildUpDoom"
|
|
|
|
341: "Stairs_BuildDownDoom"
|
|
|
|
342: "Stairs_BuildUpDoomSync"
|
|
|
|
343: "Stairs_BuildDownDoomSync"
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Two-way portals are not supported yet either
|
|
|
|
344 = 0, Unsupported() // "Portal_TwowayCeiling"
|
|
|
|
345 = 0, Unsupported() // "Portal_TwowayFloor"
|
|
|
|
346 = 0, Unsupported() // "Portal_TwowayAnchorLine"
|
|
|
|
347 = 0, Unsupported() // "Portal_TwowayAnchorLineFloor"
|
|
|
|
|
|
|
|
// More parameterized linedefs
|
|
|
|
/*
|
|
|
|
348: "Polyobj_StartLine"
|
|
|
|
349: "Polyobj_ExplicitLine"
|
|
|
|
350: "Polyobj_DoorSlide"
|
|
|
|
351: "Polyobj_DoorSwing"
|
|
|
|
352: "Polyobj_Move"
|
|
|
|
353: "Polyobj_OR_Move"
|
|
|
|
354: "Polyobj_RotateRight"
|
|
|
|
355: "Polyobj_OR_RotateRight"
|
|
|
|
356: "Polyobj_RotateLeft"
|
|
|
|
357: "Polyobj_OR_RotateLeft"
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Eternity's linked portals, vertical link version (floor-to-ceiling)
|
|
|
|
358 = 0, Unsupported() // "Portal_LinkedCeiling"
|
|
|
|
359 = 0, Unsupported() // "Portal_LinkedFloor"
|
|
|
|
360 = 0, Unsupported() // "Portal_LinkedAnchorLine"
|
|
|
|
361 = 0, Unsupported() // "Portal_LinkedAnchorLineFloor"
|
|
|
|
|
|
|
|
// Even more parameterized linedefs
|
|
|
|
/*
|
|
|
|
362: "Pillar_Build"
|
|
|
|
363: "Pillar_BuildAndCrush"
|
|
|
|
364: "Pillar_Open"
|
|
|
|
365: "ACS_Execute"
|
|
|
|
366: "ACS_Suspend"
|
|
|
|
367: "ACS_Terminate"
|
|
|
|
368: "Light_RaiseByValue"
|
|
|
|
369: "Light_LowerByValue"
|
|
|
|
370: "Light_ChangeToValue"
|
|
|
|
371: "Light_Fade"
|
|
|
|
372: "Light_Glow"
|
|
|
|
373: "Light_Flicker"
|
|
|
|
374: "Light_Strobe"
|
|
|
|
375: "Radius_Quake"
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Eternity's linked portals, horizontal link version (wall-to-wall)
|
|
|
|
376 = 0, Unsupported() // "Portal_LinkedLineToLine"
|
|
|
|
377 = 0, Unsupported() // "Portal_LinkedLineToLineAnchor"
|
|
|
|
|
|
|
|
// The famous Hexen linedef
|
|
|
|
// 378 = Line_SetIdentification
|
|
|
|
|
|
|
|
// Attached sectors == linked sectors; However, the implementation in Eternity
|
|
|
|
// is based on front sectors of tagged lines, not on sector tags. So instead
|
|
|
|
// of Sector_SetLink, we pass through Static_Init to translate those.
|
|
|
|
379 = 0, Static_Init(tag, 3, 1) // "Attach_SetCeilingControl"
|
|
|
|
380 = 0, Static_Init(tag, 3, 0) // "Attach_SetFloorControl"
|
|
|
|
381 = 0, Static_Init(0, 3, 0, 1) // "Attach_FloorToControl"
|
|
|
|
382 = 0, Static_Init(0, 3, 1, 2) // "Attach_CeilingToControl"
|
|
|
|
383 = 0, Static_Init(0, 3, 0, 5) // "Attach_MirrorFloorToControl"
|
|
|
|
384 = 0, Static_Init(0, 3, 0, 10) // "Attach_MirrorCeilingToControl"
|
|
|
|
|
|
|
|
// Attach tagged portal to front sector
|
2016-01-04 20:05:09 +00:00
|
|
|
385 = 0, Sector_SetPortal(0, 1, 3, tag) // "Apply_PortalToFrontsector"
|
2010-02-06 15:31:26 +00:00
|
|
|
|
|
|
|
// Slopes!
|
|
|
|
386 = 0, Plane_Align (1, 0) // "Slope_FrontsectorFloor"
|
|
|
|
387 = 0, Plane_Align (0, 1) // "Slope_FrontsectorCeiling"
|
|
|
|
388 = 0, Plane_Align (1, 1) // "Slope_FrontsectorFloorAndCeiling"
|
|
|
|
389 = 0, Plane_Align (2, 0) // "Slope_BacksectorFloor"
|
|
|
|
390 = 0, Plane_Align (0, 2) // "Slope_BacksectorCeiling"
|
|
|
|
391 = 0, Plane_Align (2, 2) // "Slope_BacksectorFloorAndCeiling"
|
|
|
|
392 = 0, Plane_Align (2, 1) // "Slope_BackFloorAndFrontCeiling"
|
|
|
|
393 = 0, Plane_Align (1, 2) // "Slope_BackCeilingAndFrontFloor"
|
|
|
|
394 = 0, Plane_Copy (tag, 0) // "Slope_FrontFloorToTaggedSlope"
|
|
|
|
395 = 0, Plane_Copy (0, tag) // "Slope_FrontCeilingToTaggedSlope"
|
|
|
|
396 = 0, Plane_Copy(tag, tag)// "Slope_FrontFloorAndCeilingToTaggedSlope"
|
|
|
|
|
|
|
|
// Last parameterized linedefs
|
|
|
|
// 397 = Floor_Waggle
|
|
|
|
// 398 = Thing_Spawn
|
|
|
|
// 399 = Thing_SpawnNoFog
|
|
|
|
// 400 = Teleport_EndGame
|