From 7685c4be25074a4d58be0f5bc8050b7a884f009c Mon Sep 17 00:00:00 2001 From: "elly1989@rocketmail.com" Date: Thu, 31 May 2012 10:53:43 +0000 Subject: [PATCH] Fix for Damage Icons. They now have a layer define too. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3705 316c924e-a436-60f5-8080-3fe189b3f50e --- .../mob/living/carbon/alien_humanoid.dm | 4 ++-- .../living/carbon/alien/humanoid/humanoid.dm | 6 +++--- code/modules/mob/living/carbon/human/human.dm | 8 ++++---- .../mob/living/carbon/human/human_damage.dm | 14 ++++++-------- code/setup.dm | 1 + icons/mob/dam_human.dmi | Bin 9726 -> 9741 bytes 6 files changed, 16 insertions(+), 17 deletions(-) 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 5b4c87cf3da90d07fd9a5d303b85b650cfa83a4b..d1a344fe080af15815d3419d7a6c3fbd820354bd 100644 GIT binary patch delta 9473 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 T-NfD1AuLT*J(VgYtMLB=zN6VC