Fix radiation bugs

This commit is contained in:
Alexander Batalov 2022-08-14 17:30:45 +03:00
parent cac96bfc13
commit 330edde003
1 changed files with 19 additions and 9 deletions

View File

@ -568,6 +568,13 @@ void _process_rads(Object* obj, int radiationLevel, bool isHealing)
if (obj == gDude) { if (obj == gDude) {
// Radiation level message, higher is worse. // Radiation level message, higher is worse.
messageListItem.num = 1000 + radiationLevelIndex; messageListItem.num = 1000 + radiationLevelIndex;
// SFALL: Fix radiation message when removing radiation effects.
if (isHealing) {
// You feel better.
messageListItem.num = 3003;
}
if (messageListGetItem(&gMiscMessageList, &messageListItem)) { if (messageListGetItem(&gMiscMessageList, &messageListItem)) {
displayMonitorAddMessage(messageListItem.text); displayMonitorAddMessage(messageListItem.text);
} }
@ -579,6 +586,8 @@ void _process_rads(Object* obj, int radiationLevel, bool isHealing)
critterSetBonusStat(obj, gRadiationEffectStats[effect], value); critterSetBonusStat(obj, gRadiationEffectStats[effect], value);
} }
// SFALL: Prevent death when removing radiation effects.
if (!isHealing) {
if ((obj->data.critter.combat.results & DAM_DEAD) == 0) { if ((obj->data.critter.combat.results & DAM_DEAD) == 0) {
// Loop thru effects affecting primary stats. If any of the primary stat // Loop thru effects affecting primary stats. If any of the primary stat
// dropped below minimal value, kill it. // dropped below minimal value, kill it.
@ -591,6 +600,7 @@ void _process_rads(Object* obj, int radiationLevel, bool isHealing)
} }
} }
} }
}
if ((obj->data.critter.combat.results & DAM_DEAD) != 0) { if ((obj->data.critter.combat.results & DAM_DEAD) != 0) {
if (obj == gDude) { if (obj == gDude) {