From b3f6e913a41a7ed71d7e9cbb773b8f545fcdb155 Mon Sep 17 00:00:00 2001 From: Casper3667 Date: Sat, 9 Oct 2021 18:24:31 +0200 Subject: [PATCH] Fixes some more cryo spawn bugs (#12594) Co-authored-by: TGW --- code/__defines/_macros.dm | 2 ++ code/game/machinery/megavend.dm | 18 ++++++++++++++++++ code/modules/client/preferences_spawnpoints.dm | 3 ++- html/changelogs/CryoFixesAgain.yml | 8 ++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/CryoFixesAgain.yml diff --git a/code/__defines/_macros.dm b/code/__defines/_macros.dm index 24e853bdbf3..10953a683e3 100644 --- a/code/__defines/_macros.dm +++ b/code/__defines/_macros.dm @@ -91,6 +91,8 @@ #define isprojectile(A) istype(A, /obj/item/projectile) +#define isclothing(A) istype(A, /obj/item/clothing) + /// General I/O helpers #define to_target(target, payload) target << (payload) #define from_target(target, receiver) target >> (receiver) diff --git a/code/game/machinery/megavend.dm b/code/game/machinery/megavend.dm index ad49edc83a4..76248f6cb58 100644 --- a/code/game/machinery/megavend.dm +++ b/code/game/machinery/megavend.dm @@ -37,8 +37,14 @@ return var/obj/item/storage/box/gearbox = new(null, TRUE) + var/list/AC + var/obj/BE + LAZYINITLIST(AC) gearbox.name = "personal possessions box" gearbox.desc = "All of the personal effects of [H.real_name], packaged neatly by the AutoDrobe." + + if(H.belt) + BE = H.belt for(var/obj/item/W in H.contents) //Strip 'em if(istype(W,/obj/item/organ)) continue @@ -46,6 +52,12 @@ continue if(!W.canremove) continue + + if(isclothing(W)) + var/obj/item/clothing/U = W + for(var/obj/item/clothing/accessory/A in U.accessories) + U.remove_accessory(H, A) + LAZYADD(AC, A) H.drop_from_inventory(W,gearbox) to_chat(H, SPAN_NOTICE(change_message)) @@ -60,6 +72,12 @@ else H.put_in_any_hand_if_possible(gearbox) + for(var/obj/item/clothing/accessory/A as anything in AC) + H.remove_from_mob(A) + H.equip_to_slot(A, slot_tie, FALSE) + LAZYREMOVE(AC, A) + if(BE) + H.equip_to_slot_if_possible(BE, slot_belt, disable_warning = TRUE) return /obj/machinery/megavendor/vendor diff --git a/code/modules/client/preferences_spawnpoints.dm b/code/modules/client/preferences_spawnpoints.dm index 1d680264d44..5f93b05a291 100644 --- a/code/modules/client/preferences_spawnpoints.dm +++ b/code/modules/client/preferences_spawnpoints.dm @@ -46,7 +46,8 @@ if(!C.occupant) C.set_occupant(victim, 1) victim.Sleeping(3) - to_chat(victim, SPAN_NOTICE("You are slowly waking up from the cryostasis aboard [current_map.full_name]. It might take a few seconds.\nYour workplace attire is waiting for you at the nearest autodrobe vendor.")) + to_chat(victim, SPAN_NOTICE("You are slowly waking up from the cryostasis aboard [current_map.full_name]. It might take a few seconds.")) + to_chat(victim, FONT_LARGE("Your workplace attire is waiting for you at the nearest autodrobe vendor.")) return /datum/spawnpoint/cyborg diff --git a/html/changelogs/CryoFixesAgain.yml b/html/changelogs/CryoFixesAgain.yml new file mode 100644 index 00000000000..b1439d3ec62 --- /dev/null +++ b/html/changelogs/CryoFixesAgain.yml @@ -0,0 +1,8 @@ +author: TheGreyWolf + +delete-after: True + +changes: + - bugfix: "Belts will now properly stay on when using the autodrobe." + - bugfix: "Accessories will now correctly transfer to the uniform when using the autodrobe." + - tweak: "The text guiding one to use the autodrobe when spawning at cryo now stands out more."