Editing ExtraData
From Eternity Wiki
Jump to navigationJump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
ExtraData is a new data specification language for the [[Eternity Engine]] that allows arbitrary extension of mapthings, lines, and sectors with any number of new fields, with data provided in more or less any format. The use of a textual input language forever removes any future problems caused by binary format limitations. The ExtraData parser is based on the libConfuse configuration file parser library by Martin Hedenfalk, which is also used by GFS and EDF. | |||
Each section in this document deals with one of the ExtraData constructs, as well as how to embed ExtraData in a WAD and how to associate it with a given map. | |||
ExtraData | ExtraData will continue to be supported in future versions of Eternity, even though it will soon be superceded by support for the [[Universal Doom Map Format]]. | ||
=General Syntax= | =General Syntax= | ||
''See [[EDF#Syntax|EDF Syntax]], as it is the same.'' | ''See [[EDF#Syntax|EDF Syntax]], as it is the same.'' | ||
Line 50: | Line 49: | ||
// These fields are ExtraData extensions | // These fields are ExtraData extensions | ||
tid <number> | tid <number> | ||
args { <special field>, ... } | args { <special field>, ... } | ||
height <number> | height <number> | ||
Line 64: | Line 62: | ||
This field can also accept EDF thingtype mnemonics. EDF thingtype mnemonics must be prefixed with ''thing:'' -- this allows the parser to know it is dealing with a string instead of a number. EDF thingtypes must have a unique doomednum to be specified in an ExtraData mapthing record. If the specified EDF thingtype doesn't exist or has a doomednum of -1, an Unknown object will be spawned instead. | This field can also accept EDF thingtype mnemonics. EDF thingtype mnemonics must be prefixed with ''thing:'' -- this allows the parser to know it is dealing with a string instead of a number. EDF thingtypes must have a unique doomednum to be specified in an ExtraData mapthing record. If the specified EDF thingtype doesn't exist or has a doomednum of -1, an Unknown object will be spawned instead. | ||
Example: | Example: | ||
Line 71: | Line 67: | ||
mapthing { type DoomImp } // This record specifies an Imp by its EDF mnemonic | mapthing { type DoomImp } // This record specifies an Imp by its EDF mnemonic | ||
====options==== | ====options==== | ||
Default: No flags are set by default. | Default: No flags are set by default. | ||
Line 80: | Line 76: | ||
These are the flag values which are available for this field: | These are the flag values which are available for this field: | ||
Flag name Meaning | Flag name Decimal Hex Meaning | ||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
EASY Thing appears in easy difficulties | EASY 1 0x0001 Thing appears in easy difficulties | ||
NORMAL Thing appears in "Hurt Me Plenty" | NORMAL 2 0x0002 Thing appears in "Hurt Me Plenty" | ||
HARD Thing appears in Ultra-Violence and Nightmare | HARD 4 0x0004 Thing appears in Ultra-Violence and Nightmare | ||
AMBUSH Thing is "deaf", will not wake up via sound | AMBUSH 8 0x0008 Thing is "deaf", will not wake up via sound | ||
NOTSINGLE Thing doesn't appear in single-player mode | NOTSINGLE 16 0x0010 Thing doesn't appear in single-player mode | ||
NOTDM Thing doesn't appear in deathmatch | NOTDM 32 0x0020 Thing doesn't appear in deathmatch | ||
NOTCOOP Thing doesn't appear in cooperative multiplayer | NOTCOOP 64 0x0040 Thing doesn't appear in cooperative multiplayer | ||
FRIEND Thing uses MBF friendly logic | FRIEND 128 0x0080 Thing uses MBF friendly logic | ||
DORMANT Thing is dormant at map startup (script feature) | DORMANT 512 0x0200 Thing is dormant at map startup (script feature) | ||
------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ||
Line 110: | Line 105: | ||
mapthing { options "EASY,NORMAL,HARD" } | mapthing { options "EASY,NORMAL,HARD" } | ||
mapthing { options "EASY, NORMAL, HARD" } | mapthing { options "EASY, NORMAL, HARD" } | ||
====tid==== | ====tid==== | ||
Default: 0 | Default: 0 | ||
The TID, or "Thing ID", is a tag for mapthings which is used for identification in [[ | The TID, or "Thing ID", is a tag for mapthings which is used for identification in [[Small]] scripts. TID values must be positive numbers between 1 and 65535. The TID value zero means no TID. Negative TID values are reserved and are used to indicate special things within the engine. TIDs are not required to be unique, and most Small functions that accept TIDs will perform an action on all mapthings which bear the same TID. Things spawned within Small scripts can also be given TIDs. | ||
====args==== | ====args==== | ||
Line 166: | Line 155: | ||
extflags <extended line flags list> | extflags <extended line flags list> | ||
args { <special field>, ... } | args { <special field>, ... } | ||
alpha <number> | alpha <number> | ||
} | } | ||
Line 195: | Line 183: | ||
Flag name Meaning | Flag name Meaning | ||
--------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ||
CROSS | CROSS Linedef can be activated by being crossed. | ||
USE | USE Linedef can be activated by being used. | ||
IMPACT | IMPACT Linedef can be activated by being shot. | ||
PUSH | PUSH Linedef can be activated by being pushed. | ||
PLAYER | PLAYER Linedef can be activated by players. | ||
MONSTER | MONSTER Linedef can be activated by objects with SPACMONSTER flag. | ||
MISSILE | MISSILE Linedef can be activated by objects with SPACMISSILE flag. | ||
REPEAT Linedef action is repeatable. | |||
REPEAT | 1SONLY Linedef can only be activated from first side. | ||
1SONLY | ADDITIVE Linedef's midtexture is drawn with additive blending. | ||
ADDITIVE | |||
--------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ||
Notes: IMPACT is currently only implemented for bullet weapons. | 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. | ||
Example flags fields -- All of these are equivalent: | Example flags fields -- All of these are equivalent: | ||
Line 239: | Line 219: | ||
Example args list: | Example args list: | ||
linedef { args { 0, 1, 2, 3, 4 } } | linedef { args { 0, 1, 2, 3, 4 } } | ||
====alpha==== | ====alpha==== | ||
: | :"Default: Alpha defaults to 1.0." | ||
The alpha field takes a value from 0.0 to 1.0 to set the opacity at which this linedef's midtexture is drawn. When combined with the ADDITIVE extflag, this can be used for additive-blended translucency as well. | The alpha field takes a value from 0.0 to 1.0 to set the opacity at which this linedef's midtexture is drawn. When combined with the ADDITIVE extflag, this can be used for additive-blended translucency as well. | ||
Line 286: | Line 262: | ||
flooroffsetx <float> | flooroffsetx <float> | ||
flooroffsety <float> | flooroffsety <float> | ||
ceilingterrain <terrain name> | ceilingterrain <terrain name> | ||
ceilingangle <float> | ceilingangle <float> | ||
ceilingoffsetx <float> | ceilingoffsetx <float> | ||
ceilingoffsety <float> | ceilingoffsety <float> | ||
colormaptop <lump name> | colormaptop <lump name> | ||
colormapmid <lump name> | colormapmid <lump name> | ||
colormapbottom <lump name> | colormapbottom <lump name> | ||
} | } | ||
===Explanation of fields: === | ===Explanation of fields: === | ||
Line 322: | Line 288: | ||
KILLSOUND Objects in sector cannot make sounds. | KILLSOUND Objects in sector cannot make sounds. | ||
KILLMOVESOUND Sector makes no movement sounds, even if it has a special sound sequence | KILLMOVESOUND Sector makes no movement sounds, even if it has a special sound sequence | ||
--------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ||
Line 365: | Line 328: | ||
:''Default: "Unknown"'' | :''Default: "Unknown"'' | ||
Specifies the type of damage done by this sector. If "Unknown" is specified, the damage done is generic. The value specified should be a valid EDF damagetype mnemonic. If it is not, "Unknown" will be used. This can be used to have a sector type trigger special pain and death states when it deals damage | Specifies the type of damage done by this sector. If "Unknown" is specified, the damage done is generic. The value specified should be a valid EDF damagetype mnemonic. If it is not, "Unknown" will be used. This can be used to have a sector type trigger special pain and death states when it deals damage. | ||
====damageflags==== | ====damageflags==== | ||
Line 407: | Line 370: | ||
Specifies the x and y offsets of the floor flat, relative to the normal floor grid, in floating point units. | Specifies the x and y offsets of the floor flat, relative to the normal floor grid, in floating point units. | ||
====ceilingterrain==== | ====ceilingterrain==== | ||
Line 423: | Line 381: | ||
Specifies the angle of the ceiling flat in floating-point degrees from 0 to 359. Note that for compatibility with ZDoom, the angle specified advances in a '''clockwise''' fashion, contrary to most other angles in the DOOM engine. | Specifies the angle of the ceiling flat in floating-point degrees from 0 to 359. Note that for compatibility with ZDoom, the angle specified advances in a '''clockwise''' fashion, contrary to most other angles in the DOOM engine. | ||
==== | ====flooroffsetx/flooroffsety==== | ||
:''Default: 0'' | :''Default: 0'' | ||
Specifies the x and y offsets of the ceiling flat, relative to the normal ceiling grid, in floating point units. | Specifies the x and y offsets of the ceiling flat, relative to the normal ceiling grid, in floating point units. | ||
====colormaptop==== | ====colormaptop==== | ||
Line 447: | Line 400: | ||
Specifies the colormap lump to use when a player's viewpoint is below the fake floor of a BOOM 242 "deep water" effect applying to this sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by the 242 effect. | Specifies the colormap lump to use when a player's viewpoint is below the fake floor of a BOOM 242 "deep water" effect applying to this sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by the 242 effect. | ||