From f372a3c45a663f9d4d9e5d88950101bd90473e70 Mon Sep 17 00:00:00 2001 From: Geeves Date: Fri, 15 Jan 2021 03:27:01 +0200 Subject: [PATCH] Bleed Rejuvenate Fix (#10981) --- code/__defines/damage_organs.dm | 3 +++ code/modules/mob/living/carbon/human/species/species.dm | 3 ++- code/modules/organs/organ_external.dm | 9 +-------- html/changelogs/geeves-bleed_rejuv_fix.yml | 6 ++++++ 4 files changed, 12 insertions(+), 9 deletions(-) create mode 100644 html/changelogs/geeves-bleed_rejuv_fix.yml diff --git a/code/__defines/damage_organs.dm b/code/__defines/damage_organs.dm index 93ffcd58f01..2ace904180a 100644 --- a/code/__defines/damage_organs.dm +++ b/code/__defines/damage_organs.dm @@ -46,6 +46,9 @@ #define ORGAN_TENDON_CUT (1<<12) #define ORGAN_LIFELIKE (1<<13) // Robotic, made to appear organic. +// the largest bitflag, in the WORLD +#define ORGAN_DAMAGE_STATES ORGAN_CUT_AWAY|ORGAN_BLEEDING|ORGAN_BROKEN|ORGAN_DESTROYED|ORGAN_SPLINTED|ORGAN_DEAD|ORGAN_MUTATED|ORGAN_ARTERY_CUT|ORGAN_TENDON_CUT + // Limb behaviour defines. #define ORGAN_CAN_AMPUTATE (1<<0) //Can this organ be amputated? #define ORGAN_CAN_BREAK (1<<1) //Can this organ break? diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index b5784e080bc..67e255ac340 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -327,7 +327,6 @@ return /datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs. - for(var/obj/item/organ/organ in H.contents) if((organ in H.organs) || (organ in H.internal_organs)) qdel(organ) @@ -336,6 +335,8 @@ if(H.internal_organs) H.internal_organs.Cut() if(H.organs_by_name) H.organs_by_name.Cut() if(H.internal_organs_by_name) H.internal_organs_by_name.Cut() + if(H.bad_external_organs) H.bad_external_organs.Cut() + if(H.bad_internal_organs) H.bad_internal_organs.Cut() H.organs = list() H.internal_organs = list() diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 8d0b9dec0f7..1829eecde54 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -431,14 +431,7 @@ This function completely restores a damaged organ to perfect condition. */ /obj/item/organ/external/rejuvenate() damage_state = "00" - src.status &= ~ORGAN_BROKEN - src.status &= ~ORGAN_BLEEDING - src.status &= ~ORGAN_SPLINTED - src.status &= ~ORGAN_CUT_AWAY - src.status &= ~ORGAN_DESTROYED - src.status &= ~ORGAN_DEAD - src.status &= ~ORGAN_MUTATED - src.status &= ~ORGAN_SPLINTED + status &= ~ORGAN_DAMAGE_STATES perma_injury = 0 brute_dam = 0 burn_dam = 0 diff --git a/html/changelogs/geeves-bleed_rejuv_fix.yml b/html/changelogs/geeves-bleed_rejuv_fix.yml new file mode 100644 index 00000000000..1eb0d1da482 --- /dev/null +++ b/html/changelogs/geeves-bleed_rejuv_fix.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Fixed humanoids bleeding after being rejuvenated." \ No newline at end of file