diff --git a/code/defines/mob/living/carbon/alien_humanoid.dm b/code/defines/mob/living/carbon/alien_humanoid.dm index ffbfc7aa49c..af03496ff63 100644 --- a/code/defines/mob/living/carbon/alien_humanoid.dm +++ b/code/defines/mob/living/carbon/alien_humanoid.dm @@ -17,8 +17,8 @@ var/image/face_standing = null var/image/face_lying = null - var/list/body_standing = list( ) - var/list/body_lying = list( ) + var/image/damageicon_standing = null + var/image/damageicon_lying = null /mob/living/carbon/alien/humanoid/hunter name = "alien hunter" diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index b8676e29e2b..0bc302fc177 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -327,7 +327,7 @@ // Automatically drop anything in store / id / belt if you're not wearing a uniform. if (zone_sel) zone_sel.overlays = null - zone_sel.overlays += body_standing + zone_sel.overlays += damageicon_standing zone_sel.overlays += image("icon" = 'zone_sel.dmi', "icon_state" = text("[]", zone_sel.selecting)) if (lying) @@ -344,7 +344,7 @@ else icon = stand_icon - overlays += body_lying + overlays += damageicon_lying if (face_lying) overlays += face_lying @@ -352,7 +352,7 @@ if(update_icon) icon = stand_icon - overlays += body_standing + overlays += damageicon_standing if (face_standing) overlays += face_standing diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 432d8c9de08..f81f6eb2b79 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -47,8 +47,8 @@ var/hair_icon_state = "hair_a" var/face_icon_state = "bald" - var/list/body_standing = list() - var/list/body_lying = list() + var/image/damageicon_standing + var/image/damageicon_lying var/mutantrace = null @@ -820,14 +820,14 @@ if (lying) icon = lying_icon - overlays += body_lying + overlays += damageicon_lying if (face_lying) overlays += face_lying else icon = stand_icon - overlays += body_standing + overlays += damageicon_standing if (face_standing) overlays += face_standing diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 726e67b74d9..7afe02f5a79 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -11,19 +11,17 @@ // now constructs damage icon for each organ from mask * damage field /mob/living/carbon/human/UpdateDamageIcon() - del(body_standing) - body_standing = list() - del(body_lying) - body_lying = list() + var/icon/standing = new /icon('dam_human.dmi', "00") + var/icon/lying = new /icon('dam_human.dmi', "00-2") for(var/datum/organ/external/O in organs) var/icon/DI = new /icon('dam_human.dmi', O.damage_state) // the damage icon for whole human DI.Blend(new /icon('dam_mask.dmi', O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels - // world << "[O.icon_name] [O.damage_state] \icon[DI]" - body_standing += DI + standing.Blend(DI,ICON_OVERLAY) DI = new /icon('dam_human.dmi', "[O.damage_state]-2") // repeat for lying icons DI.Blend(new /icon('dam_mask.dmi', "[O.icon_name]2"), ICON_MULTIPLY) - // world << "[O.r_name]2 [O.d_i_state]-2 \icon[DI]" - body_lying += DI + lying.Blend(DI,ICON_OVERLAY) + damageicon_standing = new /image("icon" = standing, "layer" = DAMAGE_LAYER) + damageicon_lying = new /image("icon" = lying, "layer" = DAMAGE_LAYER) /mob/living/carbon/human/proc/get_organ(var/zone) diff --git a/code/setup.dm b/code/setup.dm index e4a809ea7e3..81fd678835b 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -173,6 +173,7 @@ var/MAX_EXPLOSION_RANGE = 14 #define HIDEEYES 4 //APPLIES ONLY TO HELMETS!! //clothing-overlay layers. They are floats so they always appear above the Mob +#define DAMAGE_LAYER -23 #define UNIFORM_LAYER -22 #define B_UNIFORM_LAYER -21 #define SHOES_LAYER -20 diff --git a/icons/mob/dam_human.dmi b/icons/mob/dam_human.dmi index 5b4c87cf3da..d1a344fe080 100644 Binary files a/icons/mob/dam_human.dmi and b/icons/mob/dam_human.dmi differ