TEXTURE1 and TEXTURE2

From Doom Wiki

Jump to: navigation, search

The TEXTURE1 and TEXTURE2 lumps define how wall patches from the WAD file should combine to form wall textures.

In an era where space is expensive, a map texture inside a WAD is to a texture seen inside the game, as a MOD file is to an MP3 file. In other words, it is decomposed into smaller textures in such a way that repeating areas are only stored once. At startup time (to be precise, during "R_Init: Init DOOM refresh daemon"), the patches inside the WAD are read and combined into Wall Textures, or how the source code refers to, 'map textures'.


Contents

[edit] Binary data

The binary contents of the TEXTURE1 and TEXTURES2 lumps start with a header of flexible size, followed by all the the map textures.

TEXTURE1 or TEXTURES2
Offset Length Name Content
0x00 4 numtextures An integer holding a the number of map textures.
0x04 4 * numtextures offset[ ] An array of integers containing the offsets to the map textures in this lump.
offset[0]
offset[1]
...
Flexible mtexture[ ] An array with the map texture structures. (see next table)

All integers are 4 bytes long in x86-style little-endian order. Their values can never exceed 231-1, since Doom reads them as signed ints. Short integers are 2 bytes long and are otherwise equal to integers.

[edit] Map textures structure, binary data

The binary contents of the maptexture_t structure starts with a header of 22 bytes, followed by all the the map patches.

maptexture_t
Offset Length Name Content
0x00 8 name An ASCII string defining the name of the map texture. Only the characters A-Z (uppercase), 0-9, and [ ] - _ should be used in lump names. When a string is less than 8 bytes long, it should be null-padded to the eighth byte.
0x08 4 masked A boolean (0=false, 1=true) defining ?
0x0C 2 width A short integer defining the total width of the map texture.
0x0E 2 height A short integer defining the total height of the map texture.
0x10 4 columndirectory Obsolete, ignored by all DOOM versions
0x14 2 patchcount the number of map patches that make up this map texture
0x16 10 * patchcount patches[ ] array with the map patch structures for this texture. (see next table)

[edit] Map patches structure, binary data

The binary contents of the mappatch_t structure contains 10 bytes defining how the patch should be drawn inside the texture.

mappatch_t
Offset Length Name Content
0x00 2 originx A short int defining the horizontal offset of the patch relative to the upper-left of the texture
0x02 2 originy A short int defining the vertical offset of the patch relative to the upper-left of the texture
0x04 2 patch A short int defining the patch number (as listed in PNAMES) to draw
0x06 2 stepdir A short int defining ?
0x08 2 colormap A short int defining ?

[edit] See Also

Personal tools
.