Doom Wiki
Advertisement
Doom Wiki


Debido a un error en el código fuente, el uso excesivo del efecto de texturas de desplazamiento provoca un bloqueo o problemas dependientes del nivel.

Dentro de la función P_SpawnSpecials() en p_spec.c:

//Init line EFFECTs
numlinespecials = 0;
for (i = 0;i < numlines; i++)
{
switch(lines[i].special)
{
case 48:
// EFFECT FIRSTCOL SCROLL+
linespeciallist[numlinespecials] = &lines[i];
numlinespecials++;
break;
}
}


No se realiza una comprobación con MAXLINEANIMS antes de agregarlo a la lista. Dado que MAXLINEANIMS es solo 64, después de que se procese la pared de textura de desplazamiento 64 dentro del mapa para especiales, la memoria comenzará a sobrescribirse. Según la cantidad de memoria que se sobrescriba, esto puede producir resultados dependientes del nivel o fallas según el diseño de la memoria variable interna.

Doom2+ aumenta el límite de MAXLINEANIMS, sin embargo, solo se usa para desplazar paredes de textura, no se usa en ningún otro lugar por ningún otro motivo. Strife introduce tres nuevos tipos de scroller y aumenta el valor de MAXLINEANIMS a 96, pero no soluciona el descuido, por lo que sigue sujeto a este error.

Véase también[]

Advertisement