Doom Wiki
Advertisement
Doom Wiki

MAPINFO es un lump introducido en Hexen que permite describir los metadatos asociados a niveles (tales como su nombre, la música, la textura del cielo, el tiempo par, etc.) en lugar de tenerlos en forma no modificable en el motor.

Varias portaciones (source ports) han adoptado el sistema de MAPINFO, sin embargo no todas las sintaxis son compatibles. Las portaciones Doomsday y Risen 3D no utilizan el lump MAPINFO, sin embargo cuentan con la definición "Map info" incluidos en archivos DED.

Versiones[]

Existen diferentes tipos de sintaxis para MAPINFO.

Hexen[]

Un estilo Hexen para el lump MAPINFO contiene declaraciones de esta forma:

;This is the first map
map 1 "WINNOWING HALL"
warptrans 1
next 2
cluster 1
sky1 SKY2 0
sky2 SKY3 0
lightning
cdtrack 13

El mapa se identifica solamente por un número, lo que significa que esta sintaxis sólo está adaptada para lumps de mapas nombrados de acuerdo con la convención MAPxx. No hay una clara separación entre dos comandos que no sea un salto de línea, por lo que es difícil de analizar si se encuentran palabras clave desconocidas ya que la cantidad de parámetros para cada comando sólo puede ser conocido a partir de la palabra clave (por ejemplo, dos parámetros para sky1, pero sólo uno para cdtrack).

DMAPINFO[]

El relanzamiento de 2019 de Doom para varias consolas introdujo un nuevo formato MAPINFO oficial, bastante cercano al formato moderno de ZDoom en su sintaxis.

Eternity Engine[]

Eternity Engine utiliza una sintaxis diferente, con un nombre de lump diferente para evitar problemas de compatibilidad: EMAPINFO.

[MAP01]
levelname = De kerker
edf-intername = true

La sintaxis es similar a la utilizada por SMMU en lumps marcadores de mapa (por ejemplo, MAP01), excepto que Eternity recomienda un lump centralizado (EMAPINFO). Las definiciones de mapa son acumulativas, por lo que cualquier valor no mencionado utiliza el valor predeterminado para el nivel; en este ejemplo, el cielo, la música, el tiempo par y así sucesivamente quedan sin modificarse en comparación con los valores predeterminados codificados para MAP01.

El soporte para los lump MAPINFO de Hexen, con ciertas extensiones ZDoom a las que se denomina la "sintaxis antigua", se añadieron a Eternity en Git commit 0de361f. El MAPINFO de Hexen se trata con prioridad más baja que la forma nativa de Eternity; si un mapa ha sido definido para ambos, los datos del MAPINFO Hexen para este mapa serán descartados por completo.

ZDoom[]

El primer formato de ZDoom para MAPINFO era simplemente una evolución del formato de Hexen, adaptado para tener en cuenta las necesidades de otros juegos compatibles. Este es un ejemplo de la sintaxis del MAPINFO ZDoom antiguo:

map E1M4 "UAC Waste and Storage Facility"
cluster 1
next E1M5
secretnext E1M0
par 660
sucktime 1
music D_SOLOBT

El mapa se identifica por su nombre del lump. Contrariamente al formato Hexen, los clústeres no son implícitos y se deben definir también, así como los episodios (los episodios realmente son simplemente una manera de dar un nombre a elegir al comenzar un mapa cuando se inicia un nuevo juego). Sintácticamente lo demás es idéntico al formato Hexen.

Otras portaciones, como Risen 3D y Vavoom, también utilizan esta sintaxis, aunque con algunas diferencias menores en las palabras clave soportadas (por ejemplo, Vavoom utiliza secret en lugar de secretnext). Dado que las definiciones de clústeres incluyen los mensajes intermedios (como los que se muestran entre el MAP06 y el MAP07 en Doom II), el análisis debe permitir comandos de múltiples líneas, lo que hace problemáticos los comandos desconocidos.

El nuevo formato de ZDoom para MAPINFO fue diseñado para tener una fuerte sintaxis que permitiría un correcto análisis sintáctico de lumps MAPINFO con palabras clave desconocidos. Este es un ejemplo de la nueva sintaxis ZDoom para MAPINFO:

map E1M1 "Hangar"
{
	levelnum = 1
	titlepatch = "WILV00"
	next = "E1M2"
	secretnext = "E1M9"
	sky1 = "SKY1"
	cluster = 1
	par = 30
	music = "D_E1M1"
}

El uso de llaves delinea claramente el alcance de la definición del mapa, y el uso del signo igual identifica claramente un token como una palabra clave. Esto también permite palabras clave con parámetros opcionales, como sky1 aquí, que no menciona su segundo parámetro. El lenguaje también fue extendido para permitir la definición de las competencias y más información genérica del juego (como el nombre de los lumps de pantalla de información mostrados por la tecla "Read This!"/F1 o del lump ENDOOM). Debido a sus diferencias con los antiguos lumps MAPINFO que son leídos por otras portaciones, se puede utilizar el alias ZMAPINFO para evitar problemas de compatibilidad con otros puertos.

Doomsday[]

Doomsday no utiliza el lump MAPINFO (excepto en jHexen por razones obvias), y en su lugar cuenta con bloques "Map Info" en archivos DED, que tienen el mismo propósito. Risen3D, derivado de Doomsday, utiliza el mismo sistema. Sin embargo, es posible que las características de Map Info agregadas en Doomsday después de la bifurcación no sean compatibles con Risen3D y viceversa.

Map Info {
  ID = "E1M1";
  Name = "HUSTR_E1M1";
  Author = "id Software";
  Music = "e1m1";
  Par time = 30;
  Gravity = 1;
  Sky = "sky1";
  Execute = "";
}

Las pantallas intermedias se definen usando las definiciones InFine por separado, mientras que la progresión de nivel se define utilizando el sistema XG.

Doom retro[]

La portación Doom Retro para PC Windows se basó en el antiguo estándar de ZDoom para MAPINFO al estilo Hexen y agregó algunas de sus propias palabras clave y usó su propio nombre global: RMAPINFO.

UMAPINFO[]

El artículo principal de esta tema es UMAPINFO.

En 2017, Graf Zahl lanzó la primera implementación de una versión de MAPINFO que podía compartirse entre distintas portaciones, que se conoce como UMAPINFO.

Véase también[]

Advertisement