diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 426d77202b0..b5f14893e9a 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -76,7 +76,7 @@
src.temp += " SCNR-ERROR"
if (isnull(src.pod1) && wantspod)
src.temp += " POD1-ERROR"
- else
+ else if (wantspod)
src.pod1.connected = src
if (src.temp == "")
diff --git a/code/game/objects/closets.dm b/code/game/objects/closets.dm
index e1fd7c33405..31a405f034e 100644
--- a/code/game/objects/closets.dm
+++ b/code/game/objects/closets.dm
@@ -126,6 +126,8 @@
src.welded = 1
src.loc = P
O.amount -= 3
+ else
+ user << "\blue You need more paper."
else if(src.opened)
if(istype(W, /obj/item/weapon/grab))
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm
index 4a8d3c3b532..7b0a74cdf44 100644
--- a/code/game/objects/items/item.dm
+++ b/code/game/objects/items/item.dm
@@ -176,6 +176,15 @@
/obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/packageWrap))
+ if(istype(src,/obj/item/weapon/storage) && istype(src.loc, /mob)) //Put it into the bag
+ return
+ if(istype(src.loc,/obj/item/weapon/storage) || istype(src.loc,/obj/item/clothing/suit/storage/)) //Taking stuff out of storage duplicates it.
+ user << "\blue Do not do this, it is broken as all hell. Take it out of the container first."
+ return
+ for(var/obj/item/T in user) //Lets remove it from their inventory
+ if(T == src)
+ user.remove_from_mob(T)
+ break
var/obj/item/weapon/packageWrap/O = W
if (O.amount > 1)
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(src.loc))
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index a1520ed1e95..6786e12780e 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -502,6 +502,7 @@
// now everything inside the disposal gets put into the holder
// note AM since can contain mobs or objs
+ var/tagOverride = 0
for(var/atom/movable/AM in D)
AM.loc = src
/*if(istype(AM, /mob/living/carbon/human))
@@ -516,7 +517,12 @@
var/obj/item/smallDelivery/T = AM
src.destinationTag = T.sortTag
else if (!src.destinationTag)
- src.destinationTag = "Mail Office"
+ src.destinationTag = null
+ else if (istype(AM, /mob)) //If there is a mob somewhere in there....
+ tagOverride = 1
+ if(tagOverride)
+ if(prob(50))
+ src.destinationTag = null //Then 50% chance of going to the mail room!
// start the movement process
@@ -966,6 +972,8 @@
for(var/i, i <= backType.len, i++)
if(sortTag == src.backType[i])
return negdir
+ else if (!sortTag && !mailsort)
+ return posdir
if(fromdir != sortdir) // probably came from the negdir
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index 2422e24c41c..4e208912fb5 100644
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -130,17 +130,7 @@
user.attack_log += text("\[[time_stamp()]\] Has used [src.name] on \ref[target]")
- if (istype(target, /obj/item))
- if(istype(target,/obj/item/weapon/storage) || istype(target,/obj/item/clothing/suit/storage/)) //Put it into the bag
- return
- var/obj/item/temptrgt = target
- if(istype(temptrgt.loc,/obj/item/weapon/storage) || istype(temptrgt.loc,/obj/item/clothing/suit/storage/)) //Taking stuff out of storage duplicates it.
- user << "\blue Do not do this, it is broken as all hell. Take it out of the container first."
- return
- for(var/obj/item/T in user) //Lets remove it from their inventory
- if(T == src)
- user.remove_from_mob(target)
- break
+/* if (istype(target, /obj/item))
var/obj/item/O = target
if (src.amount > 1)
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up!
@@ -162,13 +152,13 @@
var/obj/effect/bigDelivery/P = new /obj/effect/bigDelivery(get_turf(O.loc))
P.wrapped = O
O.close()
-// O.welded = 1 //You should be able to burst out of the package, now. (maybe)
+ O.welded = 1
O.loc = P
src.amount -= 3
else
- user << "\blue You need more paper."
+ user << "\blue You need more paper." */
- else
+ if(!(istype (target, /obj/structure/closet) || istype(target, /obj/structure/closet/crate) || istype(target, /obj/item)))
user << "\blue The object you are trying to wrap is unsuitable for the sorting machinery!"
if (src.amount <= 0)
new /obj/item/weapon/c_tube( src.loc )