Revision as of 11:13, 5 October 2012 by Gez (talk | contribs) (no longer ZDoom-exclusive)

Doom level format


Lump structure

The BEHAVIOR lump originates from the Hexen map format and is never found in the other games. Given the difference in records size between the Doom and Hexen format for THINGS and LINEDEFS lump, the presence or absence of a BEHAVIOR lump serves to identify the format of the entire map in ports which support several different formats.

The BEHAVIOR lump contains compiled ACS scripts for the map. There exist three different formats for BEHAVIOR lumps, the original Hexen one is identified by a four-byte header of ACS\0 (0x41435300); ZDoom also uses two different "enhanced" formats identified by ACSE (0x41435345) and ACSe (0x41435365).

Behavior lumps are compiled with ACC. The version of ACC maintained by Randy Heit needs the -h command line parameter to produce ACS\0 bytecode, since many of the ACS functions it supports are only available in the ZDoom formats.

The Eternity Engine's ACS VM can now interpret all three bytecode formats.

See also