Doom Wiki
Advertisement
Doom Wiki


En el nivel MAP02: Underhalls de Doom II, después de pasar por la primera puerta, el jugador debe enfrentar a un Sargento para presionar el interruptor que abre la siguiente parte del nivel. Sin embargo, este Sargento ignora al jugador y no se "despierta" como suelen hacer todos los monstruos al detectar a un jugador.

Por lo general, el error no se nota, ya que el jugador debe enfrentarse a dos antiguos humanos en la misma sala antes de llegar al Sargento. La acción de matarlos generalmente despierta al Sargento (que todavía es sensible al sonido).

El mismo error puede ocurrir a la inversa; un ejemplo es en E1M5: Phobos Lab de Knee-Deep in the Dead. Si el jugador se mueve lentamente hacia arriba por el lado izquierdo de la primera escalera, puede despertar al Diablillo en la esquina más lejana del noreste de la sala directamente adelante, a pesar de que hay una pared sólida entre las dos ubicaciones.

Se produce un error similar en la portación a Playstation . En E1M5: Phobos Labs, cuando el jugador sube las escaleras hacia la habitación central donde encontrará un grupo de monstruos, inertes, al otro lado de la habitación.

Aspectos técnicos[]

El comportamiento se produce debido a un error en el código de línea de visión de Doom. El código que lo causa se encuentra en p_sight.c, en la función P_DivlineSide.

if (!node->dy)
{
if (x==node->y)
return 2;

if (y <= node->y)
return node->dx < 0;

return node->dx > 0;
}

Este código hace que el motor piense que cualquier coordenada se encuentra en una linedef, cuando la linedef es horizontal y la coordenada x de la cosa es la misma que la coordenada y del origen de una línea divisoria BSP, que siempre es un vértice.


En el caso de MAP02, el Sargento está en (1200,1232) y uno de los vértices detrás de él está en (1232,1200).

En el caso E1M5, el Diablillo está en (672,1264) y uno de los linedefs al sur tiene un vértice en (400,672).

Archivos demo[]

Véase también[]

Enlaces externos[]

Advertisement