diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 709d944ec5f..d756b3d2d3b 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -202,8 +202,13 @@ forceMove(find_turf_of.loc) return if(isbelly(find_turf_of.loc)) // Do not eject to turf while eaten - forceMove(find_turf_of.loc) - return + var/can_belly_pref = TRUE + if(ismob(src)) + var/mob/M = src + can_belly_pref = M.can_be_drop_prey + if(can_belly_pref) + forceMove(find_turf_of.loc) + return forceMove(get_turf(find_turf_of)) //To be called from things that spill objects on the floor. diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 579d239bf46..db62d56ea7c 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -322,7 +322,7 @@ /obj/item/clothing/gloves/Destroy() for(var/mob/living/M in contents) - M.container_escape_move(src) + M.try_move_to_turf(src) if(ring) QDEL_NULL(ring) if(gloves) @@ -414,13 +414,13 @@ var/mob/living/carbon/human/H = user if(gloves) //We have nested gloves! Gloves under our gloves! if(!H.equip_to_slot_if_possible(gloves, slot_gloves)) - gloves.container_escape_move(src) + gloves.try_move_to_turf(src) if(ring) gloves.ring = ring src.gloves = null else if(ring && istype(H)) //We do NOT have gloves under our gloves but have a ring under our glove instead! if(!H.equip_to_slot_if_possible(ring, slot_gloves)) - ring.container_escape_move(src) + ring.try_move_to_turf(src) src.ring = null /obj/item/clothing/gloves @@ -858,7 +858,7 @@ for(var/mob/M in src) if(isvoice(M)) //Don't knock voices out! continue - M.container_escape_move(user) + M.try_move_to_turf(user) to_chat(M, span_warning("[user] shakes you out of \the [src]!")) to_chat(user, span_notice("You shake [M] out of \the [src]!")) @@ -872,7 +872,7 @@ to_chat(micro, span_notice("You start to climb out of [src]!")) if(do_after(micro, 5 SECONDS, target = src)) to_chat(micro, span_notice("You climb out of [src]!")) - micro.container_escape_move(src) + micro.try_move_to_turf(src) return var/escape_message_micro = "You start to climb out of [src]!" @@ -1373,7 +1373,7 @@ action_circuit = null // Will get deleted by qdel-ing the IC assembly. QDEL_NULL(IC) for(var/mob/living/M in contents) - M.container_escape_move(src) + M.try_move_to_turf(src) wearer = null return ..()