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:

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.

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:

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:

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.