diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 1c9ea1edcb..a9056975b1 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -393,13 +393,14 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
return
if(over == src)
return usr.client.Click(src, src_location, src_control, params)
- var/list/directaccess = usr.DirectAccess()
+ var/list/directaccess = usr.DirectAccess() //This, specifically, is what requires the copypaste. If this were after the adjacency check, then it'd be impossible to use items in your inventory, among other things.
+ //If this were before the above checks, then trying to click on items would act a little funky and signal overrides wouldn't work.
if((usr.CanReach(src) || (src in directaccess)) && (usr.CanReach(over) || (over in directaccess)))
if(!usr.get_active_held_item())
usr.UnarmedAttack(src, TRUE)
if(usr.get_active_held_item() == src)
melee_attack_chain(usr, over)
- return
+ return TRUE //returning TRUE as a "is this overridden?" flag
if(!Adjacent(usr) || !over.Adjacent(usr))
return // should stop you from dragging through windows
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index ee85005c61..63c9df9c4e 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -104,7 +104,7 @@
/obj/item/defibrillator/MouseDrop(obj/over_object)
. = ..()
- if(ismob(loc))
+ if(!. && ismob(loc) && loc == usr)
var/mob/M = loc
if(!M.incapacitated() && istype(over_object, /obj/screen/inventory/hand))
var/obj/screen/inventory/hand/H = over_object
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index 9d1a1ff4f9..b107010991 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -151,12 +151,13 @@
add_overlay("[locked ? "" : "un"]locked")
/obj/item/pet_carrier/MouseDrop(atom/over_atom)
- . = ..()
if(isopenturf(over_atom) && usr.canUseTopic(src, BE_CLOSE, ismonkey(usr)) && usr.Adjacent(over_atom) && open && occupants.len)
usr.visible_message("[usr] unloads [src].", \
"You unload [src] onto [over_atom].")
for(var/V in occupants)
remove_occupant(V, over_atom)
+ else
+ return ..()
/obj/item/pet_carrier/proc/load_occupant(mob/living/user, mob/living/target)
if(pet_carrier_full(src))
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index c5b62f0f33..0fcc034371 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -864,10 +864,9 @@
return ..()
/obj/item/toy/cards/deck/MouseDrop(atom/over_object)
- . = ..()
var/mob/living/M = usr
if(!istype(M) || usr.incapacitated() || usr.lying)
- return
+ return ..()
if(Adjacent(usr))
if(over_object == M && loc != M)
M.put_in_hands(src)
@@ -879,7 +878,9 @@
to_chat(usr, "You pick up the deck.")
else
- to_chat(usr, "You can't reach it from here!")
+ . = ..()
+ if(!.)
+ to_chat(usr, "You can't reach it from here!")
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index d142699a21..f8f1a67e5a 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -62,7 +62,7 @@
if(ismecha(M.loc)) // stops inventory actions in a mech
return
- if(!M.incapacitated() && loc == M && istype(over_object, /obj/screen/inventory/hand))
+ if(!. && !M.incapacitated() && loc == M && istype(over_object, /obj/screen/inventory/hand))
var/obj/screen/inventory/hand/H = over_object
if(M.putItemFromInventoryInHandIfPossible(src, H.held_index))
add_fingerprint(usr)
diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm
index ccc9427349..0f57d53111 100644
--- a/code/modules/paperwork/paper_cutter.dm
+++ b/code/modules/paperwork/paper_cutter.dm
@@ -91,7 +91,6 @@
update_icon()
/obj/item/papercutter/MouseDrop(atom/over_object)
- . = ..()
var/mob/M = usr
if(M.incapacitated() || !Adjacent(M))
return
@@ -102,6 +101,10 @@
else if(istype(over_object, /obj/screen/inventory/hand))
var/obj/screen/inventory/hand/H = over_object
M.putItemFromInventoryInHandIfPossible(src, H.held_index)
+
+ else
+ . = ..()
+
add_fingerprint(M)
/obj/item/paperslip
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index 7318af0e32..6fc65e1771 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -41,7 +41,6 @@
..()
/obj/item/paper_bin/MouseDrop(atom/over_object)
- . = ..()
var/mob/living/M = usr
if(!istype(M) || M.incapacitated() || !Adjacent(M))
return
@@ -52,6 +51,9 @@
else if(istype(over_object, /obj/screen/inventory/hand))
var/obj/screen/inventory/hand/H = over_object
M.putItemFromInventoryInHandIfPossible(src, H.held_index)
+
+ else
+ . = ..()
add_fingerprint(M)
diff --git a/modular_citadel/code/modules/reagents/objects/clothes.dm b/modular_citadel/code/modules/reagents/objects/clothes.dm
index b601b6a899..4707d5b460 100644
--- a/modular_citadel/code/modules/reagents/objects/clothes.dm
+++ b/modular_citadel/code/modules/reagents/objects/clothes.dm
@@ -34,7 +34,6 @@
if(src == C.head)
C.emote("me",1,"tips their hat.",TRUE)
return
- ..()
/obj/item/clothing/head/hattip/equipped(mob/M, slot)
. = ..()