Doom Wiki
Advertisement
Doom Wiki


El código fuente original de Doom incluía la provisión de un mensaje especial que se mostraría cuando el usuario recogiera un botiquín mientras su salud era baja.

En lugar del mensaje habitual de "Recogió un botiquín", se suponía que se mostraría "¡Recogió un botiquín que REALMENTE necesita!", aunque tal cosa nunca sucede.

Aspectos técnicos[]

Debido a un error lógico en la implementación, este mensaje nunca llega a mostrarse. El siguiente es un extracto de p_inter.c:

case SPR_MEDI:
if (!P_GiveBody (player, 25))
return;

if (player->health < 25)
player->message = GOTMEDINEED;
else
player->message = GOTMEDIKIT;
break;

Esta sección de código fuente implementa la lógica de recogida de un botiquín.

Si la salud del jugador es inferior al 25%, el mensaje "¡Recogió un botiquín que REALMENTE necesita!" debería mostrarse. Sin embargo, el código que le da al jugador la salud adicional se coloca antes de que se realice la verificación. Debido a que un botiquín proporciona un 25% de salud adicional, la salud del jugador siempre es de al menos un 26% antes de que se realice la verificación. Como resultado, el mensaje normal "Recogió un botiquín" siempre se muestra y el mensaje especial nunca va a aparecer.

Recogiste Botiquin

El mensaje en gzDoom.

Una versión corregida del código es la siguiente:

case SPR_MEDI:
if (player->health >= MAXHEALTH)
return;

if (player->health < 25)
player->message = GOTMEDINEED;
else
player->message = GOTMEDIKIT;

P_GiveBody (player, 25);
break;

Este error se ha corregido en PrBoom, Eternity Engine, la mayoría de las portaciones (source ports) basadas en ZDoom y posiblemente otras.

Véase también[]

Advertisement