Incomplete healing from Gerard


Here the player is dead, but with an apparent 43 health remaining.

The healing offered to the player by Gerard, the Front's medic in Strife, is incomplete in that it only adds health to the internal variable players[0].health and does not restore hit points to the player's actual body, which is stored in players[0].mo->health. The former is used by game engine subsystems such as the status bar and HUD for display purposes, while the latter is used by the actual playsim to determine whether the player is dead or alive.

The two variables will remain out of sync with each other until the player exits the level on which he received healing. During the course of level transition, the player's mobj_t body is destroyed and then replaced with a new one, which copies its initial hit points from the player health variable. Until that point, taking an amount of damage which would have killed the player before the healing was received will result in the player becoming apparently dead while the status bar still displays a positive health value. For example, if the player entered the area with 10 health remaining, and Gerard healed him to 100, then taking 10 damage will result in the player dying while the status bar still reads 90.