Doom Wiki
Advertisement
Doom Wiki


A partir del uso del motor de Doom II, las paredes y los techos en movimiento (por ejemplo, las puertas, ascensores, escaleras mecánicas, trituradoras) pueden ser normales o "ardientes (blazing)": los sectores ardientes suben o bajan mucho más rápidamente que el movimiento de los sectores normales.

Cuando el jugador cierra una puerta ardiente caminando hacia ella y presionando "acción" (por defecto la barra espaciadora en Vanilla Doom), se escucha el efecto de sonido esperado (DSBDCLS). Sin embargo, cuando se permite que una puerta ardiente se cierre sola, el mismo efecto de sonido se reproduce dos veces.

Aspectos técnicos[]

La causa de esto se encuentra en p_doors.c, en la función T_VerticalDoor. Esta función es la función Thinker que anima las puertas.

El código que hace que la puerta se mueva hacia abajo incluye una verificación para ver si la puerta ha llegado a su destino. Si esto ha sucedido, la puerta deja de moverse. Por alguna razón, se incluye un código adicional que hace que se reproduzca el sonido de "cerrar la puerta ardiente" cuando esto sucede.

El código es el siguiente:

if (res == pastdest) /* If ths door has reached its destination */
{
switch(door->type)
{
case blazeRaise: /* If this is a "blazing" door */
case blazeClose:
door->sector->specialdata = NULL;
P_RemoveThinker (&door->thinker); // unlink and free
/* Play the blazing door close sound */
S_StartSound((mobj_t *)&door->sector->soundorg,
sfx_bdcls);
break;
...
}
}
...

Como el sonido ya se reproduce cuando la puerta comienza a cerrarse, el sonido se reproduce dos veces cuando se cierra una puerta ardiente: una vez cuando comienza a cerrarse y la otra vez cuando ha terminado de cerrarse.

PrBoom corrige este error de forma predeterminada, pero permite volver a habilitarlo en el menú Compatibilidad de Doom.

Véase también[]

Advertisement