diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index ac297b6ef8e..2eff528db17 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -186,6 +186,7 @@ put_in(L) if(user.pulling == L) user.stop_pulling() + QDEL_LIST_CONTENTS(L.grabbed_by) return TRUE /obj/machinery/dna_scannernew/attackby(obj/item/I, mob/user, params) diff --git a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm index 0b83da81f33..2322549036a 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm @@ -38,6 +38,7 @@ return TRUE visible_message("[user] puts [target] into [src].") + QDEL_LIST_CONTENTS(target.grabbed_by) target.forceMove(src) occupant = target flash = "Machine ready." diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index e14110c44de..7a4ae26d9cc 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -502,6 +502,7 @@ add_fingerprint(user) if(user.pulling == L) user.stop_pulling() + QDEL_LIST_CONTENTS(L.grabbed_by) SStgui.update_uis(src) /obj/machinery/sleeper/proc/permitted_check(atom/movable/O, mob/user) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 4c8e2195ee1..509349e1e60 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -148,6 +148,7 @@ else visible_message("[user] puts [H] into the body scanner.") + QDEL_LIST_CONTENTS(H.grabbed_by) H.forceMove(src) occupant = H playsound(src, 'sound/machines/podclose.ogg', 5) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index eb528ea500d..02bc0b34b19 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -576,6 +576,7 @@ return if(!E) return + QDEL_LIST_CONTENTS(E.grabbed_by) E.forceMove(src) time_till_despawn = initial(time_till_despawn) / willing_factor icon_state = occupied_icon_state diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 6d9740b90d1..9ac05ebf036 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -230,6 +230,7 @@ return target.stop_pulling() + QDEL_LIST_CONTENTS(target.grabbed_by) target.forceMove(src) occupant = target diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 24739663be9..73b05491d0c 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -449,15 +449,18 @@ return TRUE /obj/machinery/suit_storage_unit/proc/put_in(mob/user, mob/living/target) - if(do_mob(user, target, 30)) - if(occupant || helmet || suit || storage) - return - if(target == user) - user.visible_message("[user] slips into [src] and closes the door behind [user.p_them()]!", "You slip into [src]'s cramped space and shut its door.") - else - target.visible_message("[user] pushes [target] into [src] and shuts its door!", "[user] shoves you into [src] and shuts the door!") - close_machine(target) - add_fingerprint(user) + if(!do_mob(user, target, 30)) + return + if(occupant || helmet || suit || storage) + return + if(target == user) + user.visible_message("[user] slips into [src] and closes the door behind [user.p_them()]!", "You slip into [src]'s cramped space and shut its door.") + else + target.visible_message("[user] pushes [target] into [src] and shuts its door!", "[user] shoves you into [src] and shuts the door!") + close_machine(target) + if(occupant == target) + QDEL_LIST_CONTENTS(target.grabbed_by) + add_fingerprint(user) /obj/machinery/suit_storage_unit/proc/cook() if(uv_cycles) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 13f356d4a6d..f35ceb6ef5d 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -156,6 +156,7 @@ add_attack_logs(user, L, "put into a cryo cell at [COORD(src)].", ATKLOG_ALL) if(user.pulling == L) user.stop_pulling() + QDEL_LIST_CONTENTS(L.grabbed_by) SStgui.update_uis(src) return TRUE diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 51b76dcf5e6..ae1de2d18b0 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -157,6 +157,7 @@ user.visible_message("[user] stuffs [victim] into [src]!") else return + QDEL_LIST_CONTENTS(victim.grabbed_by) victim.forceMove(src) occupant = victim diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index b455b844486..50bc20252eb 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -221,6 +221,7 @@ add_attack_logs(user, target, "Disposal'ed", !!target.ckey ? null : ATKLOG_ALL) else return + QDEL_LIST_CONTENTS(target.grabbed_by) target.forceMove(src) for(var/mob/C in viewers(src))