TEXTURE1 and TEXTURE2
From Doom Wiki
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 ? |


