From e01a0e48b8a59943144bb419d977f951bc6264e4 Mon Sep 17 00:00:00 2001 From: Wildkins Date: Thu, 8 Dec 2022 11:11:55 -0500 Subject: [PATCH] Fix custom borg sprites (#15253) --- code/__defines/mobs.dm | 1 + .../modules/mob/living/silicon/robot/robot.dm | 21 +++++++++++++----- .../mob/living/silicon/robot/robot_helpers.dm | 2 +- html/changelogs/johnwildkins-robits.yml | 6 +++++ icons/mob/custom_synthetic.dmi | Bin 810783 -> 810755 bytes 5 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 html/changelogs/johnwildkins-robits.yml diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 887946c826e..4ef15138b12 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -449,6 +449,7 @@ #define ROBOT_PANEL_CELL "cell" #define ROBOT_PANEL_NO_CELL "no cell" +#define ROBOT_ICON "iconpath" #define ROBOT_CHASSIS "chassistype" #define ROBOT_PANEL "paneltype" #define ROBOT_EYES "eyetype" diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 5bc17fcc4bb..c3289c6c076 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -287,8 +287,14 @@ if(custom_sprite) var/datum/custom_synth/sprite = robot_custom_icons[name] var/list/valid_states = icon_states(CUSTOM_ITEM_SYNTH) - if("[sprite.synthicon]-[mod_type]" in valid_states) - module_sprites["Custom"] = "[sprite.synthicon]-[mod_type]" + var/custom_iconpath = "[sprite.synthicon]-[mod_type]" + if(custom_iconpath in valid_states) + module_sprites["Custom"] = list( + ROBOT_CHASSIS = custom_iconpath, + ROBOT_EYES = custom_iconpath, + ROBOT_PANEL = custom_iconpath, + ROBOT_ICON = CUSTOM_ITEM_SYNTH + ) icon = CUSTOM_ITEM_SYNTH icontype = "Custom" else @@ -378,7 +384,7 @@ custom_name = newname updatename() - if(custom_sprite) + if(custom_sprite && module) set_module_sprites(module.sprites) // custom synth icons SSrecords.reset_manifest() @@ -1084,8 +1090,11 @@ else var/list/options = list() for(var/i in module_sprites) // Gottverdamnt. - var/image/radial_button = image(icon = src.icon, icon_state = module_sprites[i][ROBOT_CHASSIS]) - radial_button.overlays.Add(image(icon = src.icon, icon_state = "[module_sprites[i][ROBOT_EYES]]-eyes_help")) + var/icon/btn_icon = module_sprites[i][ROBOT_ICON] + if(!btn_icon) + btn_icon = initial(icon) + var/image/radial_button = image(btn_icon, icon_state = module_sprites[i][ROBOT_CHASSIS]) + radial_button.overlays.Add(image(btn_icon, icon_state = "[module_sprites[i][ROBOT_EYES]]-eyes_help")) options[i] = radial_button icontype = show_radial_menu(src, src, options, radius = 42, tooltips = TRUE) @@ -1093,6 +1102,8 @@ return icon_state = module_sprites[icontype][ROBOT_CHASSIS] + if(!module_sprites[icontype][ROBOT_ICON]) + icon = initial(icon) icon_selected = TRUE setup_icon_cache() diff --git a/code/modules/mob/living/silicon/robot/robot_helpers.dm b/code/modules/mob/living/silicon/robot/robot_helpers.dm index 3ee58e7cdc0..13629f8a364 100644 --- a/code/modules/mob/living/silicon/robot/robot_helpers.dm +++ b/code/modules/mob/living/silicon/robot/robot_helpers.dm @@ -28,7 +28,7 @@ var/eye_layer = src.layer if(lights_on && layer == MOB_LAYER) // in case you're hiding. so eyes don't go through tables. eye_layer = EFFECTS_ABOVE_LIGHTING_LAYER //make them glow in the dark if the lamp is on - var/eyeprefix = custom_sprite ? module_sprites[icontype] : module_sprites[icontype][ROBOT_EYES] + var/eyeprefix = module_sprites[icontype][ROBOT_EYES] if(speed == -2) // For combat drones with the mobility module. cached_eye_overlays = list( I_HELP = image(icon, "[eyeprefix]-roll-eyes_help", layer = eye_layer), diff --git a/html/changelogs/johnwildkins-robits.yml b/html/changelogs/johnwildkins-robits.yml new file mode 100644 index 00000000000..fb385729ba5 --- /dev/null +++ b/html/changelogs/johnwildkins-robits.yml @@ -0,0 +1,6 @@ +author: JohnWildkins + +delete-after: True + +changes: + - bugfix: "Custom borg sprites can now be selected again." diff --git a/icons/mob/custom_synthetic.dmi b/icons/mob/custom_synthetic.dmi index 230f5bacfac5856c739e9ed2cba7ff7dcf89f832..fab131c8d65489722f65fc409861650d8c2d79a2 100644 GIT binary patch delta 2403 zcmV-p37qzyzA=NoF_0tyCXpo|f69hr$7yo#VRsuWibZ?a1$MEgg0bmXs4N+joNW5_ zduS9>GD*D|N`V0j4i5q54TnPxIUEhi_rb4szkmK3eERZv{3unC4#$T+nnrsd~ewg`PAKArW^^2w&d?U)ORA%(8CQKAwh4CVshx2d|&ck>S&YMgo zDmQ;NnFxMK_gm3#wGT?{ebE>AN_AM3NuJRW zR2dCeT+&pkWF=A>HCe(s4wmjNdq^@VRgyiB0aO`Jp|}zcMVYS?Sc?@oS&a=KEZ~C|Jg0;iW3V!CWP3>U2wf7x27HI14qTpfoG zH@U{=low+1fUCh^(ek~__9Bz%hZPYpp#nZUq0{&7UX+t!o5)n_P<@fVI$1HzJje@& zhC)=hJM1h1&TAfxb6My8qG&u)@+ryICnACFkt~!j6U}Z<^h^KMD*|N_MY7BBMHnHU z)!H&1?ea&tlUeEFf7CW`T;tEk$vT(-PWkR$l&C5k#3V&P_Ja!Fl@i!<4y2a24xf7KmhynCZc`ceV-Jo zLsH@+wh18Yv@K9%yIn!SHK$I_5Rn}0u7IeE)SzdGNDuqGA~El!PR@~#8VNlP5NsW3 z(6fdjHRxC&f8j_)6Tpy?@zLP5f#~Gh1aOo|50Yy3hPhEqfY01+;l-NWD_)e%v;osa zb2{1szYac1?8F4>qD@^zJYM<1Tl*6P$9@@KtBx(--HURf^3-c54YRXis1i3Lb`F_s zEEt-m#_=m4#Ve zl!`aR@do)G@~>rSKAh^dZ7)xn<%p6NB8g}%BhK2F|dr82D{c?kLrV`IW}v9$;{h6 zI5@mr+lDjhEpT@Ob`}`a7&vPolhR`h7(%$xjz;2^6`GX%VgfNFW*%a%;9z!Notz;iIlHd{!l|ZB07FPds_7Am zB_THGSwd2i5Gy2{HrE6&q=ctJBNWNnf31`AM5JZyzK&%uYqvqqu^MvL?o*y_c1f1( z^$T5e+KZCTP((-G|%^S@it0kc$RF9y0sH;YhJ;}a418$f3V^< z9sA5Vn9fixyfjUR^F7$VqG5F#%1|uDY&n=037-e^HfZ?x*kI8^x$t5!9hynEW@N_G z+c2Kq+5+1fB{TjvbWS@dQPN?S7|MkgyY*lb1?d7UV6Nb&Y;c-O`am(v7DKu4;xHf3 zui)htvxI{)jR(UX%7qu3?O;~Tf5`;nhy{KX9qf517ha5pgBdd`|CS>Znm{m^^H46l zm@NmiXGZ=nODHUhZm{N|TzD}W4(w?&GQ>Gj!AX*XK@a7^i^X&>lcroMQU?IHgfswP z4YW&H=C#KSHN4|$#+K6-?k@x_%(Y`TaTHd6W-f2=g@Jx7n_mwt>$j5+e>U*l_W&>S zeF=aS{yYKnQ3`vJ2w{c4tb(-?dW!(?-O)l54EAIX43yYEZ*W+}`J7eF!zQ6+<9n79?x4gp&-e4s_6JPwRqQowm5Fi+F z0%;F;R0HQZTU!npcQ7iSvvu+YgI}wr&!LY+4r~;cGG@=&~Gd- z0+9;~>cCFOYk`k>7*FT6q5Z;*e1(JwM`$dVDgscGo65T$#|kDinv(X8LdeZ$UbbUL z6BIzoKrf3iR+jfb-xF#yNLsdw3!ku*EUK2kyS!;w;m(Sz>0aX;304+h?34?D5hi?f1hi?f2hi?f3hi?f4hi?f5hi?f6hi?f7hi?f8 Vhi?f9hi?fAhi?fBw{HmyuvPm>gDC(2 delta 2431 zcmV-_34r#4zA>M^F_0tyLXjmPf6|6z$7yoNVRsuWibZ?q0=w8#z*uxFRF(`%PBy*l zukWFjP01wnhLi#W791V|%o`4e9CA1slJA3G?|=XNHTd-9^Y~fFBFVGhF1VV8iXgpd;z7a)m7etHke<&6ye+}+} z8Jn?)&9uKrWi?ste*Dn$yFRjuSoI613Vg-OwUB!Bts+dwu2{5Sb2euSHfPa-&6`Xn zOUaA1pl)Gh_Gclifqd>kp>@@RK$dg`0#>G*_%gRPKtFRQl(GTh5hPemDKYf zFBS?4(c)&eF$g%Xc`??d-0c^JLq_-mNrPJ#%EY6#9LsVyB0J=lST=t<)Rb%qJ8@K*@x&;ZmFWq_^`EPn@z zz;+Jp#3VI9`w&!ke%(g1<5jn_^%W-9P|4^(LZy z-~E^r%Ux39Ben@3?6eI~WV>BK!8NB&?jRyLz+C}R7pXz-AR;~Tb3kI=OP$4#|jBYDw+TXDbbLEu7T*}+XT2MlO88k>|dRawu=z9PeL?>0Gv%e9QGJ3$ca+ZcMlTg%3_>&CFY4IzhX_3E%}d@-zd zhfrhhe?3$>h2-;u&XsI?J}UU{mwkM6UEU(ToJ&?phsX=pY9MW6p^d3V}Zw)oQd ze{>ZX1;cs@%uI1sW-lg{Wa`n~^Xw&ykaTlOG9mluBb9O2mSl+xo=-2q5lq;cppd4I zO8e-pd@C|@NX#BY)H5@N%bb{*LTM2Vb>9pfBik`zr4ixu`mhkq*le*Fe~;2U z-`2%jNs-~1u{G+}PQ0zT0Uy~=hH_!WZaU_fb1bE=y){L$S5jo|U(8+FNePh-v&2v?yqK*A znYww$)Ge}5!sVXhpt zi9%NW>AAeYM+W*iZ1;L-iNBqEvw^R?2Y8{+N&u|zR|%l+QrJU82rK+S6|9xe6BLN< z(Wgy_-|>7IF7wqYA*8l9=-baWXdfQabFrLruyL{VlJYp&RT#2xI%DB9+MgSU*eql- z)8lA0?rrVtxE`Y>{Ohp}f5gt%_pdK7!sTC)Jzb|e{{5>A&G74>rq&s%_Hwg#9R%HV zR~w=~$J#_&=7)b3gv7BvD(g{scHg8s{{5>BjT89SWOEI>;@-c$urR5AJyxf@Gxq)K z3p~To!R%>w%R8*#4ORj)_r<>|QuyKo1B4?^G3`N*YV5pbvEit3e+L8eHH(us82?H& zeU5%Ccu=DT12E0&Gdy_MH;6#YO5qt!Bc>EUJ8hk9yO~(W$k?4WMqH+O>v?g*H8otO zIrwn(-~aq||LrU3VYem(uC>#=|*}7{JBG zsW;l_ku*EUK2<^VPBIM-elHZ)v;V4TMmRSH$J4|DcKM7DfR_!u( z5?@)XaP%iI^+<<0yP>DsE&Vx7J(6O%=;t4Zp5A2hUXn!YJXW!TqLF=L?Q$-e#!Jax zQsBb9c4F-PMwQP)EV$BHhJ8s5VZHz?8ov+jzkUinefd28AK(0pCo+O|JcCmShf@gw xhf@gxhf@gyhf@gzhf@g!hf@g#hf@g$hf@g%hf@g&hf@g(hf@g)w^IoWuvLO2kYoS=