Doom Wiki
Advertisement
Doom Wiki
Formato de niveles Doom
Extensiones

SEG (una abreviatura de segmento) es el nombre de un lump WAD que es un componente de un nivel. Normalmente, se genera automáticamente a partir de otros datos del nivel, usando una herramienta del tipo constructor de nodos (node builder tool).

Doom formato mapa

Son segmentos de linedefs y describen la porción de una linedef que bordea el subsector al que dicho segmento pertenece.

Inicialmente, se crea una SEG para cada linedef unilateral y dos SEGs para cada linedef bilateral (uno para cada lado).

Si el área que bordea un segmento, más tarde se divide en dos subsectores diferentes, a continuación, un nuevo vértice se va a crear en el punto de división y la SEG se divide en dos partes en ese vértice.

Las SEGS se almacenan en un orden secuencial determinado por los SSECTORS, que son parte del árbol recursivo NODES.

Estructura

Offset Tamaño (bytes) Descripción
0 2 Número de vértice donde se inicia el segmento
2 2 Número de vértice donde termina el segmento
4 2 Ángulo (1)
6 2 Número de linedef por la que este seg corre
8 2 Dirección: 0 (igual a linedef) ó 1 (opuesto a linedef) (2)
10 2 Desplazamiento: distancia a lo largo de linedef para iniciar el SEG (3)

(1) Este campo puede tener los valores 0 = este, 16384 = norte, -16.384 = sur, -32768 = oeste. En hexadecimal es 0000 = este, 4000 = norte, 8000 = oeste, C000 = sur. Esto también se conoce como BAMS por Binary Angle Measurement (medición de ángulo binario).

(2) El campo dirección puede ser interpretado como una "bandera de lado", ya que si se establece el valor dirección = 0 indica que el SEG corre a lo largo del lado derecho de la linedef, mientras que si dirección = 1 indica que se encuentra del lado izquierdo.

(3) Es la distancia a lo largo de la linedef hasta el inicio de este seg (con el vértice en el campo 1). El desplazamiento se toma en la misma dirección que corre el segmento. Si el campo dirección es 0, entonces la distancia es desde el vértice "inicio" de la linedef hasta el vértice "inicio" del segmento. Si el campo dirección tiene el valor, entonces el desplazamiento es desde el vértice "final" de la linedef hasta el vértice "inicio" del segmento. Así que si el seg comienza en uno de los dos puntos finales de la linedef, este desplazamiento será 0.

Desbordamiento de SEGs

Mientras la construcción de un frame, los segmentos que se pueden extraer se almacenan para una renderización posterior. En Vanilla Doom se almacenan en una matriz estática de 256 elementos de largo, y si una trama requiere más segmentos que esto, los segmentos excedentes simplemente no se dibujan.

Fuente

Advertisement