Los lumps TEXTURE1 y TEXTURE2 definen cómo los parches de pared del archivo WAD se deben combinar para formar las texturas de la pared.
En otras palabras, una textura se se descompone en texturas más pequeñas, de tal manera que las áreas repetidas solamente se almacenan una vez. Al momento de inicio (para ser precisos, durante la "R_Init: Init DOOM refresh daemon"), los parches dentro de la WAD se leen y se combinan en texturas de pared, o cómo el código fuente se refiere a "texturas de mapa".
Datos binarios[]
El contenido binario de los lumps TEXTURE1 y TEXTURE2 comienzan con una cabecera de tamaño flexible seguido por todas las texturas de mapas.
TEXTURE1 o TEXTURE2 | |||
---|---|---|---|
Offset | Largo | Nombre | Contenido |
0x00 | 4 | numtextures | Un entero que contiene un número de texturas de mapa. |
0x04 | 4 * numtextures | offset[ ] | Una matriz de enteros que contiene los desplazamientos a las texturas de mapa en este lump. |
offset[0] offset[1] ... |
Flexible | mtexture[ ] | Una matriz con las estructuras de mapa de textura. (véase la siguiente tabla) |
Todos los números enteros son de 4 bytes de longitud en estilo x86 orden little-endian. Sus valores no pueden exceder de 231 - 1, ya que Doom los lee como enteros con signo. Los enteros cortos son de 2 bytes de longitud y son de otra manera igual a números enteros.
Estructura de texturas de mapa[]
El contenido binario de la estructura maptexture_t comienza con una cabecera de 22 bytes, seguido de todos los parches del mapa.
maptexture_t | |||
---|---|---|---|
Offset | Largo | Nombre | Contenido |
0x00 | 8 | name | Una cadena ASCII que define el nombre del mapa de textura. Sólo los caracteres A-Z (mayúsculas), 0-9, y [] - _ se pueden utilizar en los nombres de lump. Cuando una cadena tiene menos de 8 bytes de longitud, debe ponerse un valor nulo para el octavo byte. |
0x08 | 4 | masked | Un booleano (0=falso, 1=verdadero) que define |
0x0C | 2 | width | Un número entero corto que define la anchura total del mapa de textura. |
0x0E | 2 | height | Un número entero corto que define la altura total del mapa de textura. |
0x10 | 4 | columndirectory | Obsoleto, ignorado por todas las versiones de DOOM. |
0x14 | 2 | patchcount | El número de parches de mapa que componen este mapa de textura. |
0x16 | 10 * patchcount | patches[ ] | Matriz con las estructuras parche de mapa para esta textura. (véase la siguiente tabla) |
Estructura de parches de mapa[]
El contenido binario de la estructura mappatch_t contiene 10 bytes que definen cómo debe establecerse el parche dentro de la textura.
mappatch_t | |||
---|---|---|---|
Offset | Largo | Nombre | Contenido |
0x00 | 2 | originx | Un entero corto que define el desplazamiento horizontal del parche con respecto a la parte superior izquierda de la textura |
0x02 | 2 | originy | Un entero corto que define la distancia al eje vertical del parche en relación con la parte superior izquierda de la textura |
0x04 | 2 | patch | Un entero corto que define el número de parche (que se enumeran en PNAMES) para dibujar |
0x06 | 2 | stepdir | Un entero corto |
0x08 | 2 | colormap | Un entero corto |