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) . = ..()