From bfde5ac0574614855469b803ccf0e8b6bcd2178e Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Sat, 10 Feb 2018 22:06:12 -0500 Subject: [PATCH] [s] Fixes altclick exploits (#35456) * Fixes altclick exploits * Removed free spam, fixes monkey altclicks * replaced named args with proper defines * More cleanup and fixes * Better yet * Another exploit fix * pet carrier fix --- code/_onclick/ai.dm | 4 ++++ code/datums/components/material_container.dm | 2 +- code/datums/components/rotation.dm | 8 ++++---- code/game/machinery/computer/apc_control.dm | 2 +- code/game/machinery/computer/buildandrepair.dm | 2 +- code/game/machinery/defibrillator_mount.dm | 4 ++-- code/game/machinery/deployable.dm | 4 ++-- code/game/machinery/hologram.dm | 4 ---- code/game/machinery/launch_pad.dm | 4 ++-- code/game/mecha/mecha_actions.dm | 2 +- code/game/objects/items/cards_ids.dm | 7 ++++--- code/game/objects/items/crayons.dm | 2 +- code/game/objects/items/devices/geiger_counter.dm | 2 +- code/game/objects/items/devices/gps.dm | 4 +++- code/game/objects/items/extinguisher.dm | 2 ++ code/game/objects/items/flamethrower.dm | 2 +- code/game/objects/items/pet_carrier.dm | 4 ++-- code/game/objects/items/stacks/stack.dm | 7 ++----- code/game/objects/items/storage/belt.dm | 2 +- code/game/objects/items/storage/fancy.dm | 4 ++-- code/game/objects/items/storage/lockbox.dm | 2 +- code/game/objects/items/toys.dm | 2 +- code/game/objects/items/twohanded.dm | 2 +- code/game/objects/structures/beds_chairs/bed.dm | 5 +---- code/game/objects/structures/beds_chairs/chair.dm | 6 +++--- .../objects/structures/crates_lockers/closets.dm | 3 +-- code/game/objects/structures/extinguisher.dm | 2 +- code/game/objects/structures/guncase.dm | 2 +- code/game/objects/structures/morgue.dm | 3 +-- code/game/objects/structures/reflector.dm | 5 ++--- .../clockcult/clock_items/clockwork_slab.dm | 2 +- .../antagonists/devil/true_devil/_true_devil.dm | 6 +++--- .../antagonists/wizard/equipment/artefact.dm | 2 +- code/modules/assembly/infrared.dm | 7 ++----- code/modules/atmospherics/machinery/airalarm.dm | 3 +-- code/modules/clothing/clothing.dm | 4 ++-- code/modules/clothing/head/jobs.dm | 2 +- code/modules/clothing/head/soft_caps.dm | 5 ++--- code/modules/clothing/masks/breath.dm | 3 +-- code/modules/clothing/suits/toggles.dm | 3 +-- code/modules/clothing/under/accessories.dm | 2 +- .../kitchen_machinery/microwave.dm | 2 +- code/modules/games/cas.dm | 4 ++-- .../integrated_electronics/core/assemblies.dm | 2 +- .../core/integrated_circuit.dm | 2 +- .../integrated_electronics/core/printer.dm | 2 +- code/modules/mining/abandoned_crates.dm | 4 ++-- code/modules/mining/equipment/marker_beacons.dm | 14 ++++---------- code/modules/mob/living/carbon/human/human.dm | 8 ++++---- code/modules/mob/living/living.dm | 7 ++++--- code/modules/mob/living/silicon/pai/pai.dm | 2 ++ code/modules/mob/living/silicon/robot/robot.dm | 6 +++--- .../mob/living/simple_animal/simple_animal.dm | 12 ++++++------ code/modules/paperwork/paperplane.dm | 15 ++++++--------- code/modules/paperwork/pen.dm | 6 +++--- code/modules/paperwork/photocopier.dm | 2 +- code/modules/power/apc.dm | 3 +-- .../modules/projectiles/guns/ballistic/shotgun.dm | 2 +- .../reagents/chemistry/machinery/chem_master.dm | 10 +++++----- code/modules/vehicles/ridden.dm | 2 +- 60 files changed, 115 insertions(+), 133 deletions(-) diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index ac034657733..14c48fbcaac 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -176,6 +176,10 @@ toggle_on() add_fingerprint(usr) +/* Holopads */ +/obj/machinery/holopad/AIAltClick(mob/living/silicon/ai/user) + hangup_all_calls() + // // Override TurfAdjacent for AltClicking // diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 548cdb8f976..830f2d9a42f 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -78,7 +78,7 @@ requested_amount = input(user, "How much do you want to insert?", "Inserting [S.singular_name]s") as num|null if(isnull(requested_amount) || (requested_amount <= 0)) return - if(QDELETED(I) || QDELETED(user) || QDELETED(src) || parent != current_parent || !user.canUseTopic(current_parent) || !user.is_holding(I) || !user.Adjacent(current_parent)) + if(QDELETED(I) || QDELETED(user) || QDELETED(src) || parent != current_parent || !user.canUseTopic(current_parent, BE_CLOSE) || !user.is_holding(I)) return if(!user.temporarilyRemoveItemFromInventory(I)) to_chat(user, "[I] is stuck to you and cannot be placed into [parent].") diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index 23d5fda5d43..0a985a69cce 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -12,11 +12,11 @@ var/rotation_flags = NONE var/default_rotation_direction = ROTATION_CLOCKWISE - + /datum/component/simple_rotation/Initialize(rotation_flags = NONE ,can_user_rotate,can_be_rotated,after_rotation) if(!ismovableatom(parent)) return COMPONENT_INCOMPATIBLE - + //throw if no rotation direction is specificed ? src.rotation_flags = rotation_flags @@ -25,7 +25,7 @@ src.can_user_rotate = can_user_rotate else src.can_user_rotate = CALLBACK(src,.proc/default_can_user_rotate) - + if(can_be_rotated) src.can_be_rotated = can_be_rotated else @@ -89,7 +89,7 @@ after_rotation.Invoke(user,rotation_type) /datum/component/simple_rotation/proc/default_can_user_rotate(mob/living/user, rotation_type) - if(!istype(user) || !user.Adjacent(parent) || user.incapacitated()) + if(!istype(user) || !user.canUseTopic(parent, BE_CLOSE, NO_DEXTERY)) to_chat(user, "You can't do that right now!") return FALSE return TRUE diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index 222e8725873..a5d7296ce61 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -94,7 +94,7 @@ /obj/machinery/computer/apc_control/Topic(href, href_list) if(..()) return - if(!usr || !usr.canUseTopic(src) || usr.incapacitated() || stat || QDELETED(src)) + if(!usr || !usr.canUseTopic(src) || stat || QDELETED(src)) return if(href_list["authenticate"]) var/obj/item/card/id/ID = usr.get_active_held_item() diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 9053777da58..ae6ab9757c9 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -134,7 +134,7 @@ /obj/structure/frame/computer/AltClick(mob/user) ..() - if(!in_range(src, user) || !isliving(user) || user.incapacitated()) + if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return if(anchored) diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm index c9b96701912..7f66045a818 100644 --- a/code/game/machinery/defibrillator_mount.dm +++ b/code/game/machinery/defibrillator_mount.dm @@ -118,8 +118,8 @@ update_icon() return TRUE -/obj/machinery/defibrillator_mount/AltClick(mob/living/user) - if(!user.Adjacent(src) || !istype(user)) +/obj/machinery/defibrillator_mount/AltClick(mob/living/carbon/user) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return if(!defib) to_chat(user, "It'd be hard to remove a defib unit from a mount that has none.") diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index de9455a7cb6..130d2761843 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -135,8 +135,8 @@ ..() to_chat(user, "Alt-click to toggle modes.") -/obj/item/grenade/barrier/AltClick(mob/living/user) - if(!istype(user) || user.incapacitated()) +/obj/item/grenade/barrier/AltClick(mob/living/carbon/user) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return toggle_mode(user) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index b1f2f7d2952..d1f1774c8b0 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -137,10 +137,6 @@ Possible to do for anyone motivated enough: return ..() -/obj/machinery/holopad/AltClick(mob/living/carbon/human/user) - if(isAI(user)) - hangup_all_calls() - return /obj/machinery/holopad/interact(mob/living/carbon/human/user) //Carn: Hologram requests. if(!istype(user)) diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index d66427b9bc8..e00e172e686 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -168,10 +168,10 @@ /obj/machinery/launchpad/briefcase/MouseDrop(over_object, src_location, over_location) . = ..() - if(over_object == usr && Adjacent(usr)) + if(over_object == usr) if(!briefcase || !usr.can_hold_items()) return - if(usr.incapacitated()) + if(!usr.canUseTopic(src, BE_CLOSE, ismonkey(usr))) to_chat(usr, "You can't do that right now!") return usr.visible_message("[usr] starts closing [src]...", "You start closing [src]...") diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index 480c24b87fa..eee71818c5d 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -138,7 +138,7 @@ chassis.toggle_strafe() /obj/mecha/AltClick(mob/living/user) - if(user == occupant) + if((user == occupant) && user.canUseTopic(src)) toggle_strafe() /obj/mecha/proc/toggle_strafe() diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 75f280b656c..ec03983b097 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -121,10 +121,11 @@ update_label() /obj/item/card/id/attack_self(mob/user) - user.visible_message("[user] shows you: [icon2html(src, viewers(user))] [src.name].", \ + if(Adjacent(user)) + user.visible_message("[user] shows you: [icon2html(src, viewers(user))] [src.name].", \ "You show \the [src.name].") - src.add_fingerprint(user) - return + add_fingerprint(user) + return /obj/item/card/id/examine(mob/user) ..() diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index afdeb4c6587..428412e11a6 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -145,7 +145,7 @@ ui.open() /obj/item/toy/crayon/spraycan/AltClick(mob/user) - if(user.canUseTopic(src, be_close=TRUE)) + if(user.canUseTopic(src, BE_CLOSE, ismonkey(user))) if(has_cap) is_capped = !is_capped to_chat(user, "The cap on [src] is now [is_capped ? "on" : "off"].") diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index d6d33fc9ec1..fd7a774073a 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -183,7 +183,7 @@ return ..() /obj/item/device/geiger_counter/AltClick(mob/living/user) - if(!istype(user) || user.incapacitated()) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return ..() if(!scanning) to_chat(usr, "[src] must be on to reset its radiation level!") diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 2c75166789d..b3e33ec8ba7 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -41,10 +41,12 @@ GLOBAL_LIST_EMPTY(GPS_list) add_overlay("working") /obj/item/device/gps/AltClick(mob/user) + if(!user.canUseTopic(src, BE_CLOSE)) + return toggletracking(user) /obj/item/device/gps/proc/toggletracking(mob/user) - if(!user.canUseTopic(src, be_close=TRUE)) + if(!user.canUseTopic(src, BE_CLOSE)) return //user not valid to use gps if(emped) to_chat(user, "It's busted!") diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index b1848686768..ecbb4de4a05 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -191,6 +191,8 @@ return ..() /obj/item/extinguisher/AltClick(mob/user) + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return EmptyExtinguisher(user) /obj/item/extinguisher/proc/EmptyExtinguisher(var/mob/user) diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index 8cc6d6b1798..4bea9053a77 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -135,7 +135,7 @@ toggle_igniter(user) /obj/item/flamethrower/AltClick(mob/user) - if(ptank && isliving(user) && !user.incapacitated() && Adjacent(user)) + if(ptank && isliving(user) && user.canUseTopic(src, BE_CLOSE, ismonkey(user))) user.put_in_hands(ptank) ptank = null to_chat(user, "You remove the plasma tank from [src]!") diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 4acebd6a34a..fbdacfdbdad 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -70,7 +70,7 @@ update_icon() /obj/item/pet_carrier/AltClick(mob/living/user) - if(open || !user.canUseTopic(src, be_close=TRUE)) + if(open || !user.canUseTopic(src, BE_CLOSE)) return locked = !locked to_chat(user, "You flip the lock switch [locked ? "down" : "up"].") @@ -151,7 +151,7 @@ add_overlay("[locked ? "" : "un"]locked") /obj/item/pet_carrier/MouseDrop(atom/over_atom) - if(isopenturf(over_atom) && usr.Adjacent(over_atom) && open && occupants.len) + 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) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 82ac5272456..0c4e522107f 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -324,10 +324,7 @@ ..() /obj/item/stack/AltClick(mob/living/user) - if(!istype(user) || !user.canUseTopic(src)) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return if(is_cyborg) return @@ -338,7 +335,7 @@ var/min = 0 var/max = get_amount() var/stackmaterial = round(input(user,"How many sheets do you wish to take out of this stack? (Maximum [max])") as num) - if(stackmaterial == null || stackmaterial <= min || stackmaterial >= get_amount() || !user.canUseTopic(src)) + if(stackmaterial == null || stackmaterial <= min || stackmaterial >= get_amount() || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return else change_stack(user,stackmaterial) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 3300f649484..8a44571220f 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -511,7 +511,7 @@ to_chat(user, "Alt-click it to quickly draw the blade.") /obj/item/storage/belt/sabre/AltClick(mob/user) - if(!ishuman(user) || !user.canUseTopic(src, be_close=TRUE)) + if(!iscarbon(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return if(contents.len) var/obj/item/I = contents[1] diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index d21e6988f28..2baf26abae4 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -129,8 +129,8 @@ ..() to_chat(user, "Alt-click to extract contents.") -/obj/item/storage/fancy/cigarettes/AltClick(mob/user) - if(user.stat || user.restrained()) +/obj/item/storage/fancy/cigarettes/AltClick(mob/living/carbon/user) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return var/obj/item/clothing/mask/cigarette/W = locate(/obj/item/clothing/mask/cigarette) in contents if(W && contents.len > 0) diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index 195d5b25f57..51a0d476c3e 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -129,7 +129,7 @@ to_chat(user, "Alt-click to [open ? "close":"open"] it.") /obj/item/storage/lockbox/medal/AltClick(mob/user) - if(user.canUseTopic(src, be_close=TRUE)) + if(user.canUseTopic(src, BE_CLOSE)) if(!locked) open = (open ? FALSE : TRUE) update_icon() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index dd3ef50a39c..8350fce2b53 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -856,7 +856,7 @@ set name = "Flip Card" set category = "Object" set src in range(1) - if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained()) + if(!ishuman(usr) || !usr.canUseTopic(src, BE_CLOSE)) return if(!flipped) src.flipped = 1 diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index b7013f5210e..a6f4a52f69b 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -516,7 +516,7 @@ qdel(src) /obj/item/twohanded/spear/AltClick(mob/user) - if(user.canUseTopic(src, be_close=TRUE)) + if(user.canUseTopic(src, BE_CLOSE)) ..() if(!explosive) return diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index 72764f436dd..b4b05e20a88 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -78,13 +78,10 @@ /obj/structure/bed/roller/MouseDrop(over_object, src_location, over_location) . = ..() if(over_object == usr && Adjacent(usr)) - if(!ishuman(usr)) + if(!ishuman(usr) || !usr.canUseTopic(src, BE_CLOSE)) return 0 if(has_buckled_mobs()) return 0 - if(usr.incapacitated()) - to_chat(usr, "You can't do that right now!") - return 0 usr.visible_message("[usr] collapses \the [src.name].", "You collapse \the [src.name].") var/obj/structure/bed/roller/B = new foldabletype(get_turf(src)) usr.put_in_hands(B) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 9c5fa40c62b..913d22aa74f 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -36,7 +36,7 @@ var/mob/living/L = user if(istype(L)) - if(!user.Adjacent(src) || user.incapacitated()) + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) to_chat(user, "You can't do that right now!") return FALSE else @@ -225,7 +225,7 @@ if(over_object == usr && Adjacent(usr)) if(!item_chair || !usr.can_hold_items() || has_buckled_mobs() || src.flags_1 & NODECONSTRUCT_1) return - if(usr.incapacitated()) + if(!usr.canUseTopic(src, BE_CLOSE, ismonkey(usr))) to_chat(usr, "You can't do that right now!") return usr.visible_message("[usr] grabs \the [src.name].", "You grab \the [src.name].") @@ -383,7 +383,7 @@ /obj/structure/chair/brass/AltClick(mob/living/user) turns = 0 - if(!user.canUseTopic(src, be_close = TRUE)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return if(!isprocessing) user.visible_message("[user] spins [src] around, and Ratvarian technology keeps it spinning FOREVER.", \ diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 171d5fcdff0..78572d3a70e 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -390,8 +390,7 @@ /obj/structure/closet/AltClick(mob/user) ..() - if(!user.canUseTopic(src, be_close=TRUE) || !isturf(loc)) - to_chat(user, "You can't do that right now!") + if(!user.canUseTopic(src, BE_CLOSE) || !isturf(loc)) return if(opened || !secure) return diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 4c1ed97038e..75b8fd1baea 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -98,7 +98,7 @@ attack_hand(user) /obj/structure/extinguisher_cabinet/AltClick(mob/living/user) - if(user.incapacitated() || !Adjacent(user) || !istype(user)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return toggle_cabinet(user) diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index 25073853ade..dd1f5609be1 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -81,7 +81,7 @@ var/obj/item/O = locate(href_list["retrieve"]) in contents if(!O || !istype(O)) return - if(!usr.canUseTopic(src) || !open) + if(!usr.canUseTopic(src, BE_CLOSE) || !open) return if(ishuman(usr)) if(!usr.put_in_hands(O)) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 2090bdf7ac9..e6cc6a15f65 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -150,8 +150,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an /obj/structure/bodycontainer/morgue/AltClick(mob/user) ..() - if(user.incapacitated()) - to_chat(user, "You can't do that right now!") + if(!user.canUseTopic(src, BE_CLOSE)) return beeper = !beeper to_chat(user, "You turn the speaker function [beeper ? "off" : "on"].") diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index 5124b3697b1..eae9a775954 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -160,7 +160,7 @@ to_chat(user, "The rotation is locked!") return FALSE var/new_angle = input(user, "Input a new angle for primary reflection face.", "Reflector Angle", rotation_angle) as null|num - if(!user.canUseTopic(src, be_close=TRUE)) + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) to_chat(user, "You can't do that right now!") return if(!isnull(new_angle)) @@ -168,8 +168,7 @@ return TRUE /obj/structure/reflector/AltClick(mob/user) - if(!user.canUseTopic(src, be_close=TRUE)) - to_chat(user, "You can't do that right now!") + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return else if(finished) rotate(user) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index fd8674f96f3..01160e8b2e0 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -160,7 +160,7 @@ access_display(user) /obj/item/clockwork/slab/AltClick(mob/living/user) - if(is_servant_of_ratvar(user) && linking) + if(is_servant_of_ratvar(user) && linking && user.canUseTopic(src, BE_CLOSE, ismonkey(user))) linking = null to_chat(user, "Object link canceled.") diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index 499dfd59413..3ad71af9615 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -94,10 +94,10 @@ /mob/living/carbon/true_devil/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) if(incapacitated()) - return 0 + return FALSE if(be_close && !in_range(M, src)) - return 0 - return 1 + return FALSE + return TRUE /mob/living/carbon/true_devil/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) return 666 diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 94ecac2b797..8f82b2737b9 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -157,7 +157,7 @@ if(!istype(M)) return ..() - if(!istype(user) || !user.canUseTopic(M,1)) + if(!istype(user) || !user.canUseTopic(M, BE_CLOSE)) return if(M.stat != DEAD) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 071cfa7eef9..8c46d305916 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -161,17 +161,14 @@ set category = "Object" set src in usr - if(usr.incapacitated()) + if(!usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) return setDir(turn(dir, -90)) /obj/item/device/assembly/infra/AltClick(mob/user) ..() - if(user.incapacitated()) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) + if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) return else rotate() diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 1d1af24fcaf..a80405ef967 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -734,8 +734,7 @@ /obj/machinery/airalarm/AltClick(mob/user) ..() - if(!issilicon(user) && (!user.canUseTopic(src, be_close=TRUE) || !isturf(loc))) - to_chat(user, "You can't do that right now!") + if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc)) return else togglelock(user) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 9923e198039..0ea13282992 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -90,7 +90,7 @@ return ..() /obj/item/clothing/AltClick(mob/user) - if(pockets && pockets.quickdraw && pockets.contents.len && !user.incapacitated()) + if(istype(user) && user.canUseTopic(src, BE_CLOSE, ismonkey(user)) && pockets && pockets.quickdraw && pockets.contents.len) var/obj/item/I = pockets.contents[1] if(!I) return @@ -244,7 +244,7 @@ BLIND // can't see anything if(..()) return 1 - if(!user.canUseTopic(src, be_close=TRUE)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) to_chat(user, "You can't do that right now!") return else diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index d540b5b963d..0a1adb1dcab 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -87,7 +87,7 @@ to_chat(user, "Alt-click to take a candy corn.") /obj/item/clothing/head/fedora/det_hat/AltClick(mob/user) - if(user.canUseTopic(src, be_close=TRUE)) + if(user.canUseTopic(src, BE_CLOSE, ismonkey(user))) ..() if(loc == user) if(candy_cooldown < world.time) diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 774d7d4f63d..6c5f0cb5290 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -23,15 +23,14 @@ /obj/item/clothing/head/soft/AltClick(mob/user) ..() - if(!user.canUseTopic(src, be_close=TRUE)) - to_chat(user, "You can't do that right now!") + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return else flip(user) /obj/item/clothing/head/soft/proc/flip(mob/user) - if(user.canmove && !user.stat && !user.restrained()) + if(!user.incapacitated()) src.flipped = !src.flipped if(src.flipped) icon_state = "[item_color]soft_flipped" diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 9fd328c2d6b..f7c99a24d34 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -23,8 +23,7 @@ obj/item/clothing/mask/breath/suicide_act(mob/living/carbon/user) /obj/item/clothing/mask/breath/AltClick(mob/user) ..() - if(!user.canUseTopic(src, be_close=TRUE)) - to_chat(user, "You can't do that right now!") + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return else adjustmask(user) diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index d036710ce48..d09db447a84 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -93,8 +93,7 @@ /obj/item/clothing/suit/toggle/AltClick(mob/user) ..() - if(!user.canUseTopic(src, be_close=TRUE)) - to_chat(user, "You can't do that right now!") + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return else suit_toggle(user) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 30105fecacd..df0783e4e7d 100755 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -69,7 +69,7 @@ return /obj/item/clothing/accessory/AltClick(mob/user) - if(user.canUseTopic(src, be_close=TRUE)) + if(istype(user) && user.canUseTopic(src, BE_CLOSE, ismonkey(user))) if(initial(above_suit)) above_suit = !above_suit to_chat(user, "[src] will be worn [above_suit ? "above" : "below"] your suit.") diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 185d53ad1f9..b91a848421d 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -169,7 +169,7 @@ interact(user) /obj/machinery/microwave/AltClick(mob/user) - if(user.canUseTopic(src, be_close=TRUE) && !(operating || broken > 0 || panel_open || !anchored || dirty == 100)) + if(user.canUseTopic(src, BE_CLOSE) && !(operating || broken > 0 || panel_open || !anchored || dirty == 100)) cook() /******************* diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm index 00e513dcbdc..5a4f949fcb7 100644 --- a/code/modules/games/cas.dm +++ b/code/modules/games/cas.dm @@ -117,7 +117,7 @@ set name = "Flip Card" set category = "Object" set src in range(1) - if(!usr.canUseTopic(src,1)) + if(!ishuman(usr) || !usr.canUseTopic(src, BE_CLOSE)) return if(!flipped) name = "CAS card" @@ -127,7 +127,7 @@ update_icon() /obj/item/toy/cards/singlecard/cas/AltClick(mob/living/user) - if(!user.canUseTopic(src,1)) + if(!ishuman(user) || !user.canUseTopic(src, BE_CLOSE)) return Flip() diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index fc4ac2e3642..b039c1e968c 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -24,7 +24,7 @@ armor = list(melee = 50, bullet = 70, laser = 70, energy = 100, bomb = 10, bio = 100, rad = 100, fire = 0, acid = 0) /obj/item/device/electronic_assembly/proc/check_interactivity(mob/user) - return user.canUseTopic(src,be_close = TRUE) + return user.canUseTopic(src, BE_CLOSE) /obj/item/device/electronic_assembly/Initialize() diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm index 43d7dd1ad1e..82dead20c3d 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -68,7 +68,7 @@ a creative player the means to solve many problems. Circuits are held inside an if(assembly) return assembly.check_interactivity(user) else - return user.canUseTopic(src,be_close = TRUE) + return user.canUseTopic(src, BE_CLOSE) /obj/item/integrated_circuit/Initialize() displayed_name = name diff --git a/code/modules/integrated_electronics/core/printer.dm b/code/modules/integrated_electronics/core/printer.dm index c5336094f1d..f17744faae6 100644 --- a/code/modules/integrated_electronics/core/printer.dm +++ b/code/modules/integrated_electronics/core/printer.dm @@ -10,7 +10,7 @@ var/list/program // Currently loaded save, in form of list /obj/item/device/integrated_circuit_printer/proc/check_interactivity(mob/user) - return user.canUseTopic(src, be_close = TRUE) + return user.canUseTopic(src, BE_CLOSE) /obj/item/device/integrated_circuit_printer/upgraded upgraded = TRUE diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 27afc374ca7..174fada464c 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -154,7 +154,7 @@ if(locked) to_chat(user, "The crate is locked with a Deca-code lock.") var/input = input(usr, "Enter [codelen] digits. All digits must be unique.", "Deca-Code Lock", "") as text - if(user.canUseTopic(src, 1)) + if(user.canUseTopic(src, BE_CLOSE)) var/list/sanitised = list() var/sanitycheck = 1 for(var/i=1,i<=length(input),i++) //put the guess into a list @@ -180,7 +180,7 @@ return ..() /obj/structure/closet/crate/secure/loot/AltClick(mob/living/user) - if(!user.canUseTopic(src)) + if(!user.canUseTopic(src, BE_CLOSE)) return attack_hand(user) //this helps you not blow up so easily by overriding unlocking which results in an immediate boom. diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm index d2abbe6f744..e93e3713c37 100644 --- a/code/modules/mining/equipment/marker_beacons.dm +++ b/code/modules/mining/equipment/marker_beacons.dm @@ -57,13 +57,10 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list( transfer_fingerprints_to(M) /obj/item/stack/marker_beacon/AltClick(mob/living/user) - if(user.incapacitated() || !istype(user)) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return var/input_color = input(user, "Choose a color.", "Beacon Color") as null|anything in GLOB.marker_beacon_colors - if(user.incapacitated() || !istype(user) || !in_range(src, user)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return if(input_color) picked_color = input_color @@ -129,13 +126,10 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list( /obj/structure/marker_beacon/AltClick(mob/living/user) ..() - if(user.incapacitated() || !istype(user)) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return var/input_color = input(user, "Choose a color.", "Beacon Color") as null|anything in GLOB.marker_beacon_colors - if(user.incapacitated() || !istype(user) || !in_range(src, user)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return if(input_color) picked_color = input_color diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2886cedae46..e6611614efd 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -719,13 +719,13 @@ /mob/living/carbon/human/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) if(incapacitated() || lying ) - return + return FALSE if(!Adjacent(M) && (M.loc != src)) if((be_close == 0) && (dna.check_mutation(TK))) if(tkMaxRangeCheck(src, M)) - return 1 - return - return 1 + return TRUE + return FALSE + return TRUE /mob/living/carbon/human/resist_restraints() if(wear_suit && wear_suit.breakouttime) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 9838297e448..a0b83500cec 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -784,13 +784,14 @@ /mob/living/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) if(incapacitated()) - return + return FALSE if(no_dextery) if(be_close && in_range(M, src)) - return 1 + return TRUE else to_chat(src, "You don't have the dexterity to do this!") - return + return FALSE + /mob/living/proc/can_use_guns(obj/item/G) if(G.trigger_guard != TRIGGER_GUARD_ALLOW_ALL && !IsAdvancedToolUser()) to_chat(src, "You don't have the dexterity to do this!") diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 779d5dcdedb..cd6cbebbdab 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -185,6 +185,8 @@ // See software.dm for Topic() /mob/living/silicon/pai/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) + if(be_close && !in_range(M, src)) + return FALSE return TRUE /mob/proc/makePAI(delold) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 496fd2c4b3b..ddcf1a671a1 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -849,10 +849,10 @@ /mob/living/silicon/robot/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) if(stat || lockcharge || low_power_mode) - return + return FALSE if(be_close && !in_range(M, src)) - return - return 1 + return FALSE + return TRUE /mob/living/silicon/robot/updatehealth() ..() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 55d705d6598..be901acc507 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -374,23 +374,23 @@ /mob/living/simple_animal/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) if(incapacitated()) - return 0 + return FALSE if(no_dextery || dextrous) if(be_close && !in_range(M, src)) - return 0 + return FALSE else to_chat(src, "You don't have the dexterity to do this!") - return 0 - return 1 + return FALSE + return TRUE /mob/living/simple_animal/stripPanelUnequip(obj/item/what, mob/who, where) - if(!canUseTopic(who, TRUE)) + if(!canUseTopic(who, BE_CLOSE)) return else ..() /mob/living/simple_animal/stripPanelEquip(obj/item/what, mob/who, where) - if(!canUseTopic(who, TRUE)) + if(!canUseTopic(who, BE_CLOSE)) return else ..() diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index 3753febca24..e4908c57c7f 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -99,12 +99,9 @@ H.emote("scream") /obj/item/paper/AltClick(mob/living/carbon/user, obj/item/I) - if ( istype(user) ) - if( (!in_range(src, user)) || user.stat || user.restrained() ) - return - to_chat(user, "You fold [src] into the shape of a plane!") - user.temporarilyRemoveItemFromInventory(src) - I = new /obj/item/paperplane(user, src) - user.put_in_hands(I) - else - to_chat(user, " You lack the dexterity to fold \the [src]. ") + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return + to_chat(user, "You fold [src] into the shape of a plane!") + user.temporarilyRemoveItemFromInventory(src) + I = new /obj/item/paperplane(user, src) + user.put_in_hands(I) diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 4b093641d9e..955f7e58107 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -128,12 +128,12 @@ if(isobj(O) && proximity) if(O.obj_flags & UNIQUE_RENAME) var/penchoice = input(user, "What would you like to edit?", "Rename or change description?") as null|anything in list("Rename","Change description") - if(!QDELETED(O) && user.canUseTopic(O, be_close = TRUE)) + if(!QDELETED(O) && user.canUseTopic(O, BE_CLOSE)) if(penchoice == "Rename") var/input = stripped_input(user,"What do you want to name \the [O.name]?", ,"", MAX_NAME_LEN) var/oldname = O.name - if(!QDELETED(O) && user.canUseTopic(O, be_close = TRUE)) + if(!QDELETED(O) && user.canUseTopic(O, BE_CLOSE)) if(oldname == input) to_chat(user, "You changed \the [O.name] to... well... \the [O.name].") return @@ -146,7 +146,7 @@ if(penchoice == "Change description") var/input = stripped_input(user,"Describe \the [O.name] here", ,"", 100) - if(!QDELETED(O) && user.canUseTopic(O, be_close = TRUE)) + if(!QDELETED(O) && user.canUseTopic(O, BE_CLOSE)) O.desc = input to_chat(user, "You have successfully changed \the [O.name]'s description.") return diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index b48f3392df0..6fa13fe8c3c 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -313,7 +313,7 @@ /obj/machinery/photocopier/MouseDrop_T(mob/target, mob/user) check_ass() //Just to make sure that you can re-drag somebody onto it after they moved off. - if (!istype(target) || target.anchored || target.buckled || !Adjacent(user) || !Adjacent(target) || !user.canUseTopic(src, 1) || target == ass || copier_blocked()) + if (!istype(target) || target.anchored || target.buckled || !Adjacent(target) || !user.canUseTopic(src, BE_CLOSE) || target == ass || copier_blocked()) return src.add_fingerprint(user) if(target == user) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index eec58a6d047..6eb9bccdd46 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -656,8 +656,7 @@ /obj/machinery/power/apc/AltClick(mob/user) ..() - if(!issilicon(user) && (!user.canUseTopic(src, be_close=TRUE) || !isturf(loc))) - to_chat(user, "You can't do that right now!") + if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc)) return else togglelock(user) diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 6382b231a84..315178368d6 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -240,7 +240,7 @@ to_chat(user, "You switch to tube A.") /obj/item/gun/ballistic/shotgun/automatic/dual_tube/AltClick(mob/living/user) - if(user.incapacitated() || !Adjacent(user) || !istype(user)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return pump() diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index ffa73aa994a..c336e3b745f 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -223,7 +223,7 @@ return vol_each = min(reagents.total_volume / amount, 50) var/name = stripped_input(usr,"Name:","Name your pill!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE)) return var/obj/item/reagent_containers/pill/P @@ -237,7 +237,7 @@ reagents.trans_to(P,vol_each) else var/name = stripped_input(usr, "Name:", "Name your pack!", reagents.get_master_reagent_name(), MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE)) return var/obj/item/reagent_containers/food/condiment/pack/P = new/obj/item/reagent_containers/food/condiment/pack(drop_location()) @@ -259,7 +259,7 @@ return vol_each = min(reagents.total_volume / amount, 40) var/name = stripped_input(usr,"Name:","Name your patch!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE)) return var/obj/item/reagent_containers/pill/P @@ -277,7 +277,7 @@ if(condi) var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE)) return var/obj/item/reagent_containers/food/condiment/P = new(drop_location()) P.originalname = name @@ -290,7 +290,7 @@ amount_full = round(reagents.total_volume / 30) vol_part = reagents.total_volume % 30 var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE)) return var/obj/item/reagent_containers/glass/bottle/P diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm index 5690bb1ad43..408b37cf12f 100644 --- a/code/modules/vehicles/ridden.dm +++ b/code/modules/vehicles/ridden.dm @@ -42,7 +42,7 @@ return ..() /obj/vehicle/ridden/AltClick(mob/user) - if(user.Adjacent(src) && inserted_key) + if(inserted_key && user.canUseTopic(src, BE_CLOSE, ismonkey(user))) if(!is_occupant(user)) to_chat(user, "You must be riding the [src] to remove [src]'s key!") return