Doom format
From ZDoom Wiki
Doom format is the map format originally used by Doom, Doom II, and Heretic. Maps can be converted to Hexen format using ZWADCONV. A technical description of the Doom map format follows.
- THINGS - 10 bytes
- Bytes 0-2: Location (x) (short)
- Bytes 2-4: Location (y) (short)
- Bytes 4-6: Facing angle (short)
- Bytes 6-8: Type ID (short)
- Bytes 8-10: Flags (short)
- LINEDEFS - 12 bytes
- Bytes 0-2: Start VERTEX (short)
- Bytes 2-4: End VERTEX (short)
- Bytes 4-6: Attributes (short)
- Bytes 6-8: Special effects type (short)
- Bytes 8-10: Tag (short)
- Bytes 10-12: Right SIDEDEF (short)
- Bytes 12-14: Left SIDEDEF (short)
- SIDEDEFS - 30 bytes
- Bytes 0-2: Texture x offset (short)
- Bytes 0-4: Texture y offset (short)
- Bytes 4-12: Upper texture name (8 byte string)
- Bytes 12-20: Lower texture name (8 byte string)
- Bytes 20-28: Middle texture name (8 byte string)
- Bytes 28-30: Sector id (short)
- VERTEXES - 4 bytes
- Bytes 0-2: x coordinate (short)
- Bytes 2-4: y coordinate (short)
- SEGS (created by node builder)
- SSECTORS (created by node builder)
- NODES (created by node builder)
- SECTORS - 26 bytes
- Bytes 0-2: Floor height (short)
- Bytes 2-4: Ceiling height (short)
- Bytes 4-12: Floor texture (8 byte string)
- Bytes 12-20: Ceiling texture (8 byte string)
- Bytes 20-22: Light level (short)
- Bytes 22-24: Special sector (short)
- Bytes 24-26: Tag (short)
- REJECT (created by node builder)
- BLOCKMAP (created by node builder)
All long integers are 32 bit unsigned longs in little-endian format (shorts are signed, 16 bits, little-endian as well). So the byte sequence 212 2 0 0 is really 0 0 2 212 which translates to 724 decimal.