Eternity Engine MapInfo Reference v1.2 -- 5/07/06
Return to the Eternity Engine Page
Basic Syntax
The basic syntax of MapInfo is very simple. Here are the rules:
- All whitespace not between two non-whitespace characters is ignored.
- Any unknown variable name is ignored.
- All values are treated as text strings, and quotation marks are not required.
- Comments may start with '#', ';', or '//'. All three comments are single line only,
and extend to the end of the line.
- An optional equal sign can be placed between a variable and the value it is given. It is
not an error to omit it.
- Block headers are required, and are enclosed in square brackets ([ ]). Block headers
differ between global and level header MapInfo. See the respective sections in this
documentation for what block headers you can use in a particular MapInfo lump.
Return to Table of Contents
MapInfo Variables
This section explains each variable which is available in MapInfo. All variables are available
in both global and level header MapInfo, and accept the same values in both types.
- altskyname
Name of a texture to display instead of the normal sky texture during a lightning strike.
This value is only used if lightning is enabled for this level. If this value is not provided,
no sky animation will occur during lightning strikes.
Example:
altskyname = LBOLTSKY
- boss-specials
A flags field that specifies what formerly level-specific boss "magic codepointer" actions
are enabled for this level. This field takes a value in the same format as that used by
EDF, DeHackEd/BEX, and ExtraData flag fields, but the format will be reviewed here for
completeness.
A BEX flag list is a string of flag names separated by whitespace, pipe characters, commas,
or plus characters. Flags are combined using bitwise-OR logic, so a flag name can be
specified more than once. Specifying a flag name causes that flag to be turned on. The
default state of all flags is off.
These are the flag values which are available for this field:
Flag name Decimal Hex Meaning
-----------------------------------------------------------------
MAP07_1 1 0x0001 MAP07 Special 1 (BossDeath only)
MAP07_2 2 0x0002 MAP07 Special 2 (BossDeath only)
E1M8 4 0x0004 E1M8 Special
E2M8 8 0x0008 E2M8 Special
E3M8 16 0x0010 E3M8 Special
E4M6 32 0x0020 E4M6 Special (BossDeath only)
E4M8 64 0x0040 E4M8 Special
E5M8 128 0x0080 E5M8 Special (HticBossDeath Only)
-----------------------------------------------------------------
Notes: Actions differ depending on whether monsters use the BossDeath or HticBossDeath
codepointers. See the documentation for those specific codepointers to see what actions
they perform. The monsters which must be dead for a given special to activate are controlled
by various EDF/BEX thingtype flags. Together, these features allow complete customization.
Example flags fields -- All of these are equivalent:
boss-specials = MAP07_1|MAP07_2
boss-specials = MAP07_1 | MAP07_2
boss-specials = MAP07_1+MAP07_2
boss-specials = MAP07_2 + MAP07_2
boss-specials = MAP07_1,MAP07_2
boss-specials = MAP07_1, MAP07_2
boss-specials = MAP07_1 MAP07_2
- colormap
Name of a colormap lump to use as the global colormap for this level. This colormap is
applied to any sectors which do not have their own colormaps specified either via use of
242 height transfer linedefs or scripting. This lump must be between C_START and C_END
tags.
Example:
colormap = FOGMAP
- creator
The level author's name, which can be viewed in the console using the "creator" console
command. If this value is not provided, the default value is "unknown".
Example:
creator = Edwin Chadwick 'chadders'
- doublesky
Boolean value that determines whether or not this map uses double skies. When double skies
are enabled, any F_SKY1 or F_SKY2 sectors *not* affected by MBF sky transfer lines will
use both the primary and secondary sky textures together. The secondary texture will be
drawn first, normally, then the primary texture will be drawn over it, omitting any pixels
which use palette index zero (this is usually pure black). Any MapInfo sky delta values
provided will be applied to their respective textures.
Example:
doublesky = true
- edf-intername
Boolean value which, if true, enables the use of EDF-defined intermission map name
strings which will be drawn using the FONTB graphics (provided in eternity.wad for
DOOM/DOOM II, and natively supported by Heretic). This feature is meant to obsolete
the levelpic variable and to remove the need for authors to create title graphics for
their maps in DOOM/DOOM II. It also allows intermission map name replacement to work
correctly for the next level and for Heretic without any hacks.
The EDF string which will be used as the intermission name for the current map should
have the mnemonic _IN_NAME_<mapname>, where <mapname> is the exact name of
the map's header lump (Example: _IN_NAME_MAP01).
In order for the name of the next map to display correctly, the current level must
either define its nextlevel/nextsecret values explicitly, or it must be an ExMy or
MAPxy level.
Example:
edf-intername = true
- endofgame
Boolean value which, if true, causes a DOOM II cast call to occur when this map is
exited. This value is currently only usable in DOOM II. A level must also have
intermission text defined for a cast call to take place.
Example:
endofgame = true
- extradata
Name of the ExtraData script lump for this map. See the
ExtraData Reference for full information on ExtraData.
There are no naming restrictions on ExtraData script lumps.
Example:
extradata = EXTRDT01
- finale-secret
Boolean value which, if true, indicates that a text intermission should only occur after
this map if a secret exit was taken. If no intermission text is defined for this map, this
variable has no effect.
Example:
finale-secret = true
- fullbright
Boolean value that determines whether fullbright can be used on this level. When
fullbright is disabled, player gun flashes will not occur, and fullbright sprites and
particles will be drawn normally. This should be used with most custom colormaps, since
flashes and fullbright sprites usually look incorrect with them.
Example:
fullbright = false
- gravity
Global gravity factor for the current level. The default gravity value is 65536.
Example:
# Enable 50% gravity
gravity = 32768
- inter-backdrop
Name of a 64x64 flat OR a 320x200 graphic lump to be displayed as the background of a
text intermission which occurs after this map. The flat namespace will be searched first,
so if both a flat and a 320x200 picture of the same name exist, the flat will be chosen.
Example:
inter-backdrop = FLATHUH1
- intermusic
Name of a MUS or MIDI lump to use as music during a text intermission which occurs after
this map. If no intertext is defined for the map, this value will not be used.
In DOOM gamemodes, the string provided should be the lump name minus the "D_" prefix. In
Heretic, the string provided should be the lump name minus the "MUS_" prefix. You are
*not* limited to using only the built-in music lump names; Eternity automatically adds
any new lump which matches the naming convention for the current gamemode to the internal
music list.
Example:
intermusic = ROMERO
- interpic
Name of a 320x200 graphic lump to be displayed as the background of the statistics
intermission. This value is currently only used for DOOM II and Ultimate DOOM episode 4
maps.
Example:
interpic = BOSSBACK
- intertext
Lump name of a text lump to be loaded as intermission text for this level. If the level
has an intermission by default, this will replace the default intermission text, even if
it has been edited via DeHackEd. If there is not normally a text intermission after this
map, the presence of this variable serves to enable it. If no intertext is defined, a
text intermission will not occur after a map. The formatting of the text inside the
indicated lump will be preserved exactly, with the exception of tabs, which are converted
to spaces. There is no length limitation, but only one screen of text can be displayed. Any
extra text will be drawn off the bottom of the screen.
Example:
intertext = MAP04TXT
- killfinale
Boolean value that allows built-in text intermission points to be disabled. For example,
if you do not want text to appear after DOOM II MAP11, set this variable to true.
Example:
killfinale = true
- killstats
Boolean value that allows the statistics intermission between two maps to be disabled.
If the map has a finale sequence to be displayed, it will start immediately, otherwise
the next map will be loaded.
Example:
killstats = true
- levelname
This is the name of the level which will be displayed in the automap. This value overrides
any string provided via DeHackEd.
Example:
levelname = chadders' lair
- levelpic
This is the name of a graphic lump which will be shown as the level name during the
statistics intermission when this map is the previous map which was just beaten.
Note: you cannot currently specify the graphic to be shown for the next map. This is
a known bug in MapInfo and may not be repaired due to the new edf-intername feature.
This value is only used for DOOM and DOOM II maps.
Example:
levelpic = E1M1PIC
- levelscript
Name of a compiled Small script lump which will serve as the Levelscript for this map.
See the Small Usage Documentation for full information
on how the Levelscript works. There are no naming restrictions on script lumps.
Example:
levelscript = SCRIPT01
- leveltype
String value that declares what type of level the current map is classified as.
Possible values are "doom" and "heretic". This variable affects the automatic
translation of thing types and line specials.
Example:
leveltype = heretic
- lightning
Boolean value that toggles the global lightning effect. When set to true, all sky sectors
on the map will flash at randomly determined intervals along with a thunder sound and
optional animation of the normal sky texture. Warning: sectors must currently have a sky
ceiling at the beginning of the level in order to be affected by lightning. The only current
method to make non-sky sectors flash during lightning strikes is via use of BOOM lighting
transfer linedefs. This may be improved in the near future.
Example:
lightning = true
- music
Provides the name of a MUS or MIDI lump to use as music. In DOOM gamemodes, the string
provided should be the lump name minus the "D_" prefix. In Heretic, the string provided
should be the lump name minus the "MUS_" prefix. You are *not* limited to using only the
built-in music lump names; Eternity automatically adds any new lump which matches the
naming convention for the current gamemode to the internal music list.
Example:
music = cheese
- nextlevel
The exact header name of the next level to go to when a normal exit occurs on this map.
This can specify *any* lump name, but the lump should be a valid level header or an error
will occur.
Example:
nextlevel = CHAD2
- nextsecret
The exact header name of the next level to go to when a secret exit occurs on this map.
This can specify *any* lump name, but the lump should be a valid level header or an error
will occur. Note that except for maps which normally have secret exits, the default behavior
is to repeat the same level. This MapInfo value allows you to avoid that and use a secret
exit on any map.
Example:
nextsecret = MAP34
- partime
Partime for the map in seconds. This value overrides any value provided via DeHackEd.
Note that partimes are only supported in episodes 1-3 of DOOM and any map of DOOM II.
Ultimate DOOM episode 4, Heretic, and non-standard maps currently never display par times.
Example:
partime = 200
- skydelta
Pixels per gametic that the primary sky texture should scroll. This effect will only be
applied to double skies and to F_SKY1 sectors which are NOT affected by any MBF sky
transfer linedefs.
Example:
skydelta = 5
- sky2delta
Pixels per gametic that the secondary sky texture should scroll. This effect will only be
applied to double skies and to F_SKY2 sectors (which cannot be affected by MBF sky
transfer linedefs).
Example:
sky2delta = 7
- skyname
Name of a texture to use as the primary sky for this map. This sky will appear in all
sectors which use the F_SKY1 flat, and it will also appear as the top layer of Hexen-style
double skies. The name provided for this lump must be a valid texture or an error will
occur.
Example:
skyname = SKY2
- sky2name
Name of a texture to use as the secondary sky for this map. This sky will appear in all
sectors which use the F_SKY2 flat, and it will also appear as the bottom layer of Hexen-
style double skies. The name provided for this lump must be a valid texture or an error
will occur. If no name is provided for the secondary sky, the primary sky name will be
copied to it, so it is not an error to use F_SKY2 or double skies in a level where the
sky2 texture is not explicitly defined.
Example:
sky2name = SKY4
- unevenlight
Boolean value that determines whether walls parallel to the x and y axes of the game
world are given lighting values 1 level higher or lower than other walls. This can
dramatically affect the perceived light level of an area, so only use it for maps that
are designed specifically for it. Maps which use custom global colormaps should usually
set this value to false, since it only generally looks appropriate with the normal
colormap.
Example:
unevenlight = false
- sound-swtchn
EDF mnemonic of a sound to replace the default "swtchn" sound for this map.
- sound-swtchx
EDF mnemonic of a sound to replace the default "swtchx" sound for this map.
- sound-stnmov
EDF mnemonic of a sound to replace the default "stnmov" sound for this map.
- sound-pstop
EDF mnemonic of a sound to replace the default "pstop" sound for this map.
- sound-pstart
EDF mnemonic of a sound to replace the default "pstart" sound for this map.
- sound-bdcls
EDF mnemonic of a sound to replace the default "bdcls" sound for this map.
- sound-bdopn
EDF mnemonic of a sound to replace the default "bdopn" sound for this map.
- sound-dorcls
EDF mnemonic of a sound to replace the default "dorcls" sound for this map.
- sound-doropn
EDF mnemonic of a sound to replace the default "doropn" sound for this map.
Return to Table of Contents
The Global MapInfo System
Starting with Eternity Engine v3.31 'Delta', Eternity supports global MapInfo. Global MapInfo
has mostly the same format as level header MapInfo, except the information for multiple maps
can be placed into a single lump named EMAPINFO. Any number of EMAPINFO lumps can exist and
will cascade as documented below.
Return to Table of Contents
Specific Syntax Information
In the global MapInfo lump, variables for each level must be placed under a section header
that has the same name as the map's header lump.
Example:
[START]
levelname = Eternity Start Map
music = romero
creator = Derek 'Afterglow' Mac Donald
skyname = SKY3
levelscript = STARTSCR
This would assign all the values beneath the [START] section header and above any subsequent
header to the map named START (in this case, the Eternity startmap).
Notes:
- Entries can exist for maps that do not exist; such entries will never be used.
- Any number of maps can have entries in the EMAPINFO lump.
- Only the first section defined for a map in an EMAPINFO lump will be used. If another
section for the same map exists in the same lump, it will be ignored.
Return to Table of Contents
Global Lump Cascading
As mentioned in the introduction to this section, global MapInfo lumps can cascade. This means
that an entry for a map will be searched for starting with the newest EMAPINFO lump in the wad
directory (this will be the last such lump in the last wad to be loaded). If an entry is found
for the map in that lump, it will be used and any others are ignored. If an entry is not found,
processing continues through the lumps in the newest wad, and then through lumps in all other
wads in the reverse order they were loaded. If no MapInfo entry is found for a map, the default
values for all variables will apply.
Return to Table of Contents
Priority of Level Header MapInfo
If a map has both global and level header MapInfo entries, the global entry will be processed
first, and then the level header MapInfo will be processed. This means that level header
MapInfo has a higher priority than global MapInfo, and values specified in the level header
will overwrite values provided by the global lump. This allows maps to keep their specified
individual behaviors even when used with any combination of wads which have global MapInfo
lumps.
Return to Table of Contents
The Level Header MapInfo System
SMMU added support for embedding MapInfo into level headers. Although level header lumps
are usually zero length, this is not required by the engine itself, making the level header
a good place to store information associated with a particular map.
Since Eternity now supports global MapInfo lumps, the use of level header MapInfo is not
required. It does allow for greater flexibility when combining wads, however, and ensures that
a map will keep critical customized behaviors even in the presence of global MapInfo.
Note that Eternity currently only supports specification of MapInfo blocks within the level
header. SMMU allowed several other blocks, including one for intertext and one for FraggleScript.
Eternity does not support these blocks and will ignore them if they exist.
Return to Table of Contents
Specific Syntax Information
In level header MapInfo, variables for the current level must be placed under a section header
that has the name "level info".
Example:
[level info]
levelname = Eternity Start Map
music = romero
creator = Derek 'Afterglow' Mac Donald
skyname = SKY3
levelscript = STARTSCR
This would assign all the values beneath the [level info] section header and above any
subsequent header to the map that possesses this information in its map header lump, overriding
any of the same values which were specified via global MapInfo lumps.
Notes:
- If multiple [level info] sections exist in level header MapInfo, all of them will be
parsed from top to bottom.
Return to Table of Contents
Embedding Level-Specific MapInfo
Some editors now include support for embedding MapInfo data into the level header. We recommend
the use of Doom Builder for this functionality. Doom Builder will always respect any existing
MapInfo, whereas many older editors will strip it out when saving the file (this includes
DETH). Doom Builder also has good support for most other features of the Eternity Engine, and
it is open source freeware.
Please be aware that if your editor strips out data in the level header when saving maps, you
will need to re-embed the level-specific MapInfo after each edit. This and other problems that
external utilities have with data in the level header are one reason why Eternity now supports
global MapInfo. Consider using it instead, or using it only during level development and then
converting it to level header MapInfo if you wish.
We do not recommend use of the old add_fs utility and will not provide support for its use,
since it is a DOS command-line utility and only supports wads which contain one map.
Return to Table of Contents
Defaults
Here you can find specification of the default values that will be used for maps.
Some of the defaults can be edited by DeHackEd as well.
- altskyname
When this variable is not defined, no animation takes place during lightning strikes,
so there is effectively no default value.
- boss-specials
This variable has special defaults for the following maps:
- DOOM II MAP07: "MAP07_1 | MAP07_2"
- DOOM/Heretic E1M8: "E1M8"
- DOOM/Heretic E2M8: "E2M8"
- DOOM/Heretic E3M8: "E3M8"
- DOOM/Heretic E4M6: "E4M6" ** Note: HticBossDeath does not recognize E4M6
- DOOM/Heretic E4M8: "E4M8"
- DOOM/Heretic E5M8: "E5M8" ** Note: BossDeath does not recognize E5M8
- All other maps: No specials are enabled.
- colormap
The default value of this variable for all maps is the normal global COLORMAP lump.
Note that COLORMAP is a special case colormap which is not required to exist between
C_START and C_END lumps. All other colormaps must follow that rule.
- creator
The default value of this variable for all maps is "unknown".
- doublesky
The default value of this variable for all maps is "false".
- edf-intername
In Heretic, this variable defaults to "true" for all maps and cannot be disabled.
Appropriate default values are defined in Eternity's misc.edf file. In all other
gamemodes, this value defaults to "false" for all maps. When this value is "true"
and a proper string object is defined in EDF, the "levelpic" variable will be
completely ignored.
- endofgame
The default value of this variable for all maps except DOOM II MAP30 is "false".
The default value for DOOM II MAP30 is "true".
- extradata
There is no default value for this variable on any map. If no lump name is specified,
the level does not have ExtraData. Use of ExtraData control things or specials in a map
which does not have ExtraData may result in "Unknown" things and/or error messages displayed
to the player.
- finale-secret
The default value for all maps except DOOM II maps MAP15 and MAP31 is "false".
The default values for DOOM II maps MAP15 and MAP31 is "true".
- fullbright
The default value of this variable for all maps is "true".
- gravity
The default value of this variable for all maps is 65536.
- inter-backdrop
This variable has special defaults for the following maps:
- DOOM E1M8: BEX String BGFLATE1 (FLOOR4_8)
- DOOM E2M8: BEX String BGFLATE2 (SFLR6_1)
- DOOM E3M8: BEX String BGFLATE3 (MFLR8_4)
- DOOM E4M8: BEX String BGFLATE4 (MFLR8_3)
- All other maps in DOOM: BEX String BGFLATE1 (FLOOR4_8)
- DOOM II MAP06: BEX String BGFLAT06 (SLIME16)
- DOOM II MAP11: BEX String BGFLAT11 (RROCK14)
- DOOM II MAP20: BEX String BGFLAT20 (RROCK07)
- DOOM II MAP30: BEX String BGFLAT30 (RROCK17)
- DOOM II MAP15: BEX String BGFLAT15 (RROCK13)
- DOOM II MAP31: BEX String BGFLAT31 (RROCK19)
- All other maps in DOOM II: BEX String BGFLAT06 (SLIME16)
- Heretic E1M8: BEX String BGFLATHE1 (FLOOR25)
- Heretic E2M8: BEX String BGFLATHE2 (FLATHUH1)
- Heretic E3M8: BEX String BGFLATHE3 (FLTWAWA1)
- Heretic E4M8: BEX String BGFLATHE4 (FLOOR28)
- Heretic E5M8: BEX String BGFLATHE5 (FLOOR08)
- All other maps in Heretic: BEX String BGFLATHE1 (FLOOR25)
- Undefined gamemode: F_SKY2 (this flat is present in eternity.wad)
- intermusic
This variable has the following defaults for all maps by gamemode:
- DOOM: "victor"
- DOOM II: "read_m"
- Heretic: "cptd"
- Undefined gamemode: no music will be played.
- interpic
This variable has the default value "INTERPIC" for all maps. Note that this variable is
not currently usable in the first 3 episodes of DOOM or in Heretic.
- intertext
This variable has special defaults for the following maps:
- DOOM E1M8: BEX String E1TEXT ("Once you beat the big badasses and\nclean out "...)
- DOOM E2M8: BEX String E2TEXT ("You've done it! The hideous cyber-\ndemon lord"...)
- DOOM E3M8: BEX String E3TEXT ("The loathsome spiderdemon that\nmasterminded t"...)
- DOOM E4M8: BEX String E4TEXT ("the spider mastermind must have sent forth\nit"...)
- All other maps in DOOM: No default. No text intermission will occur.
- DOOM II MAP06
- "commercial" game mission: BEX String C1TEXT ("YOU HAVE ENTERED DEEPLY INTO THE INFESTED\nSTA"...)
- Evilution game mission: BEX String T1TEXT ("You've fought your way out of the infested\nex"...)
- Plutonia game mission: BEX String P1TEXT ("You gloat over the steaming carcass of the\nGu"...)
- DOOM II MAP11
- "commercial" game mission: BEX String C2TEXT ("YOU HAVE WON! YOUR VICTORY HAS ENABLED\nHUMANK"...)
- Evilution game mission: BEX String T2TEXT ("You hear the grinding of heavy machinery\nahea"...)
- Plutonia game mission: BEX String P2TEXT ("Even the deadly Arch-Vile labyrinth could\nnot"...)
- DOOM II MAP20
- "commercial" game mission: BEX String C3TEXT ("YOU ARE AT THE CORRUPT HEART OF THE CITY,\nSUR"...)
- Evilution game mission: BEX String T3TEXT ("The vista opening ahead looks real damn\nfamil"...)
- Plutonia game mission: BEX String P3TEXT ("You've bashed and battered your way into\nthe "...)
- DOOM II MAP30
- "commercial" game mission: BEX String C4TEXT ("THE HORRENDOUS VISAGE OF THE BIGGEST\nDEMON YO"...)
- Evilution game mission: BEX String T4TEXT ("Suddenly, all is silent, from one horizon\nto "...)
- Plutonia game mission: BEX String P4TEXT ("The Gatekeeper's evil face is splattered\nall "...)
- DOOM II MAP15
- "commercial" game mission: BEX String C5TEXT ("CONGRATULATIONS, YOU'VE FOUND THE SECRET\nLEVE"...)
- Evilution game mission: BEX String T5TEXT ("What now? Looks totally different. Kind\nof li"...)
- Plutonia game mission: BEX String P5TEXT ("You've found the second-hardest level we\ngot."...)
- DOOM II MAP31
- "commercial" game mission: BEX String C6TEXT ("CONGRATULATIONS, YOU'VE FOUND THE\nSUPER SECRE"...)
- Evilution game mission: BEX String T6TEXT ("Time for a vacation. You've burst the\nbowels "...)
- Plutonia game mission: BEX String P6TEXT ("Betcha wondered just what WAS the hardest\nlev"...)
- All other maps in DOOM II: No default. No text intermission will occur.
- Heretic E1M8: BEX String H1TEXT ("with the destruction of the iron\nliches and t"...)
- Heretic E2M8: BEX String H2TEXT ("the mighty maulotaurs have proved\nto be no ma"...)
- Heretic E3M8: BEX String H3TEXT ("the death of d'sparil has loosed\nthe magical "...)
- Heretic E4M8: BEX String H4TEXT ("you thought you would return to your\nown worl"...)
- Heretic E5M8: BEX String H5TEXT ("as the final maulotaur bellows his\ndeath-agon"...)
- All other maps in Heretic: No default. No text intermission will occur.
- Undefined gamemode: No default. No text intermission will occur.
- killfinale
This variable has the default value of "false" for all maps.
- killstats
This variable has the default value of "false" for all maps except for maps in the
"hidden" episode of Heretic (Episode 4 in registered Heretic, Episode 6 in Heretic:
Shadow of the Serpent Riders) and in any higher episode. Those maps default to "true".
- levelname
This variable has a special default for the following maps. Default values are available
in the Eternity Engine DeHackEd / BEX Reference and will not be
duplicated here because of space constraints.
- DOOM maps E1M1-E1M9, E2M1-E2M9, E3M1-E3M9, E4M1-E4M9
- DOOM II maps MAP01 - MAP32
- Heretic maps E1M1-E1M9, E2M1-E2M9, E3M1-E3M9, E4M1-E4M9, E5M1-E5M9
- Other maps in DOOM or DOOM II: "new level"
- Maps in Heretic with episode 4 or higher: "hidden level"
- Maps in Heretic: SoSR with episode 6 or higher: "hidden level"
Note that when user wads are added, maps from new wads which do not have a DeHackEd or
MapInfo level name will use "new level".
- levelpic
This variable has the following special default values:
- DOOM maps ExM1 - ExM9: WILVxy where x is the episode number minus 1 and y is the level
number minus 1.
- DOOM II maps MAP01 - MAP32: CWILVxy where xy is the 2-digit level number minus 1.
This value cannot be used for Heretic maps. If the edf-intername variable is set to
true, no levelpic will be drawn by the intermission. Instead, text strings defined by
EDF with the proper names will be written to the screen using the large font (FONTB).
- levelscript
This variable has no default value. If a Levelscript lump is not defined for a map, that
map has no Levelscript. Attempted use of the Levelscript under that circumstance may result
in error messages displayed to the player.
- leveltype
The default value of this variable depends on the game being played:
- DOOM (Shareware, Registered, Ultimate, DOOM II, Final): doom
- Heretic (Shareware, Registered, SoSR) : heretic
- lightning
This variable has the default value of "false" for all maps.
- music
This variable has the following special default values:
- DOOM maps E1M1-E1M9: E1M1, E1M2, E1M3... E1M9
- DOOM maps E2M1-E2M9: E2M1, E2M2, E2M3... E2M9
- DOOM maps E3M1-E3M9: E3M1, E3M2, E3M3... E3M9
- DOOM maps E4M1-E4M9: E3M4, E3M2, E3M3, E1M5, E2M7, E2M4, E2M6, E2M5, E1M9
- DOOM II maps MAP01-MAP32:
runnin, stalks, countd, betwee, doom, the_da, shawn, ddtblu, in_cit, dead,
stlks2, theda2, doom2, ddtbl2, runni2, dead2, stlks3, romero, shawn2, messag,
count2, ddtbl3, ampie, theda3, adrian, messg2, romer2, tense, shawn3, openin,
evil, ultima
- Heretic maps E1M1-E1M9: E1M1, E1M2, E1M3, E1M4, E1M5, E1M6, E1M7, E1M8, E1M9
- Heretic maps E2M1-E2M9: E2M1, E2M2, E2M3, E2M4, E1M4, E2M6, E2M7, E2M8, E2M9
- Heretic maps E3M1-E3M9: E1M1, E3M2, E3M3, E1M6, E1M3, E1M2, E1M5, E1M9, E2M6
- Heretic maps E4M1-E4M9: E1M6, E1M2, E1M3, E1M4, E1M5, E1M1, E1M7, E1M8, E1M9
- Heretic maps E5M1-E5M9: E2M1, E2M2, E2M3, E2M4, E1M4, E2M6, E2M7, E2M8, E2M9
- Heretic maps E6M1-E6M9: E3M2, E3M3, E1M6, TITL, INTR, CPTD, E1M1, E1M1, E1M1
- Other maps: No music will be defined. An error message may be shown to the player.
Remember that in DOOM gamemodes, a "D_" prefix is added to the music name automatically.
In Heretic gamemodes, a "MUS_" prefix is added. You should NOT add the prefix yourself.
- nextlevel
This variable has the following special default values:
- DOOM maps ExMy: The next normal level in the episode.
- DOOM II maps MAPxx: The next map.
- DOOM II maps ExMy: The next numeric ExMy map.
- Heretic maps ExMy: The next normal level in the episode.
- Other maps: Maps outside the normal episode range will be wrapped into range if
no MapInfo value is provided. This means that an E5M1 map in Ultimate DOOM would
exit to E4M2 if no MapInfo value is provided. In DOOM II, the next level MUST be
defined or an error will occur. Eternity allows playing of ExMy maps under DOOM II,
but the levels always exit to the next level in numeric order, including secret maps
and crossing episode boundaries.
- nextsecret
This variable has the following special default values:
- All DOOM maps: ExM9 where x is the current episode number.
- DOOM II map 15: MAP31
- DOOM II map 31: MAP32
- All other DOOM II maps: repeat the same level.
- All Heretic maps: ExM9 where x is the current episode number.
Note: if nextsecret is defined for a map that does not normally have a secret exit,
the secret map must also define its nextlevel explicitly. Otherwise, the player may
become stuck in the secret level.
- partime
This variable has the following special default values:
- DOOM maps E1M1-E1M9: 30, 75, 120, 90, 165, 180, 180, 30, 165
- DOOM maps E2M1-E2M9: 90, 90, 90, 120, 90, 360, 240, 30, 170
- DOOM maps E3M1-E3M9: 90, 45, 90, 150, 90, 90, 165, 30, 135
- DOOM II maps MAP01-MAP34:
30, 90, 120, 120, 90, 150, 120, 120, 270, 90
210, 150, 150, 150, 210, 150, 420, 150, 210, 150
240, 150, 180, 150, 150, 300, 330, 420, 300, 180
120, 30, 30, 30
Note that par times are not supported for Ultimate DOOM episode 4 or Heretic. Even if
par values are set for those maps, they will not be displayed by the intermission.
Also, if DeHackEd/BEX par times are not loaded and a new map does not provide a MapInfo
par time, the default par time for that map will not be displayed, since it does not
apply to user-made levels.
- skydelta
This variable has the default value "0" (zero) for all maps.
- sky2delta
This variable has the default value "0" (zero) for all maps.
- skyname
This variable has the following special default values:
- DOOM Episode 1: SKY1
- DOOM Episode 2: SKY2
- DOOM Episode 3: SKY3
- DOOM Episode 4: SKY4
- All other DOOM maps: SKY4
- DOOM II MAP01-MAP11: SKY1
- DOOM II MAP12-MAP20: SKY2
- All other DOOM II maps: SKY3
- Heretic Episode 1: SKY1
- Heretic Episode 2: SKY2
- Heretic Episode 3: SKY3
- Heretic Episode 4: SKY1
- Heretic Episode 5: SKY3
- All other Heretic maps: SKY1
In the original engine, levels with undefined sky textures would display the AASTINKY or
AASHITTY textures in the sky via a bug in the texture lookup code. This is not supported
by Eternity, which always defines a suitable default sky texture for all maps.
- sky2name
When this variable is not specified by MapInfo, the value of the normal, primary sky
texture is copied to it.
- unevenlight
This variable defaults to the value "true" for all DOOM and Heretic maps.