From 87f37dbb43108ca4e64734b97f7c138f90fa1c2b Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 26 Mar 2015 15:39:44 +1030 Subject: [PATCH] Moves damage masks and damage overlays to species level. --- .../living/carbon/human/species/species.dm | 5 ++++ .../carbon/human/species/station/monkey.dm | 2 ++ .../mob/living/carbon/human/update_icons.dm | 22 ++++++++---------- icons/mob/dam_human.dmi | Bin 7400 -> 0 bytes icons/mob/dam_mask.dmi | Bin 986 -> 0 bytes icons/mob/human_races/masks/dam_human.dmi | Bin 0 -> 6471 bytes .../mob/human_races/masks/dam_mask_human.dmi | Bin 0 -> 431 bytes .../mob/human_races/masks/dam_mask_monkey.dmi | Bin 0 -> 688 bytes icons/mob/human_races/masks/dam_monkey.dmi | Bin 0 -> 4439 bytes 9 files changed, 17 insertions(+), 12 deletions(-) delete mode 100644 icons/mob/dam_human.dmi delete mode 100644 icons/mob/dam_mask.dmi create mode 100644 icons/mob/human_races/masks/dam_human.dmi create mode 100644 icons/mob/human_races/masks/dam_mask_human.dmi create mode 100644 icons/mob/human_races/masks/dam_mask_monkey.dmi create mode 100644 icons/mob/human_races/masks/dam_monkey.dmi diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 9b3b9cfd44..807d89bc1e 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -12,6 +12,11 @@ // Icon/appearance vars. var/icobase = 'icons/mob/human_races/r_human.dmi' // Normal icon set. var/deform = 'icons/mob/human_races/r_def_human.dmi' // Mutated icon set. + + // Damage overlay and masks. + var/damage_overlays = 'icons/mob/human_races/masks/dam_human.dmi' + var/damage_mask = 'icons/mob/human_races/masks/dam_mask_human.dmi' + var/prone_icon // If set, draws this from icobase when mob is prone. var/eyes = "eyes_s" // Icon for eyes. var/blood_color = "#A10808" // Red. diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm index 7d7ccbb50b..79a3982b8f 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm @@ -5,6 +5,8 @@ icobase = 'icons/mob/human_races/monkeys/r_monkey.dmi' deform = 'icons/mob/human_races/monkeys/r_monkey.dmi' + damage_overlays = 'icons/mob/human_races/masks/dam_monkey.dmi' + damage_mask = 'icons/mob/human_races/masks/dam_mask_monkey.dmi' language = null default_language = "Chimpanzee" diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 2b1a458539..2686a59370 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -175,15 +175,6 @@ Please contact me on #coderbus IRC. ~Carn x src.transform = M var/global/list/damage_icon_parts = list() -proc/get_damage_icon_part(damage_state, body_part) - if(damage_icon_parts["[damage_state]/[body_part]"] == null) - var/icon/DI = new /icon('icons/mob/dam_human.dmi', damage_state) // the damage icon for whole human - // TODO: Convert dam_human.dmi to greyscale and blend in species.blood_colour here. - DI.Blend(new /icon('icons/mob/dam_mask.dmi', body_part), ICON_MULTIPLY) // mask with this organ's pixels - damage_icon_parts["[damage_state]/[body_part]"] = DI - return DI - else - return damage_icon_parts["[damage_state]/[body_part]"] //DAMAGE OVERLAYS //constructs damage icon for each organ from mask * damage field and saves it in our overlays_ lists @@ -202,7 +193,7 @@ proc/get_damage_icon_part(damage_state, body_part) previous_damage_appearance = damage_appearance - var/icon/standing = new /icon('icons/mob/dam_human.dmi', "00") + var/icon/standing = new /icon(species.damage_overlays, "00") var/image/standing_image = new /image("icon" = standing) @@ -211,8 +202,15 @@ proc/get_damage_icon_part(damage_state, body_part) if(!(O.status & ORGAN_DESTROYED)) O.update_icon() if(O.damage_state == "00") continue - - var/icon/DI = get_damage_icon_part(O.damage_state, O.icon_name) + var/icon/DI + var/cache_index = "[O.damage_state]/[O.icon_name]/[species.blood_color]/[species.name]" + if(damage_icon_parts[cache_index] == null) + DI = new /icon(species.damage_overlays, O.damage_state) // the damage icon for whole human + DI.Blend(new /icon(species.damage_mask, O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels + DI.Blend(species.blood_color, ICON_MULTIPLY) + damage_icon_parts[cache_index] = DI + else + DI = damage_icon_parts["[O.damage_state]/[O.icon_name]"] standing_image.overlays += DI diff --git a/icons/mob/dam_human.dmi b/icons/mob/dam_human.dmi deleted file mode 100644 index 9f649669c0d68a2058f6d3a17a253125e5aac080..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7400 zcmZ8`bzD@>_x_SgFCiUE2@-;IE=!jZ0+LFI5)x7>y}$yZbST{|-AW@R2-1y!bayQ* zdw=`>eE<9Xai7=B+}G=znYnkK=bSU2^mR4JNtj4LAP~8hrm6u5gu{+~Kty=h5$+R< zP;94H|A~=WXJ_YWiUctDMJyF`EGT%@7I6GV^rFTdD9}7fkpzfgb>iY?Zc}z*pu8Z< zT{boznMfB}+E=1YPk17yV}h1+bY9!W^l;N+?SxzP&2w`fXo(%`D}A-Bi+iHBt)`ay zkoty)I+vc($66yhEUduy!@kn}!zZ!`*XJoOn^Qlyh1%+77$?VhH)}|QrC z-bu|}u4iK=Y#R37{-u$skJM8S5gh~AC#1WT>vO|6#CsoZ<|!J%_yC6yZrCpoS4D>C z6sT|_w|<=C^MVjBe>=;+%#aftfpTFka|)){goMvHKn0wf&iMEigrIx8einpueays* zWMoSm%$inxrUXNBpI0xEfhgcTFTCz#wprE$rQ#$>p{mg1R-7`p`0ftFJos9rG}*PONKH-2I;sw zA;d0pk0ySXM~N5P#_nsNwr<%)V$b%K4nT z$U*Ixh{JzBw=FQ2Owb5%YvtQ0|6OwCa{8j^$A_B(!D zbJ{|c*Y}N8zZk1L@yQ(BjbGfJasEKPIi}N6+dsIf7WK(mnT|S=*p@Sea?RqA%@ceY zYJXCms88to4UV^)SK(HFTfVʥrtftYx-RF#apGY(!5+p=iXxS|I3`p?PMYFZf> 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 AZ2$lO diff --git a/icons/mob/dam_mask.dmi b/icons/mob/dam_mask.dmi deleted file mode 100644 index df1cc8536a0bcda003c6ca1135d4dab5e158d172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 986 zcmV<0110>4P)C0001}P)t-sz`(%r zm^J^(l{1+DS(*6vy?yMabn>x?;h&QAv1k9JNbja(@KiSAedFMM;s2Ta{Kbs_nE&B? z;^BSZ|C#^(nEc;;;^Kbc{F?pom^S{*{r=4V;(g=)%>Uti-`{@U{mcL1ec}Jh|K5J! z;e6!ce&GDVhx@^V<>lqd%F6HW@8W#l-hSfXe&ejHtpAt)|H}UU&HUee;QpHZ{muX4 zeB%HA|G>b&<5=ax00001bW%=J06^y0W&i*HuXlboz z6wSq)cYCegZpwBIr=wOD-D2|=QihD{Sq1P|X*D@cYdmN*GX&i3ADU6bc$|rHk$D;8 z(c>a0lcl4W4KAfhNe+Mk)L9P0EG{#6cjdIJAFS%MCt@5`c>fDD&QFu=j# z5g#2MD3-w3V;l5$2~IwoDEhkuroz8okF}QySgAnB;&iE>Y5B_;E=L$V&*_}`!dx(4 z>J;H+j&X3N5qFkqS7jcEzgZd>UjosuKK44?>3=#`nTfare}xuP1b5moDp76H7gQOWB^dp$Y; z0001e7Ox-x0wBQ72FTR?>kPC5M3=bXmf_W6kFeRcwKaaTf7ZCKf4c<&Ai$Of00000 zcAn;US)KcFi`%?PN6@CvQ0YlF9iUaGrO}qP+a&^cw{N@$m1lGWXm@eKvkd?MfGuXz z|G{ncg~}RUsWkI{-*2@Nw6<~nYizCqdx+W^000000Dzt3FYB{c%dR^4@Bjb+07*qo IM6N<$g4y!{h|{b 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 Z#R8}x8syfRg*yNM002ovPDHLkV1kSBy;=YO literal 0 HcmV?d00001 diff --git a/icons/mob/human_races/masks/dam_mask_monkey.dmi b/icons/mob/human_races/masks/dam_mask_monkey.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4761f21fbd5b8a01f424d1071aa18b3547ff3ea6 GIT binary patch literal 688 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 literal 0 HcmV?d00001