From de809a19ae69f425643d05bfc68b61f3a4727a3c Mon Sep 17 00:00:00 2001 From: Erthilo Date: Sun, 3 Jun 2012 17:41:54 +0100 Subject: [PATCH] TG: Fix for Damage Icons. They now have a layer define too. Revision: r3705 Author: elly1...@rocketmail.com THIS ALSO FIXES: Not being able to put items on people's back or belt. --- .../Cael_Aislinn/Tajara/tajaran.dm | 4 ++-- .../mob/living/carbon/alien_humanoid.dm | 4 ++-- .../living/carbon/alien/humanoid/humanoid.dm | 6 +++--- code/modules/mob/living/carbon/human/human.dm | 12 ++++++------ .../mob/living/carbon/human/human_damage.dm | 13 ++++++------- icons/mob/dam_human.dmi | Bin 9726 -> 9738 bytes 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm index 8f4a741ff7..1814d6c4ea 100644 --- a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm +++ b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm @@ -127,14 +127,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/defines/mob/living/carbon/alien_humanoid.dm b/code/defines/mob/living/carbon/alien_humanoid.dm index ffbfc7aa49..af03496ff6 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 c00deab594..707490f220 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 3cb98d82a7..9855d9488f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -52,8 +52,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 @@ -936,8 +936,8 @@ // Other procs(probably update_face() and update_body() ) also rebuild their own // kinds of overlay lists. Think about merging those procs into this proc. - body_overlays_lying += body_lying - body_overlays_standing += body_standing + body_overlays_lying += damageicon_lying + body_overlays_standing += damageicon_standing // face_lying and face_standing are the face icons, not a flag body_overlays_lying += face_lying @@ -1866,7 +1866,7 @@ It can still be worn/put on as normal. W.add_fingerprint(source) else if(!item) return - if ((istype(item, /obj) && item.flags & 128 && target.w_uniform)) + if ((istype(item, /obj) && (item.slot_flags & SLOT_BELT) && target.w_uniform)) source.drop_item() loc = target item.layer = 20 @@ -2160,7 +2160,7 @@ It can still be worn/put on as normal. W.add_fingerprint(source) else if(!item) return - if ((istype(item, /obj/item) && item.flags & 1)) + if ((istype(item, /obj/item) && (item.slot_flags & SLOT_BACK))) source.drop_item() loc = target item.layer = 20 diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 2ece10b0b2..45041e244b 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -21,11 +21,8 @@ // 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/name in organs) var/datum/organ/external/O = organs[name] if(!O.destroyed) @@ -33,11 +30,13 @@ 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/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/sharp = 0, var/used_weapon = null) diff --git a/icons/mob/dam_human.dmi b/icons/mob/dam_human.dmi index 5b4c87cf3da90d07fd9a5d303b85b650cfa83a4b..c68299554c88736776d7bce2763b4ea93f4c1f8e 100644 GIT binary patch delta 9473 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