Fandom

Doom Wiki

Picked up a medikit that you REALLY need!

3,484pages on
this wiki
Add New Page
Talk2 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

The original Doom source code included provision for a special message to be displayed when the user picked up a medikit while their health was low. Instead of the usual "Picked up a medikit" message, "Picked up a medikit that you REALLY need!" was supposed to be displayed.

Because of a logic error in the implementation, this message is never displayed. The following is an excerpt from p_inter.c:

     case SPR_MEDI:
       if (!P_GiveBody (player, 25))
           return;
       
       if (player->health < 25)
           player->message = GOTMEDINEED;
       else
           player->message = GOTMEDIKIT;
       break;

This section of source code implements the medikit powerup logic. If the player's health is less than 25%, the "Picked up a medikit that you REALLY need!" message should be displayed. However, the code which gives the player the extra health is placed before the check is made. Because a medikit gives 25% extra health, the player's health is always at least 26% before the check. As a result, the normal "Picked up a medikit" message is always displayed and the special message is never shown.

A fixed version of the code is as follows:

     case SPR_MEDI:
       if (player->health >= MAXHEALTH)
           return;
       
       if (player->health < 25)
           player->message = GOTMEDINEED;
       else
           player->message = GOTMEDIKIT;
       
       P_GiveBody (player, 25);
       break;

This bug has been fixed in PrBoom, Eternity Engine, most ZDoom-based source ports, and possibly others.

Also on Fandom

Random Wiki