From 9e3f99092f95c430c04b3a8da92428f3749981e5 Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Fri, 27 Apr 2018 03:41:56 -0400 Subject: [PATCH 1/2] Fixes missing augmentation hands (#37373) --- code/game/objects/items/robot/robot_parts.dm | 2 +- code/modules/surgery/bodyparts/bodyparts.dm | 20 ++++++++++++------ .../surgery/bodyparts/robot_bodyparts.dm | 20 +++++++++--------- icons/mob/augmentation/augments.dmi | Bin 1840 -> 2175 bytes icons/mob/augmentation/augments_engineer.dmi | Bin 1893 -> 1980 bytes icons/mob/augmentation/augments_mining.dmi | Bin 1910 -> 2006 bytes icons/mob/augmentation/augments_security.dmi | Bin 1861 -> 1942 bytes icons/mob/augmentation/surplus_augments.dmi | Bin 843 -> 1155 bytes icons/obj/robot_parts.dmi | Bin 3031 -> 0 bytes 9 files changed, 24 insertions(+), 18 deletions(-) delete mode 100644 icons/obj/robot_parts.dmi diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index c112b34cca..9a1730488f 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -6,7 +6,7 @@ /obj/item/robot_suit name = "cyborg endoskeleton" desc = "A complex metal backbone with standard limb sockets and pseudomuscle anchors." - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' icon_state = "robo_suit" var/obj/item/bodypart/l_arm/robot/l_arm = null var/obj/item/bodypart/r_arm/robot/r_arm = null diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 26b2a013df..8e0c6ee4cf 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -219,6 +219,9 @@ owner.update_hair() owner.update_damage_overlays() +/obj/item/bodypart/proc/is_organic_limb() + return (status == BODYPART_ORGANIC) + //we inform the bodypart of the changes that happened to the owner, or give it the informations from a source mob. /obj/item/bodypart/proc/update_limb(dropping_limb, mob/living/carbon/source) var/mob/living/carbon/C @@ -227,17 +230,17 @@ if(!original_owner) original_owner = source else if(original_owner && owner != original_owner) //Foreign limb - no_update = 1 + no_update = TRUE else C = owner - no_update = 0 + no_update = FALSE - if(C.has_trait(TRAIT_HUSK)) + if(C.has_trait(TRAIT_HUSK) && is_organic_limb()) species_id = "husk" //overrides species_id dmg_overlay_type = "" //no damage overlay shown when husked should_draw_gender = FALSE should_draw_greyscale = FALSE - no_update = 1 + no_update = TRUE if(no_update) return @@ -282,7 +285,7 @@ dmg_overlay_type = "robotic" if(dropping_limb) - no_update = 1 //when attached, the limb won't be affected by the appearance changes of its mob owner. + no_update = TRUE //when attached, the limb won't be affected by the appearance changes of its mob owner. //to update the bodypart's icon when not attached to a mob /obj/item/bodypart/proc/update_icon_dropped() @@ -316,7 +319,7 @@ . += limb if(animal_origin) - if(status == BODYPART_ORGANIC) + if(is_organic_limb()) limb.icon = 'icons/mob/animal_parts.dmi' if(species_id == "husk") limb.icon_state = "[animal_origin]_husk_[body_zone]" @@ -332,7 +335,7 @@ if((body_zone != BODY_ZONE_HEAD && body_zone != BODY_ZONE_CHEST)) should_draw_gender = FALSE - if(status == BODYPART_ORGANIC) + if(is_organic_limb()) if(should_draw_greyscale) limb.icon = 'icons/mob/human_parts_greyscale.dmi' if(should_draw_gender) @@ -365,6 +368,9 @@ limb.icon_state = "[body_zone]_[icon_gender]" else limb.icon_state = "[body_zone]" + if(aux_zone) + aux = image(limb.icon, "[aux_zone]", -aux_layer, image_dir) + . += aux return diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm index b255c32f11..514244c850 100644 --- a/code/modules/surgery/bodyparts/robot_bodyparts.dm +++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm @@ -6,12 +6,16 @@ #define ROBOTIC_MEDIUM_BURN_MSG "charred" #define ROBOTIC_HEAVY_BURN_MSG "smoldering" +//For ye whom may venture here, split up arm / hand sprites are formatted as "l_hand" & "l_arm". +//The complete sprite (displayed when the limb is on the ground) should be named "borg_l_arm". +//Failure to follow this pattern will cause the hand's icons to be missing due to the way get_limb_icon() works to generate the mob's icons using the aux_zone var. + /obj/item/bodypart/l_arm/robot name = "cyborg left arm" desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("slapped", "punched") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_l_arm" status = BODYPART_ROBOTIC @@ -29,7 +33,7 @@ desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("slapped", "punched") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_r_arm" status = BODYPART_ROBOTIC @@ -47,7 +51,7 @@ desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("kicked", "stomped") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_l_leg" status = BODYPART_ROBOTIC @@ -65,7 +69,7 @@ desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("kicked", "stomped") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_r_leg" status = BODYPART_ROBOTIC @@ -82,7 +86,7 @@ name = "cyborg torso" desc = "A heavily reinforced case containing cyborg logic boards, with space for a standard power cell." item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_chest" status = BODYPART_ROBOTIC @@ -141,7 +145,7 @@ name = "cyborg head" desc = "A standard reinforced braincase, with spine-plugged neural socket and sensor gimbals." item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_head" status = BODYPART_ROBOTIC @@ -218,28 +222,24 @@ name = "surplus prosthetic left arm" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "l_arm" max_damage = 20 /obj/item/bodypart/r_arm/robot/surplus name = "surplus prosthetic right arm" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "r_arm" max_damage = 20 /obj/item/bodypart/l_leg/robot/surplus name = "surplus prosthetic left leg" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "l_leg" max_damage = 20 /obj/item/bodypart/r_leg/robot/surplus name = "surplus prosthetic right leg" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "r_leg" max_damage = 20 diff --git a/icons/mob/augmentation/augments.dmi b/icons/mob/augmentation/augments.dmi index a532348d6d155a3c0cfcfacbe56e8575282be898..574a5ddc4839a9124222a47edb212f2519b12134 100644 GIT binary patch delta 2145 zcmZ8gc{tPy7yiwVK|@GawriBNnrSSNeUFhnpX@Y5W8aM|Gf~zgGknV4AW=e=vd*Y1 zr5M{#gT``63^$k0Sm(}npXdJ5`Qx1PKIc5=JmJyn@CU34j7oa6rzAKDhpxe2X5_bM;Y7qjPg|s*)Yjldi8tjV}3)k9PWc z=Yf=a)C;_}=a+7`_K5&9+$Oz4Oi{dn7C+j9%O*x_)cw&~A6zC?Zog^`}wdFsEXxln?gYgJ6=GT@98mDBNZ)^O?6F|?A=v1FR9bs5YLaZk*OQ%mGQX&> zTKe8k7wjANlQ2iJ8dvS+YG!MRQ@g|Xxo1v_XH(pWq^Y#WCX=ldHh$}5;X-+>iLo#D zS+6wmym~uqsW;SVPu2Y*^A`JWJ%3oSP(f+5)d;!0?S8R&(wgL!gNYdA8;O1*6WMof zyX!|q2ga%65I5vbTUGhb*jCO}9Wt$O;FZ9%)hIJ|>6KuGI16(`#{5%*dWYENsfLyPa1hMeE&e}~Aw z)}1Q2^2i69>D-o+nmAYX!TtLcntuPLq6WdSl%MY%d2<9A7-T(y==wR59-5NiU(rc; zr4D|2v#VSd4!)9bb7{A#FafyRctV3;bG;58fZ zG|+1H3hK@>6g&D&@}1s{Gd&6Cv$tqCtj#dN@*RvlrcHSpU(})!fegLs!#-B2VD4;_ z;N3-7ywI0tx(`K$K%>$mqC0Soo>M@-aEQLBxma0Vt=%hA;rLd!EV+fLIn>U(e^6JL z%-3%~mdIBu9ZO0$S7Ir|F7C`)nfR;VlynK&!c>=s$Qx_@?A0M_HWkNfus#}Bn2r4G zF^(7lv?w;=!TZ@ym|hn6u1ibTgwa`fD_sKikYz*1-(M_$ObFihW$1FPT`oZf=@J|0 zX~p8a#dp5`Z$U3jh-h`0$0v8Gf1&TA{}(xmG&rAGo$_fj&Dr%yk7bs6r78kGU(P$; zTIOyS0{^hE&J1id494yMduNmrausujiawv_hgYR%OAkF%a7WF-lU+-?1rBK*?Zy7F zCmceZR!Gm?^a6pHmAB;RbtB>Q0@3T|f7YTsUeHTJ?^|SXi7}i)%&1<3ygjR24aE5A zD((#>K-LamLG7Nil7@4%URUwPU-WdoWO>a$@Z8l3)VcG+Jc+cJ)i1EN3tcwQ%2*~^Z4nN9gS!gxrT*s{Qa%vxi z=~6?L!4e@l-68vC<=-~JT%XC0jPk(sYuDnIMHwdz>*m9ccH-qBqV71+v#^{KgZH`7 zGC0euAFtoegx6(m*lvi270Q6V_Een4S4aWj3r%2Upac7x_b|xvltHh^X*JkkB*HTP zVHzZw?ZaIOP>14<0jzt%hQNC^_+KLN3q97B zwmG!QyhQT6OGkrxo`QUxj$b>YNmf(2W=2g6)t0>!ms^y#Ne?39f=ymdS60RhyUSH+ z6jomeau{v*e|lVB22CW;^df~t>9p&8DsUfE@UGfMNlkTjU{6=Z}|HGlo LY)oGodnf-5HcjKu delta 1807 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 JPDHLkV1gZPuD}2Q delta 1836 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 XQ#UK3fDRFX00000NkvXXu0mjfoG+Cn delta 1803 zcmV+m2lV)s55*3U7Ye`#0{{R3Dqo-Fks&EIViXrY4hwa4b-=*DEiElNIy$ALrN1O3 zD=RgbnVE8Oa!Ot25C8xG0d!JMQvg8b*k%9#0IZRK7Jm-HAPffJGdu;^?#8KCFJ_C` z!My@O>41c}q!4|5$95xe^wuUH4S%5)x9;8#qJ8xI0~p-=7FTgO969?s9qrPbPn=nB z#>TA)QAJqF%7W5ztT@vSLpsITh-!jVHyN9X%u9u3g(T&r2Sb=eQ7;Q267Ijb@;aU~ z8kvP{c7G_+X%>5bDw(dqXf!?bKUs@zXxD%C11>GH%u=U9Jpcd&`AI}URCt{2oza$~ zAPj~ZffR7&)XsL_|5Z0IbFpV?60KU%lW)(?MZu8YAR@8!axu;X6gDi^Ds0_8bOpYK zTJEUWNdn{wTenZ;&N;qDJzlWzQ|@^IUNrEI_J6(id<7~G7=&_1hda4}T7?t1dHXIP zVi3-d$1Ae_eFw;s4Xyz)?uApldHdjE2q6j$I1K2-Yse+C!IhKo{zV&nyuQfVCDxcwzdJr!{_gOo`Mbk2 zDZA#J8!w>oX=Q(=wY#<#bd`>p@UD!(3yl~5#%<8>H$kAUUMzHBTw(e6I_Vs1#z!6W z%;&#x*NGJ+C&mQ+OoA3)z@B;{BXEk_uz$v6%#XPMKz(bC@re^S{_!)_kA;rVjOVun zSZ#XXM$gkM`y>9%1fKf9^Cz$3Va&UE_7{5tPp9+wlb3CezREPu{!(w~LVoU|GftZH zrcQa~aO~qb_DB4i$H)T*%((?h0{ys>S@st{5W(|&73SC!BRD=5&$2(_-%Lh^;eXYp zu#BNu_D?;ZHVnfs48t%C!!QiPFxrC6&7A}`H+L4e)ZA(C6SLrl1-w7Gzz$B`Lz&Fn znGkjYDJ=Q|eiMKb-()y}K>0n1X#$1R)fyLo6ahVJwnAP_NFT2;gn8k0r&($4myrZc zdX-1EF3q*xB~aQAMpFo0et&>8NPiptyhR{?9fLlXMznf25A>IY#y(5+*8qM;8rDpnqy`CJ2UBh!g5iE4=RCQgWGT@?XIWDWy#R`8|SDsUdFA znxx~m27d%_Gh%vRjTA%H!4MIP0cj86oDkUu(ydVi#+Z=-~>U z_0Na;Oe^igUY~lyURh3zb)#@Lf|$X1$1i*W-2!ryufbYnuPi6V@}7$41!DQ~Ag~dF zGRj0@dAt}eW6W*>z3Z->^Zc?{f)4mWs4h7b8(ag$xV&mr5%n+W-hXNYa{>p6?V?!w zpBh1JY4svyFys`l0+xwd=2w5|7T}%dS8uT#tjzUl1zDi<6>Yz4GnP8Y@q=Jl`SbFs zp)?3jsc@-p1Bt(P@Ot{LdLYP~P>vU6JAbu8?Z>=}i_&+EAZADwrSBR+%yBKsZZ*RB z1uVu@_u;w^-oa9#b3z3W^|g?{bK`qc z{#T(BzNLzv07*Ewh5VfoLNS2&nNiZ$ME*{>2*qNgyO3~fBY*ij^)|qlp|&2>O8)L; zP}%0ak^J3;G?BmCmIm^7hG7_nVHk#C7=~f2%&ji!KuUU`=%wz0l1OC7)c-#L2zGReb zQ{o~B&N&j;_kWEm6ui3)6}E@EFW2>5(*hH~C%-UTLdXX20+`|Jql1hM3%n%Eg2L}> zkST8<-)8AaKCkg{wy8bT8%5V23x0dlY8H}*yfKpqg; z+dRdtrwH~_evP?NXaGf|p_D16E{YxU3DV~I^Qcp``#j?hQvttut5Yj7{CzxzoQKEb tFBijuQ^H3A2eyx%fm4e!48t&f^AGUjH*}E(rd0p{002ovPDHLkV1g1vWN-ig diff --git a/icons/mob/augmentation/surplus_augments.dmi b/icons/mob/augmentation/surplus_augments.dmi index f06ac0c94b7d6285c4ea5218dbba5965f951b3b3..bc3e4bd73ca96dee18c1fa071a74e60062b19c2d 100644 GIT binary patch delta 1100 zcmV-S1hf0g27?KIiBL{Q4GJ0x0000DNk~Le0002s0002M2m=5B04iUf$Eu_#xGi!&v& zs2HS)i!-e#F*g;&Hbkf@B1%vDM7~e_e7A7-x5OB1>E@0002^k4R8A2dNVMF6iO&<4fwm5bm-945M}n z;m4GD12&n}@Ru+SnGuFXA7L2hyk{hnb_X&onK!T#J3$j@X z62gHLt(8faZS0Tux%u}s#++KJk{duaD?zeXIIOJI3^M79SjGd%TZx4U_j$X}Bn*1q zTtDB~C!@NEe%Drz^MEM1c^m4{{~8|vkLj~V`-{>)~*%vpYWF)h_Bus00000 z00000a3=&aYf+YS^B|07C3Kx4<(|T%*N*;na{8!+!ptwe12J;-*1nq%B|cjRJV(9F zKxX_Zj9mKe(tx!~f_aRX-41Hi`rEVw{s-Aj|Xe>(#V=@~qd#xJm4V)D6X+4~+2 zVSKTVcp1}Qgo*wEwduV~ZhMBkC%jD4t9``llx~WW-_N9kwM1pNnTCigZ`J{CORCq( z-nFZdMQv5FTJ}1stmoQGTtti@yYcH7QX{->-|P9ao@>nE+iiC$NJjiRhC#nhYWqKa z4y*UnfA06&?xWWQ0000!b?RT*PM`jz4fW|?+EADNrA_tdU)olO{-rH->0jDZhx)^| zI@BMw)uH~dtseD!9WP|GN0@@BgdPzteO5VU_-!p6d^*^zU?Ce^{k|r|W;))4#KgbL$U1IJN%J zgH!7dJvg`i(1CO75Boc}{?LJQ>kmCRvHsAB^Xd-)00000003aCynmAe21ynm^MLPA$pS5#C~Pft%40=u>X1)>53b8~YO0-`4;Cq6zt zEG#S<8X7ep%jTm2)krnX{NcWm=yAca%@DO+7vqbnTTZz-hN% zp8*FtI86@}lnNZw2hxP7 ze}{em004gg00000006KWcIZH+4OOm3Yxl95GNnrhv$UdF1vP!JIc?<|BT)xPW)GEG z36N0%Wj^VJYzUo1;biYV1w*9r&C^wRgy%*oy-j-cK00000 z0001gh}Hi$^@CA;;2uTq|C{>3pgwR%8X$S>ZjO-*>H`lObja@_-n5 RkN^t+002ovPDHLkV1lxPQR4sr diff --git a/icons/obj/robot_parts.dmi b/icons/obj/robot_parts.dmi deleted file mode 100644 index 0410cb034f3b210de6fa850f393a0c16be87d613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3031 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 WLWm=sF4_4c1NJtjt*fp4lK&0y!n17v