From 91f02f2a6b99c6eb5ae56fc3f7cfb903e703bc08 Mon Sep 17 00:00:00 2001 From: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Date: Sat, 1 Oct 2022 12:47:52 -0400 Subject: [PATCH] canUseTopic now uses TRUE/FALSE instead of defines that just say TRUE (#69790) * canUseTopic now uses TRUE/FALSE instead of defines that just say TRUE The most idiotic thing I've seen is canUseTopic's defines, they literally just define TRUE, you can use it however you want, it doesn't matter, it just means TRUE. You can mix and match the args and it will set that arg to true, despite the name. It's so idiotic I decided to remove it, so now I can reclaim a little bit of my sanity. --- code/__DEFINES/mobs.dm | 10 --------- code/datums/components/gps.dm | 2 +- code/datums/components/religious_tool.dm | 4 ++-- code/datums/components/rotation.dm | 2 +- .../datums/storage/subtypes/bag_of_holding.dm | 2 +- code/game/machinery/camera/camera.dm | 2 +- code/game/machinery/camera/camera_assembly.dm | 2 +- code/game/machinery/civilian_bounties.dm | 2 +- code/game/machinery/computer/_computer.dm | 2 +- code/game/machinery/defibrillator_mount.dm | 2 +- code/game/machinery/deployable.dm | 2 +- code/game/machinery/doors/poddoor.dm | 2 +- code/game/machinery/fat_sucker.dm | 2 +- code/game/machinery/iv_drip.dm | 2 +- code/game/machinery/launch_pad.dm | 2 +- code/game/machinery/medical_kiosk.dm | 2 +- code/game/machinery/newscaster/newspaper.dm | 2 +- .../porta_turret/portable_turret_construct.dm | 2 +- code/game/machinery/spaceheater.dm | 2 +- code/game/machinery/syndicatebomb.dm | 2 +- .../game/objects/items/AI_modules/freeform.dm | 2 +- code/game/objects/items/AI_modules/repair.dm | 2 +- code/game/objects/items/RCD.dm | 4 ++-- code/game/objects/items/RPD.dm | 2 +- code/game/objects/items/cards_ids.dm | 6 ++--- code/game/objects/items/choice_beacon.dm | 4 ++-- .../circuitboards/machine_circuitboards.dm | 2 +- code/game/objects/items/cosmetics.dm | 4 ++-- code/game/objects/items/crayons.dm | 2 +- code/game/objects/items/credit_holochip.dm | 4 ++-- code/game/objects/items/devices/beacon.dm | 2 +- .../objects/items/devices/desynchronizer.dm | 4 ++-- .../objects/items/devices/geiger_counter.dm | 2 +- .../items/devices/portable_chem_mixer.dm | 2 +- .../objects/items/devices/quantum_keycard.dm | 2 +- .../objects/items/devices/radio/headset.dm | 2 +- .../items/devices/scanners/gas_analyzer.dm | 2 +- .../items/devices/scanners/health_analyzer.dm | 2 +- .../devices/scanners/sequence_scanner.dm | 2 +- code/game/objects/items/devices/swapper.dm | 2 +- code/game/objects/items/drug_items.dm | 2 +- code/game/objects/items/dyekit.dm | 6 ++--- code/game/objects/items/extinguisher.dm | 2 +- code/game/objects/items/flamethrower.dm | 2 +- code/game/objects/items/grenades/_grenade.dm | 2 +- .../objects/items/grenades/chem_grenade.dm | 2 +- code/game/objects/items/grenades/plastic.dm | 2 +- .../objects/items/implants/implantcase.dm | 2 +- code/game/objects/items/implants/implanter.dm | 2 +- .../game/objects/items/implants/implantpad.dm | 4 ++-- code/game/objects/items/inspector.dm | 4 ++-- code/game/objects/items/pet_carrier.dm | 4 ++-- code/game/objects/items/signs.dm | 2 +- code/game/objects/items/spear.dm | 2 +- code/game/objects/items/stacks/stack.dm | 4 ++-- code/game/objects/items/stacks/wrap.dm | 2 +- code/game/objects/items/storage/belt.dm | 2 +- code/game/objects/items/storage/lockbox.dm | 2 +- code/game/objects/objs.dm | 2 +- .../objects/structures/beds_chairs/bed.dm | 2 +- .../objects/structures/beds_chairs/chair.dm | 4 ++-- .../structures/crates_lockers/closets.dm | 4 ++-- .../crates_lockers/closets/bodybag.dm | 4 ++-- code/game/objects/structures/displaycase.dm | 4 ++-- code/game/objects/structures/divine.dm | 2 +- code/game/objects/structures/extinguisher.dm | 2 +- code/game/objects/structures/gym.dm | 2 +- .../objects/structures/lavaland/geyser.dm | 2 +- code/game/objects/structures/maintenance.dm | 2 +- code/game/objects/structures/mirror.dm | 22 +++++++++---------- code/game/objects/structures/morgue.dm | 2 +- code/game/objects/structures/reflector.dm | 4 ++-- code/game/objects/structures/safe.dm | 2 +- .../objects/structures/training_machine.dm | 2 +- code/modules/antagonists/revenant/revenant.dm | 2 +- .../antagonists/wizard/equipment/artefact.dm | 2 +- code/modules/art/paintings.dm | 4 ++-- code/modules/assembly/doorcontrol.dm | 2 +- .../machinery/portable/canister.dm | 2 +- .../portable/portable_atmospherics.dm | 2 +- code/modules/cards/cardhand.dm | 2 +- code/modules/cards/cards.dm | 2 +- code/modules/cards/deck/deck.dm | 4 ++-- code/modules/cards/singlecard.dm | 6 ++--- code/modules/cargo/supplypod_beacon.dm | 2 +- code/modules/clothing/head/hardhat.dm | 2 +- code/modules/clothing/head/jobs.dm | 2 +- code/modules/clothing/head/soft_caps.dm | 2 +- code/modules/clothing/head/wig.dm | 2 +- code/modules/clothing/masks/breath.dm | 2 +- .../clothing/spacesuits/_spacesuits.dm | 4 ++-- code/modules/clothing/spacesuits/plasmamen.dm | 2 +- code/modules/clothing/under/_under.dm | 2 +- code/modules/clothing/under/accessories.dm | 2 +- code/modules/economy/holopay.dm | 4 ++-- code/modules/events/ghost_role/pirates.dm | 2 +- code/modules/events/holiday/vday.dm | 2 +- code/modules/fishing/aquarium/aquarium.dm | 2 +- .../food_and_drinks/machinery/coffeemaker.dm | 2 +- .../food_and_drinks/machinery/icecream_vat.dm | 2 +- .../food_and_drinks/machinery/smartfridge.dm | 2 +- code/modules/food_and_drinks/pizzabox.dm | 4 ++-- code/modules/hydroponics/beekeeping/beebox.dm | 2 +- code/modules/hydroponics/biogenerator.dm | 2 +- code/modules/hydroponics/grown/replicapod.dm | 2 +- code/modules/hydroponics/hydroitemdefines.dm | 2 +- code/modules/hydroponics/hydroponics.dm | 8 +++---- code/modules/hydroponics/seeds.dm | 8 +++---- code/modules/instruments/songs/editor.dm | 2 +- code/modules/library/book.dm | 10 ++++----- code/modules/library/bookcase.dm | 4 ++-- code/modules/mining/abandoned_crates.dm | 4 ++-- .../mining/equipment/marker_beacons.dm | 8 +++---- .../mining/equipment/regenerative_core.dm | 2 +- code/modules/mining/machine_redemption.dm | 6 ++--- code/modules/mob/living/brain/posibrain.dm | 4 ++-- code/modules/mob/living/carbon/carbon.dm | 2 +- .../living/simple_animal/friendly/mouse.dm | 2 +- code/modules/mob/mob.dm | 11 +++++++++- .../computers/item/computer.dm | 4 ++-- .../computers/item/laptop.dm | 2 +- .../computers/item/tablet.dm | 2 +- .../file_system/programs/ntmessenger.dm | 4 ++-- .../modular_computers/hardware/virus_disk.dm | 4 ++-- code/modules/paperwork/folders.dm | 2 +- code/modules/paperwork/paperplane.dm | 2 +- code/modules/paperwork/pen.dm | 10 ++++----- code/modules/paperwork/photocopier.dm | 2 +- code/modules/photography/camera/camera.dm | 6 ++--- code/modules/photography/photos/photo.dm | 2 +- code/modules/plumbing/plumbers/bottler.dm | 2 +- .../plumbing/plumbers/plumbing_buffer.dm | 2 +- code/modules/power/pipecleaners.dm | 2 +- code/modules/projectiles/gun.dm | 6 ++--- code/modules/projectiles/guns/ballistic.dm | 2 +- .../projectiles/guns/ballistic/shotgun.dm | 4 ++-- code/modules/projectiles/pins.dm | 4 ++-- .../chemistry/machinery/chem_dispenser.dm | 2 +- .../chemistry/machinery/chem_heater.dm | 2 +- .../chemistry/machinery/chem_mass_spec.dm | 4 ++-- .../chemistry/machinery/chem_master.dm | 2 +- .../reagents/chemistry/machinery/pandemic.dm | 2 +- .../chemistry/machinery/reagentgrinder.dm | 2 +- .../reagents/reagent_containers/blood_pack.dm | 2 +- .../reagents/reagent_containers/chem_pack.dm | 2 +- .../reagents/reagent_containers/hypospray.dm | 2 +- .../reagents/reagent_containers/spray.dm | 2 +- code/modules/recycling/conveyor.dm | 2 +- code/modules/recycling/sortingmachinery.dm | 2 +- .../xenobiology/crossbreeding/_misc.dm | 2 +- .../xenobiology/crossbreeding/charged.dm | 2 +- .../xenobiology/crossbreeding/stabilized.dm | 2 +- .../modules/vehicles/mecha/mech_fabricator.dm | 2 +- code/modules/vehicles/ridden.dm | 2 +- code/modules/vehicles/wheelchair.dm | 2 +- code/modules/vending/_vending.dm | 2 +- 156 files changed, 232 insertions(+), 233 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 75a033b684a..d343df9d04b 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -702,16 +702,6 @@ /// The layer above mutant body parts #define ABOVE_BODY_FRONT_LAYER (BODY_FRONT_LAYER-1) -//used by canUseTopic() -/// If silicons need to be next to the atom to use this -#define BE_CLOSE TRUE -/// If other mobs (monkeys, aliens, etc) can use this -#define NO_DEXTERITY TRUE // I had to change 20+ files because some non-dnd-playing fuckchumbis can't spell "dexterity" -// If telekinesis you can use it from a distance -#define NO_TK TRUE -/// If mobs can use this while resting -#define FLOOR_OKAY TRUE - /// The default mob sprite size (used for shrinking or enlarging the mob sprite to regular size) #define RESIZE_DEFAULT_SIZE 1 diff --git a/code/datums/components/gps.dm b/code/datums/components/gps.dm index 18cc08ccd97..af7d9c5fba7 100644 --- a/code/datums/components/gps.dm +++ b/code/datums/components/gps.dm @@ -91,7 +91,7 @@ GLOBAL_LIST_EMPTY(GPS_list) ///Toggles the tracking for the gps /datum/component/gps/item/proc/toggletracking(mob/user) - if(!user.canUseTopic(parent, BE_CLOSE)) + if(!user.canUseTopic(parent, be_close = TRUE)) return //user not valid to use gps if(emped) to_chat(user, span_warning("It's busted!")) diff --git a/code/datums/components/religious_tool.dm b/code/datums/components/religious_tool.dm index d66aee4c782..6b1fdf1126b 100644 --- a/code/datums/components/religious_tool.dm +++ b/code/datums/components/religious_tool.dm @@ -122,7 +122,7 @@ if(user.mind.holy_role != HOLY_ROLE_HIGHPRIEST) to_chat(user, "You are not the high priest, and therefore cannot select a religious sect.") return - if(!user.canUseTopic(parent, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(parent, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) to_chat(user,span_warning("You cannot select a sect at this time.")) return if(GLOB.religious_sect) @@ -152,7 +152,7 @@ if(performing_rite) to_chat(user, "There is a rite currently being performed here already.") return - if(!user.canUseTopic(parent, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(parent, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) to_chat(user,span_warning("You are not close enough to perform the rite.")) return performing_rite = new path(parent) diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index c3f675d0c68..389f074657f 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -119,7 +119,7 @@ AfterRotation.Invoke(user, degrees) /datum/component/simple_rotation/proc/CanUserRotate(mob/user, degrees) - if(isliving(user) && user.canUseTopic(parent, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(isliving(user) && user.canUseTopic(parent, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return TRUE if((rotation_flags & ROTATION_GHOSTS_ALLOWED) && isobserver(user) && CONFIG_GET(flag/ghost_interaction)) return TRUE diff --git a/code/datums/storage/subtypes/bag_of_holding.dm b/code/datums/storage/subtypes/bag_of_holding.dm index 84e94519ce8..0465e030ae2 100644 --- a/code/datums/storage/subtypes/bag_of_holding.dm +++ b/code/datums/storage/subtypes/bag_of_holding.dm @@ -18,7 +18,7 @@ return var/safety = tgui_alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [to_insert.name]?", list("Proceed", "Abort")) - if(safety != "Proceed" || QDELETED(to_insert) || QDELETED(resolve_parent) || QDELETED(user) || !user.canUseTopic(resolve_parent, BE_CLOSE, iscarbon(user))) + if(safety != "Proceed" || QDELETED(to_insert) || QDELETED(resolve_parent) || QDELETED(user) || !user.canUseTopic(resolve_parent, be_close = TRUE, no_dexterity = iscarbon(user))) return var/turf/loccheck = get_turf(resolve_parent) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 20392d3cfc9..512cf624fd7 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -242,7 +242,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0) var/obj/item/choice = tgui_input_list(user, "Select a part to remove", "Part Removal", sort_names(droppable_parts)) if(isnull(choice)) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return to_chat(user, span_notice("You remove [choice] from [src].")) if(choice == assembly.xray_module) diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 674b25213a3..8665e5f6fc2 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -203,7 +203,7 @@ var/obj/item/choice = tgui_input_list(user, "Select a part to remove", "Part Removal", sort_names(droppable_parts)) if(isnull(choice)) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return to_chat(user, span_notice("You remove [choice] from [src].")) drop_upgrade(choice) diff --git a/code/game/machinery/civilian_bounties.dm b/code/game/machinery/civilian_bounties.dm index 19f7ea8f703..921f83ba367 100644 --- a/code/game/machinery/civilian_bounties.dm +++ b/code/game/machinery/civilian_bounties.dm @@ -175,7 +175,7 @@ return if(!pad_ref?.resolve()) return - if(!usr.canUseTopic(src, BE_CLOSE) || (machine_stat & (NOPOWER|BROKEN))) + if(!usr.canUseTopic(src, be_close = TRUE) || (machine_stat & (NOPOWER|BROKEN))) return switch(action) if("recalc") diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 0b328172f38..6e1174cde49 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -122,7 +122,7 @@ . = ..() if(!can_interact(user)) return - if(!user.canUseTopic(src, !issilicon(user)) || !is_operational) + if(!user.canUseTopic(src, be_close = !issilicon(user)) || !is_operational) return /obj/machinery/computer/ui_interact(mob/user, datum/tgui/ui) diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm index 648e5ae15d8..e99d9de06b8 100644 --- a/code/game/machinery/defibrillator_mount.dm +++ b/code/game/machinery/defibrillator_mount.dm @@ -155,7 +155,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/defibrillator_mount, 28) return TRUE /obj/machinery/defibrillator_mount/AltClick(mob/living/carbon/user) - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return if(!defib) to_chat(user, span_warning("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 b5e833eb45a..1b3348aca73 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -170,7 +170,7 @@ . += span_notice("Alt-click to toggle modes.") /obj/item/grenade/barrier/AltClick(mob/living/carbon/user) - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return toggle_mode(user) diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index e0a30a7be95..a72eaa066db 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -36,7 +36,7 @@ if (deconstruction != BLASTDOOR_FINISHED) return var/change_id = tgui_input_number(user, "Set the door controllers ID", "Door Controller ID", id, 100) - if(!change_id || QDELETED(usr) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!change_id || QDELETED(usr) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return id = change_id to_chat(user, span_notice("You change the ID to [id].")) diff --git a/code/game/machinery/fat_sucker.dm b/code/game/machinery/fat_sucker.dm index 48755ef34ff..47f11afc4f1 100644 --- a/code/game/machinery/fat_sucker.dm +++ b/code/game/machinery/fat_sucker.dm @@ -99,7 +99,7 @@ to_chat(user, span_warning("The safety hatch has been disabled!")) /obj/machinery/fat_sucker/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(user == occupant) to_chat(user, span_warning("You can't reach the controls from inside!")) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index dcd224b288b..156d6412527 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -123,7 +123,7 @@ /obj/machinery/iv_drip/MouseDrop(mob/living/target) . = ..() - if(!ishuman(usr) || !usr.canUseTopic(src, BE_CLOSE) || !isliving(target)) + if(!ishuman(usr) || !usr.canUseTopic(src, be_close = TRUE) || !isliving(target)) return if(attached) diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index a0a7b3a7c3c..d73124d2657 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -287,7 +287,7 @@ /obj/machinery/launchpad/briefcase/MouseDrop(over_object, src_location, over_location) . = ..() if(over_object == usr) - if(!briefcase || !usr.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!briefcase || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) return usr.visible_message(span_notice("[usr] starts closing [src]..."), span_notice("You start closing [src]...")) if(do_after(usr, 30, target = usr)) diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm index d0f55d520a7..6ebea9f66fd 100644 --- a/code/game/machinery/medical_kiosk.dm +++ b/code/game/machinery/medical_kiosk.dm @@ -127,7 +127,7 @@ return ..() /obj/machinery/medical_kiosk/AltClick(mob/living/carbon/user) - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return if(!scanner_wand) to_chat(user, span_warning("The scanner wand is currently removed from the machine.")) diff --git a/code/game/machinery/newscaster/newspaper.dm b/code/game/machinery/newscaster/newspaper.dm index eaf694b308a..ec4d1a35ba6 100644 --- a/code/game/machinery/newscaster/newspaper.dm +++ b/code/game/machinery/newscaster/newspaper.dm @@ -166,7 +166,7 @@ var/s = tgui_input_text(user, "Write something", "Newspaper") if (!s) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return scribble_page = curr_page scribble = s diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index d0616479d14..f652a30d423 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -182,7 +182,7 @@ var/choice = tgui_input_text(user, "Enter a new turret name", "Turret Classification", finish_name, MAX_NAME_LEN) if(!choice) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return finish_name = choice diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index d05cf0f4910..25ff812451d 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -415,7 +415,7 @@ /obj/machinery/space_heater/improvised_chem_heater/AltClick(mob/living/user) . = ..() - if(!can_interact(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return replace_beaker(user) diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index ab19b13520b..23e15d1206f 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -210,7 +210,7 @@ if(!user.canUseTopic(src, !issilicon(user)) || !user.can_interact_with(src)) return var/new_timer = tgui_input_number(user, "Set the timer", "Countdown", timer_set, maximum_timer, minimum_timer) - if(!new_timer || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!new_timer || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return timer_set = new_timer loc.visible_message(span_notice("[icon2html(src, viewers(src))] timer set for [timer_set] seconds.")) diff --git a/code/game/objects/items/AI_modules/freeform.dm b/code/game/objects/items/AI_modules/freeform.dm index 9b034ce28cd..a76f585fb80 100644 --- a/code/game/objects/items/AI_modules/freeform.dm +++ b/code/game/objects/items/AI_modules/freeform.dm @@ -34,7 +34,7 @@ /obj/item/ai_module/supplied/freeform/attack_self(mob/user) var/newpos = tgui_input_number(user, "Please enter the priority for your new law. Can only write to law sectors 15 and above.", "Law Priority ", lawpos, 50, 15) - if(!newpos || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!newpos || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return lawpos = newpos var/targName = tgui_input_text(user, "Enter a new law for the AI.", "Freeform Law Entry", laws[1], CONFIG_GET(number/max_law_len), TRUE) diff --git a/code/game/objects/items/AI_modules/repair.dm b/code/game/objects/items/AI_modules/repair.dm index 0e84d8a355a..c7265839fa3 100644 --- a/code/game/objects/items/AI_modules/repair.dm +++ b/code/game/objects/items/AI_modules/repair.dm @@ -12,7 +12,7 @@ /obj/item/ai_module/remove/attack_self(mob/user) lawpos = tgui_input_number(user, "Law to delete", "Law Removal", lawpos, 50) - if(!lawpos || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!lawpos || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return to_chat(user, span_notice("Law [lawpos] selected.")) ..() diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index f0b4e63ab9e..10d77a34209 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -370,7 +370,7 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window()) set category = "Object" set src in view(1) - if(!usr.canUseTopic(src, BE_CLOSE)) + if(!usr.canUseTopic(src, be_close = TRUE)) return toggle_window_glass(usr) @@ -380,7 +380,7 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window()) set category = "Object" set src in view(1) - if(!usr.canUseTopic(src, BE_CLOSE)) + if(!usr.canUseTopic(src, be_close = TRUE)) return toggle_window_size(usr) diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index cb926c5d9f5..32105310527 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -365,7 +365,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( if(.) return - if(!usr.canUseTopic(src, BE_CLOSE)) + if(!usr.canUseTopic(src, be_close = TRUE)) return var/playeffect = TRUE switch(action) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 0f4d0c24cf0..95d4794ccfd 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -623,7 +623,7 @@ /obj/item/card/id/proc/alt_click_can_use_id(mob/living/user) if(!isliving(user)) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return return TRUE @@ -1239,7 +1239,7 @@ to_chat(user, "Restating prisoner ID to default parameters.") return var/choice = tgui_input_number(user, "Sentence time in seconds", "Sentencing") - if(!choice || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || loc != user) + if(!choice || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE) || loc != user) return FALSE time_to_assign = choice to_chat(user, "You set the sentence time to [time_to_assign] seconds.") @@ -1565,7 +1565,7 @@ assignment = target_occupation var/new_age = tgui_input_number(user, "Choose the ID's age", "Agent card age", AGE_MIN, AGE_MAX, AGE_MIN) - if(QDELETED(user) || QDELETED(src) || !user.canUseTopic(user, BE_CLOSE, NO_DEXTERITY, NO_TK)) + if(QDELETED(user) || QDELETED(src) || !user.canUseTopic(user, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE)) return if(new_age) registered_age = new_age diff --git a/code/game/objects/items/choice_beacon.dm b/code/game/objects/items/choice_beacon.dm index 9d641b126cd..f9e707e6893 100644 --- a/code/game/objects/items/choice_beacon.dm +++ b/code/game/objects/items/choice_beacon.dm @@ -14,7 +14,7 @@ return list() /obj/item/choice_beacon/proc/canUseBeacon(mob/living/user) - if(user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE else playsound(src, 'sound/machines/buzz-sigh.ogg', 40, TRUE) @@ -29,7 +29,7 @@ return if(isnull(display_names[choice])) return - if(!M.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!M.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return spawn_option(display_names[choice],M) diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 934e055292f..3b5eb9c3e29 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -752,7 +752,7 @@ /obj/item/circuitboard/machine/medical_kiosk/multitool_act(mob/living/user) . = ..() var/new_cost = tgui_input_number(user, "New cost for using this medical kiosk", "Pricing", custom_cost, 1000, 10) - if(!new_cost || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!new_cost || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return if(loc != user) to_chat(user, span_warning("You must hold the circuitboard to change its cost!")) diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index 4b555e4d9c6..731dc548660 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -138,7 +138,7 @@ if (H == user) to_chat(user, span_warning("You need a mirror to properly style your own facial hair!")) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return var/new_style = tgui_input_list(user, "Select a facial hairstyle", "Grooming", GLOB.facial_hairstyles_list) if(isnull(new_style)) @@ -186,7 +186,7 @@ if (H == user) to_chat(user, span_warning("You need a mirror to properly style your own hair!")) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return var/new_style = tgui_input_list(user, "Select a hairstyle", "Grooming", GLOB.hairstyles_list) if(isnull(new_style)) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index d69452c108f..c8d7c75c805 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -162,7 +162,7 @@ ui.open() /obj/item/toy/crayon/spraycan/AltClick(mob/user) - if(has_cap && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(has_cap && user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) is_capped = !is_capped to_chat(user, span_notice("The cap on [src] is now [is_capped ? "on" : "off"].")) update_appearance() diff --git a/code/game/objects/items/credit_holochip.dm b/code/game/objects/items/credit_holochip.dm index d7aecb345c2..803a8257c9b 100644 --- a/code/game/objects/items/credit_holochip.dm +++ b/code/game/objects/items/credit_holochip.dm @@ -99,13 +99,13 @@ qdel(H) /obj/item/holochip/AltClick(mob/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK, !iscyborg(user))) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE, need_hands = !iscyborg(user))) return if(loc != user) to_chat(user, span_warning("You must be holding the holochip to continue!")) return FALSE var/split_amount = tgui_input_number(user, "How many credits do you want to extract from the holochip? (Max: [credits] cr)", "Holochip", max_value = credits) - if(!split_amount || QDELETED(user) || QDELETED(src) || issilicon(user) || !usr.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK, !iscyborg(user)) || loc != user) + if(!split_amount || QDELETED(user) || QDELETED(src) || issilicon(user) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE, need_hands = !iscyborg(user)) || loc != user) return var/new_credits = spend(split_amount, TRUE) var/obj/item/holochip/H = new(user ? user : drop_location(), new_credits) diff --git a/code/game/objects/items/devices/beacon.dm b/code/game/objects/items/devices/beacon.dm index 1a14a6299c9..28ec184d476 100644 --- a/code/game/objects/items/devices/beacon.dm +++ b/code/game/objects/items/devices/beacon.dm @@ -34,7 +34,7 @@ /obj/item/beacon/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/pen)) // needed for things that use custom names like the locator var/new_name = tgui_input_text(user, "What would you like the name to be?", "Beacon", max_length = MAX_NAME_LEN) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(new_name) name = new_name diff --git a/code/game/objects/items/devices/desynchronizer.dm b/code/game/objects/items/devices/desynchronizer.dm index 365473b14eb..10b5ed7133e 100644 --- a/code/game/objects/items/devices/desynchronizer.dm +++ b/code/game/objects/items/devices/desynchronizer.dm @@ -33,10 +33,10 @@ . += span_notice("Can be used again to interrupt the effect early. The recharge time is the same as the time spent in desync.") /obj/item/desynchronizer/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return var/new_duration = tgui_input_number(user, "Set the duration", "Desynchronizer", duration / 10, max_duration, 5) - if(!new_duration || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!new_duration || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return duration = new_duration to_chat(user, span_notice("You set the duration to [DisplayTimeText(duration)].")) diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index 999b8d1dfd5..4d4afa7b49c 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -110,7 +110,7 @@ to_chat(user, span_notice("[icon2html(src, user)] [isliving(target) ? "Subject" : "Target"] is free of radioactive contamination.")) /obj/item/geiger_counter/AltClick(mob/living/user) - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return ..() if(!scanning) to_chat(usr, span_warning("[src] must be on to reset its radiation level!")) diff --git a/code/game/objects/items/devices/portable_chem_mixer.dm b/code/game/objects/items/devices/portable_chem_mixer.dm index 61a69a4f96f..ae846a01faf 100644 --- a/code/game/objects/items/devices/portable_chem_mixer.dm +++ b/code/game/objects/items/devices/portable_chem_mixer.dm @@ -80,7 +80,7 @@ /obj/item/storage/portable_chem_mixer/AltClick(mob/living/user) if(!atom_storage.locked) return ..() - if(!can_interact(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return replace_beaker(user) update_appearance() diff --git a/code/game/objects/items/devices/quantum_keycard.dm b/code/game/objects/items/devices/quantum_keycard.dm index fef446a69e9..ddabad8beb7 100644 --- a/code/game/objects/items/devices/quantum_keycard.dm +++ b/code/game/objects/items/devices/quantum_keycard.dm @@ -18,7 +18,7 @@ . += span_notice("Insert [src] into an active quantum pad to link it.") /obj/item/quantum_keycard/AltClick(mob/living/user) - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return to_chat(user, span_notice("You start pressing [src]'s unlink button...")) if(do_after(user, 40, target = src)) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 36d7728831d..572c377b2da 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -81,7 +81,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/MouseDrop(mob/over, src_location, over_location) var/mob/headset_user = usr - if((headset_user == over) && headset_user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if((headset_user == over) && headset_user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return attack_self(headset_user) return ..() diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm index 01262eca005..851491f8bbf 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -38,7 +38,7 @@ /obj/item/analyzer/AltClick(mob/user) //Barometer output for measuring when the next storm happens ..() - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_read(src)) + if(!user.canUseTopic(src, be_close = TRUE) || !user.can_read(src)) return if(cooldown) diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index bb859f9a3af..7963806421a 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -440,7 +440,7 @@ /obj/item/healthanalyzer/AltClick(mob/user) ..() - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_read(src) || user.is_blind()) + if(!user.canUseTopic(src, be_close = TRUE) || !user.can_read(src) || user.is_blind()) return mode = !mode diff --git a/code/game/objects/items/devices/scanners/sequence_scanner.dm b/code/game/objects/items/devices/scanners/sequence_scanner.dm index 3251245f864..a7c0aa3c199 100644 --- a/code/game/objects/items/devices/scanners/sequence_scanner.dm +++ b/code/game/objects/items/devices/scanners/sequence_scanner.dm @@ -80,7 +80,7 @@ var/answer = tgui_input_list(user, "Analyze Potential", "Sequence Analyzer", sort_list(options)) if(isnull(answer)) return - if(!ready || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || !user.can_read(src)) + if(!ready || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE) || !user.can_read(src)) return var/sequence diff --git a/code/game/objects/items/devices/swapper.dm b/code/game/objects/items/devices/swapper.dm index f01e8244be0..8592203d983 100644 --- a/code/game/objects/items/devices/swapper.dm +++ b/code/game/objects/items/devices/swapper.dm @@ -67,7 +67,7 @@ . += span_notice("Not Linked. Use on another quantum spin inverter to establish a quantum link.") /obj/item/swapper/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return to_chat(user, span_notice("You break the current quantum link.")) if(!QDELETED(linked_swapper)) diff --git a/code/game/objects/items/drug_items.dm b/code/game/objects/items/drug_items.dm index d1ea8ea86f6..1e31c8c932c 100644 --- a/code/game/objects/items/drug_items.dm +++ b/code/game/objects/items/drug_items.dm @@ -50,7 +50,7 @@ icon_state = base_icon_state /obj/item/reagent_containers/cup/blastoff_ampoule/attack_self(mob/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY) || spillable) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE) || spillable) return ..() reagent_flags |= OPENCONTAINER spillable = TRUE diff --git a/code/game/objects/items/dyekit.dm b/code/game/objects/items/dyekit.dm index 1007d9971e0..559554cf10f 100644 --- a/code/game/objects/items/dyekit.dm +++ b/code/game/objects/items/dyekit.dm @@ -24,18 +24,18 @@ return var/mob/living/carbon/human/human_target = target var/beard_or_hair = tgui_alert(user, "What do you want to dye?", "Character Preference", list("Hair", "Facial Hair")) - if(!beard_or_hair || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE)) + if(!beard_or_hair || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE)) return var/list/choices = beard_or_hair == "Hair" ? GLOB.hair_gradients_list : GLOB.facial_hair_gradients_list var/new_grad_style = tgui_input_list(user, "Choose a color pattern", "Character Preference", choices) if(isnull(new_grad_style)) return - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE)) return var/new_grad_color = input(user, "Choose a secondary hair color:", "Character Preference",human_target.grad_color) as color|null - if(!new_grad_color || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE) || !user.CanReach(target)) + if(!new_grad_color || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE) || !user.CanReach(target)) return to_chat(user, span_notice("You start applying the hair dye...")) diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index 3c70fb5856b..834c60e1e9c 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -234,7 +234,7 @@ source.delay = 3 /obj/item/extinguisher/AltClick(mob/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) return if(!user.is_holding(src)) to_chat(user, span_notice("You must be holding the [src] in your hands do this!")) diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index ab2f9de8657..a7716e7f4f2 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -152,7 +152,7 @@ toggle_igniter(user) /obj/item/flamethrower/AltClick(mob/user) - if(ptank && isliving(user) && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(ptank && isliving(user) && user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) user.put_in_hands(ptank) ptank = null to_chat(user, span_notice("You remove the plasma tank from [src]!")) diff --git a/code/game/objects/items/grenades/_grenade.dm b/code/game/objects/items/grenades/_grenade.dm index b779f33557b..3e10b6eceaf 100644 --- a/code/game/objects/items/grenades/_grenade.dm +++ b/code/game/objects/items/grenades/_grenade.dm @@ -181,7 +181,7 @@ var/newtime = tgui_input_list(user, "Please enter a new detonation time", "Detonation Timer", list("Instant", 3, 4, 5)) if (isnull(newtime)) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(newtime == "Instant" && change_det_time(0)) to_chat(user, span_notice("You modify the time delay. It's set to be instantaneous.")) diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index cc386274ddb..a24bd1d8bd4 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -355,7 +355,7 @@ if (active) return var/newspread = tgui_input_number(user, "Please enter a new spread amount", "Grenade Spread", 5, 100, 5) - if(!newspread || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!newspread || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return unit_spread = newspread to_chat(user, span_notice("You set the time release to [unit_spread] units per detonation.")) diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index 0ad29d38817..cb961b9a2b2 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -77,7 +77,7 @@ /obj/item/grenade/c4/attack_self(mob/user) var/newtime = tgui_input_number(user, "Please set the timer", "C4 Timer", minimum_timer, maximum_timer, minimum_timer) - if(!newtime || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!newtime || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return det_time = newtime to_chat(user, "Timer set for [det_time] seconds.") diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm index ea73b31e95d..bbaced216b5 100644 --- a/code/game/objects/items/implants/implantcase.dm +++ b/code/game/objects/items/implants/implantcase.dm @@ -28,7 +28,7 @@ if(!user.can_write(used_item)) return var/new_name = tgui_input_text(user, "What would you like the label to be?", name, max_length = MAX_NAME_LEN) - if((user.get_active_held_item() != used_item) || !user.canUseTopic(src, BE_CLOSE)) + if((user.get_active_held_item() != used_item) || !user.canUseTopic(src, be_close = TRUE)) return if(new_name) name = "implant case - '[new_name]'" diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index 77008fbb5a0..e8ab7ccdff1 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -54,7 +54,7 @@ var/new_name = tgui_input_text(user, "What would you like the label to be?", name, max_length = MAX_NAME_LEN) if(user.get_active_held_item() != I) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(new_name) name = "implanter ([new_name])" diff --git a/code/game/objects/items/implants/implantpad.dm b/code/game/objects/items/implants/implantpad.dm index cde4dd65147..08002278e40 100644 --- a/code/game/objects/items/implants/implantpad.dm +++ b/code/game/objects/items/implants/implantpad.dm @@ -34,7 +34,7 @@ /obj/item/implantpad/AltClick(mob/user) ..() - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return if(!case) to_chat(user, span_warning("There's no implant to remove from [src].")) @@ -60,7 +60,7 @@ return ..() /obj/item/implantpad/ui_interact(mob/user) - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) user.unset_machine(src) user << browse(null, "window=implantpad") return diff --git a/code/game/objects/items/inspector.dm b/code/game/objects/items/inspector.dm index 812d56d9e03..5fb1763c333 100644 --- a/code/game/objects/items/inspector.dm +++ b/code/game/objects/items/inspector.dm @@ -75,7 +75,7 @@ return ..() /obj/item/inspector/CtrlClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user)) || !cell_cover_open || !cell) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands= !iscyborg(user)) || !cell_cover_open || !cell) return ..() user.visible_message(span_notice("[user] removes \the [cell] from [src]!"), \ span_notice("You remove [cell].")) @@ -378,7 +378,7 @@ grind_results = list(/datum/reagent/water = 5) /obj/item/paper/fake_report/water/AltClick(mob/living/user, obj/item/I) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) return var/datum/action/innate/origami/origami_action = locate() in user.actions if(origami_action?.active) //Origami masters can fold water diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index c1c5d9e6bd8..13deb2ab239 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -72,7 +72,7 @@ update_appearance() /obj/item/pet_carrier/AltClick(mob/living/user) - if(open || !user.canUseTopic(src, BE_CLOSE)) + if(open || !user.canUseTopic(src, be_close = TRUE)) return locked = !locked to_chat(user, span_notice("You flip the lock switch [locked ? "down" : "up"].")) @@ -157,7 +157,7 @@ /obj/item/pet_carrier/MouseDrop(atom/over_atom) . = ..() - if(isopenturf(over_atom) && usr.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(usr)) && usr.Adjacent(over_atom) && open && occupants.len) + if(isopenturf(over_atom) && usr.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(usr)) && usr.Adjacent(over_atom) && open && occupants.len) usr.visible_message(span_notice("[usr] unloads [src]."), \ span_notice("You unload [src] onto [over_atom].")) for(var/V in occupants) diff --git a/code/game/objects/items/signs.dm b/code/game/objects/items/signs.dm index 6a107650442..d4af671465a 100644 --- a/code/game/objects/items/signs.dm +++ b/code/game/objects/items/signs.dm @@ -22,7 +22,7 @@ if(!user.can_write(writing_instrument)) return var/txt = tgui_input_text(user, "What would you like to write on the sign?", "Sign Label", max_length = 30) - if(txt && user.canUseTopic(src, BE_CLOSE)) + if(txt && user.canUseTopic(src, be_close = TRUE)) label = txt name = "[label] sign" desc = "It reads: [label]" diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index ed95660053d..8fa2c47cdb6 100644 --- a/code/game/objects/items/spear.dm +++ b/code/game/objects/items/spear.dm @@ -140,7 +140,7 @@ . += span_notice("Alt-click to set your war cry.") /obj/item/spear/explosive/AltClick(mob/user) - if(user.canUseTopic(src, BE_CLOSE)) + if(user.canUseTopic(src, be_close = TRUE)) ..() if(istype(user) && loc == user) var/input = tgui_input_text(user, "What do you want your war cry to be? You will shout it when you hit someone in melee.", "War Cry", max_length = 50) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 4f86151d68f..2c04aa46fb0 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -655,13 +655,13 @@ if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) return - if(is_cyborg || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(is_cyborg || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return SECONDARY_ATTACK_CONTINUE_CHAIN if(is_zero_amount(delete_if_zero = TRUE)) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN var/max = get_amount() var/stackmaterial = tgui_input_number(user, "How many sheets do you wish to take out of this stack?", "Stack Split", max_value = max) - if(!stackmaterial || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK, !iscyborg(user))) + if(!stackmaterial || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE, need_hands = !iscyborg(user))) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN split_stack(user, stackmaterial) to_chat(user, span_notice("You take [stackmaterial] sheets out of the stack.")) diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index f42d2cfc74d..b009c0f2d68 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -38,7 +38,7 @@ /obj/item/stack/wrapping_paper/attack_hand_secondary(mob/user, modifiers) var/new_base = input(user, "", "Select a base color", color) as color var/new_ribbon = input(user, "", "Select a ribbon color", color) as color - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return set_greyscale(colors = list(new_base, new_ribbon)) return TRUE diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 41c14344e73..c23c69750ee 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -796,7 +796,7 @@ . += span_notice("Alt-click it to quickly draw the blade.") /obj/item/storage/belt/sabre/AltClick(mob/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) return if(length(contents)) var/obj/item/I = contents[1] diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index 12c453ce5a8..3a9fdfc80b0 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -109,7 +109,7 @@ . += span_notice("Alt-click to [open ? "close":"open"] it.") /obj/item/storage/lockbox/medal/AltClick(mob/user) - if(user.canUseTopic(src, BE_CLOSE)) + if(user.canUseTopic(src, be_close = TRUE)) if(!atom_storage.locked) open = (open ? FALSE : TRUE) update_appearance() diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index cd96ec67ea6..e3e13672e70 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -288,7 +288,7 @@ /obj/AltClick(mob/user) . = ..() - if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY)) + if(unique_reskin && !current_skin && user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) reskin_obj(user) /** diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index 2c2682f8d9b..7244cba3263 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -96,7 +96,7 @@ . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - if(!ishuman(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!ishuman(user) || !user.canUseTopic(src, be_close = TRUE)) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN if(has_buckled_mobs()) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 1f9caf6fa0f..0761708e1fd 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -286,7 +286,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool, 0) if(over_object == usr && Adjacent(usr)) if(!item_chair || has_buckled_mobs() || src.flags_1 & NODECONSTRUCT_1) return - if(!usr.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!usr.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) return usr.visible_message(span_notice("[usr] grabs \the [src.name]."), span_notice("You grab \the [src.name].")) var/obj/item/C = new item_chair(loc) @@ -482,7 +482,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) /obj/structure/chair/bronze/AltClick(mob/user) turns = 0 - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return if(!(datum_flags & DF_ISPROCESSING)) user.visible_message(span_notice("[user] spins [src] around, and the last vestiges of 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 cb6771c87ed..8e773674205 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -598,7 +598,7 @@ set category = "Object" set name = "Toggle Open" - if(!usr.canUseTopic(src, BE_CLOSE) || !isturf(loc)) + if(!usr.canUseTopic(src, be_close = TRUE) || !isturf(loc)) return if(iscarbon(usr) || issilicon(usr) || isdrone(usr)) @@ -661,7 +661,7 @@ /obj/structure/closet/attack_hand_secondary(mob/user, modifiers) . = ..() - if(!user.canUseTopic(src, BE_CLOSE) || !isturf(loc)) + if(!user.canUseTopic(src, be_close = TRUE) || !isturf(loc)) return if(!opened && secure) diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index cacc7dbc5a9..73dca291af4 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -49,7 +49,7 @@ var/t = tgui_input_text(user, "What would you like the label to be?", name, max_length = 53) if(user.get_active_held_item() != interact_tool) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return handle_tag("[t ? t : initial(name)]") return @@ -315,7 +315,7 @@ open() /obj/structure/closet/body_bag/environmental/prisoner/attack_hand_secondary(mob/user, modifiers) - if(!user.canUseTopic(src, BE_CLOSE) || !isturf(loc)) + if(!user.canUseTopic(src, be_close = TRUE) || !isturf(loc)) return togglelock(user) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index cb200f3be8b..1ae5b6241c5 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -458,7 +458,7 @@ if(!payments_acc) to_chat(usr, span_notice("[src] hasn't been registered yet.")) return TRUE - if(!usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE if(!potential_acc) to_chat(usr, span_notice("No ID card detected.")) @@ -514,7 +514,7 @@ if(payments_acc != potential_acc.registered_account) to_chat(usr, span_warning("[src] rejects your new price.")) return - if(!usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) to_chat(usr, span_warning("You need to get closer!")) return sale_price = new_price_input diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm index c2b66cfdea8..d59d83e320a 100644 --- a/code/game/objects/structures/divine.dm +++ b/code/game/objects/structures/divine.dm @@ -9,7 +9,7 @@ /obj/structure/sacrificealtar/AltClick(mob/living/user) ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return if(!has_buckled_mobs()) return diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 4653227a1f2..f3eabad369b 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -110,7 +110,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/extinguisher_cabinet, 29) return attack_hand(user, modifiers) /obj/structure/extinguisher_cabinet/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) return toggle_cabinet(user) diff --git a/code/game/objects/structures/gym.dm b/code/game/objects/structures/gym.dm index a6d594ccbda..a6b841b08ea 100644 --- a/code/game/objects/structures/gym.dm +++ b/code/game/objects/structures/gym.dm @@ -44,7 +44,7 @@ . = ..() if(.) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return if(obj_flags & IN_USE) to_chat(user, span_warning("It's already in use - wait a bit!")) diff --git a/code/game/objects/structures/lavaland/geyser.dm b/code/game/objects/structures/lavaland/geyser.dm index 6205d49326d..16593ecaa8e 100644 --- a/code/game/objects/structures/lavaland/geyser.dm +++ b/code/game/objects/structures/lavaland/geyser.dm @@ -167,7 +167,7 @@ playsound(src, 'sound/machines/click.ogg', 10, TRUE) /obj/item/plunger/AltClick(mob/user) - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return var/new_layer = tgui_input_list(user, "Select a layer", "Layer", GLOB.plumbing_layers) diff --git a/code/game/objects/structures/maintenance.dm b/code/game/objects/structures/maintenance.dm index 21a568f4be4..33e9950b0e9 100644 --- a/code/game/objects/structures/maintenance.dm +++ b/code/game/objects/structures/maintenance.dm @@ -151,7 +151,7 @@ at the cost of risking a vicious bite.**/ switch(altar_result) if("Change Color") var/chosen_color = input(user, "", "Choose Color", pants_color) as color|null - if(!isnull(chosen_color) && user.canUseTopic(src, BE_CLOSE)) + if(!isnull(chosen_color) && user.canUseTopic(src, be_close = TRUE)) pants_color = chosen_color if("Create Artefact") if(!COOLDOWN_FINISHED(src, use_cooldown) || status != ALTAR_INACTIVE) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index b6cefb8eb2c..9a736e3e27a 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -32,7 +32,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) var/new_style = tgui_input_list(user, "Select a facial hairstyle", "Grooming", GLOB.facial_hairstyles_list) if(isnull(new_style)) return TRUE - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE //no tele-grooming hairdresser.facial_hairstyle = new_style else @@ -42,7 +42,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) var/new_style = tgui_input_list(user, "Select a hairstyle", "Grooming", GLOB.hairstyles_list) if(isnull(new_style)) return TRUE - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE //no tele-grooming if(HAS_TRAIT(hairdresser, TRAIT_BALD)) to_chat(hairdresser, span_notice("If only growing back hair were that easy for you...")) @@ -153,7 +153,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) if(isnull(choice)) return TRUE - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE switch(choice) @@ -161,7 +161,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) var/newname = sanitize_name(tgui_input_text(amazed_human, "Who are we again?", "Name change", amazed_human.name, MAX_NAME_LEN), allow_numbers = TRUE) //It's magic so whatever. if(!newname) return TRUE - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE amazed_human.real_name = newname amazed_human.name = newname @@ -176,7 +176,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) return TRUE if(!selectable_races[racechoice]) return TRUE - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE var/datum/species/newrace = selectable_races[racechoice] @@ -190,7 +190,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) if(MUTCOLORS in amazed_human.dna.species.species_traits) var/new_mutantcolor = input(user, "Choose your skin color:", "Race change", amazed_human.dna.features["mcolor"]) as color|null - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE if(new_mutantcolor) var/temp_hsv = RGBtoHSV(new_mutantcolor) @@ -211,7 +211,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) return TRUE if(amazed_human.gender == "male") if(tgui_alert(amazed_human, "Become a Witch?", "Confirmation", list("Yes", "No")) == "Yes") - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE amazed_human.gender = FEMALE amazed_human.physique = FEMALE @@ -221,7 +221,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) else if(tgui_alert(amazed_human, "Become a Warlock?", "Confirmation", list("Yes", "No")) == "Yes") - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE amazed_human.gender = MALE amazed_human.physique = MALE @@ -234,13 +234,13 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) if("hair") var/hairchoice = tgui_alert(amazed_human, "Hairstyle or hair color?", "Change Hair", list("Style", "Color")) - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE if(hairchoice == "Style") //So you just want to use a mirror then? return ..() else var/new_hair_color = input(amazed_human, "Choose your hair color", "Hair Color",amazed_human.hair_color) as color|null - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE if(new_hair_color) amazed_human.hair_color = sanitize_hexcolor(new_hair_color) @@ -254,7 +254,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28) if(BODY_ZONE_PRECISE_EYES) var/new_eye_color = input(amazed_human, "Choose your eye color", "Eye Color", amazed_human.eye_color_left) as color|null - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return TRUE if(new_eye_color) amazed_human.eye_color_left = sanitize_hexcolor(new_eye_color) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 15aecb16bc8..a80dce523fd 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -90,7 +90,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an var/t = tgui_input_text(user, "What would you like the label to be?", text("[]", name), null) if (user.get_active_held_item() != P) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if (t) name = text("[]- '[]'", initial(name), t) diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index d530d4f2709..1a5b8428c19 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -162,13 +162,13 @@ to_chat(user, span_warning("The rotation is locked!")) return FALSE var/new_angle = tgui_input_number(user, "New angle for primary reflection face", "Reflector Angle", rotation_angle, 360) - if(isnull(new_angle) || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(isnull(new_angle) || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return FALSE set_angle(SIMPLIFY_DEGREES(new_angle)) return TRUE /obj/structure/reflector/AltClick(mob/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return else if(finished) rotate(user) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 5e5bf0da1a4..b525a86433c 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -131,7 +131,7 @@ FLOOR SAFES if(!ishuman(usr)) return var/mob/living/carbon/human/user = usr - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return var/canhear = FALSE diff --git a/code/game/objects/structures/training_machine.dm b/code/game/objects/structures/training_machine.dm index 76da32dc7e3..62526e2a258 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -176,7 +176,7 @@ /obj/structure/training_machine/AltClick(mob/user) . = ..() - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK, FLOOR_OKAY)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE, floor_okay = TRUE)) return if(has_buckled_mobs()) user_unbuckle_mob(buckled_mobs[1], user) diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 5232966b79c..7331db795d4 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -98,7 +98,7 @@ RegisterSignal(src, COMSIG_LIVING_BANED, .proc/on_baned) random_revenant_name() -/mob/living/simple_animal/revenant/canUseTopic(atom/movable/M, be_close=FALSE, no_dexterity=FALSE, no_tk=FALSE, no_hands = FALSE, floor_okay=FALSE) +/mob/living/simple_animal/revenant/canUseTopic(atom/movable/M, be_close=FALSE, no_dexterity=FALSE, no_tk=FALSE, need_hands = FALSE, floor_okay=FALSE) return FALSE /mob/living/simple_animal/revenant/proc/random_revenant_name() diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 8dca1d0a0dd..d3a409e064f 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -227,7 +227,7 @@ if(!istype(M)) return ..() - if(!istype(user) || !user.canUseTopic(M, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(M, be_close = TRUE)) return if(M.stat != DEAD) diff --git a/code/modules/art/paintings.dm b/code/modules/art/paintings.dm index 0793cb76b00..f927fdccc9d 100644 --- a/code/modules/art/paintings.dm +++ b/code/modules/art/paintings.dm @@ -210,7 +210,7 @@ return var/sniped_amount = painting_metadata.credit_value var/offer_amount = tgui_input_number(user, "How much do you want to offer?", "Patronage Amount", (painting_metadata.credit_value + 1), account.account_balance, painting_metadata.credit_value) - if(!offer_amount || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!offer_amount || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return if(sniped_amount != painting_metadata.credit_value) return @@ -327,7 +327,7 @@ if(painting_metadata.loaded_from_json) // No renaming old paintings return var/new_name = tgui_input_text(user, "What do you want to name the painting?", "Title Your Masterpiece") - if(new_name != painting_metadata.title && new_name && user.canUseTopic(src, BE_CLOSE)) + if(new_name != painting_metadata.title && new_name && user.canUseTopic(src, be_close = TRUE)) painting_metadata.title = new_name var/sign_choice = tgui_alert(user, "Do you want to sign it or remain anonymous?", "Sign painting?", list("Yes", "No")) if(sign_choice != "Yes") diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index b956851a223..d2f1b611fcb 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -15,7 +15,7 @@ /obj/item/assembly/control/multitool_act(mob/living/user) var/change_id = tgui_input_number(user, "Set the door controllers ID", "Door ID", id, 100) - if(!change_id || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!change_id || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return id = change_id to_chat(user, span_notice("You change the ID to [id].")) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 9e55560056e..3f2e521d471 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -742,7 +742,7 @@ GLOBAL_LIST_INIT(gas_id_to_canister, init_gas_id_to_canister()) timer_set = min(maximum_timer_set, timer_set + 10) if("input") var/user_input = tgui_input_number(usr, "Set time to valve toggle", "Canister Timer", timer_set, maximum_timer_set, minimum_timer_set) - if(isnull(user_input) || QDELETED(usr) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, TRUE)) + if(isnull(user_input) || QDELETED(usr) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return timer_set = user_input log_admin("[key_name(usr)] has activated a prototype valve timer") diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index 1197cadd29d..0f7a6f76c81 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -153,7 +153,7 @@ /obj/machinery/portable_atmospherics/AltClick(mob/living/user) . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user)) || !can_interact(user)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user)) || !can_interact(user)) return if(!holding) return diff --git a/code/modules/cards/cardhand.dm b/code/modules/cards/cardhand.dm index 71c455d6df0..79ac240e7e4 100644 --- a/code/modules/cards/cardhand.dm +++ b/code/modules/cards/cardhand.dm @@ -61,7 +61,7 @@ return NONE /obj/item/toy/cards/cardhand/attack_self(mob/living/user) - if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK)) + if(!isliving(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE)) return var/list/handradial = list() diff --git a/code/modules/cards/cards.dm b/code/modules/cards/cards.dm index ce5e9c88a5f..80d4ba9798d 100644 --- a/code/modules/cards/cards.dm +++ b/code/modules/cards/cards.dm @@ -98,7 +98,7 @@ * * obj/item/toy/singlecard/card (optional) - The card drawn from the hand **/ /obj/item/toy/cards/proc/draw(mob/living/user, obj/item/toy/singlecard/card) - if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK)) + if(!isliving(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE)) return var/has_no_cards = !LAZYLEN(cards) diff --git a/code/modules/cards/deck/deck.dm b/code/modules/cards/deck/deck.dm index 7cb63c46c75..9d8852034a2 100644 --- a/code/modules/cards/deck/deck.dm +++ b/code/modules/cards/deck/deck.dm @@ -147,7 +147,7 @@ /obj/item/toy/cards/deck/attack_hand(mob/living/user, list/modifiers, flip_card = FALSE) - if(!ishuman(user) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK, !iscyborg(user))) + if(!ishuman(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE, need_hands = !iscyborg(user))) return var/obj/item/toy/singlecard/card = draw(user) @@ -164,7 +164,7 @@ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN /obj/item/toy/cards/deck/AltClick(mob/living/user) - if(user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK, !iscyborg(user))) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE, need_hands = !iscyborg(user))) if(wielded) shuffle_cards(user) else diff --git a/code/modules/cards/singlecard.dm b/code/modules/cards/singlecard.dm index e0d9ced2b07..28f8fcc01aa 100644 --- a/code/modules/cards/singlecard.dm +++ b/code/modules/cards/singlecard.dm @@ -207,7 +207,7 @@ return var/cardtext = stripped_input(user, "What do you wish to write on the card?", "Card Writing", "", 50) - if(!cardtext || !user.canUseTopic(src, BE_CLOSE)) + if(!cardtext || !user.canUseTopic(src, be_close = TRUE)) return cardname = cardtext @@ -228,7 +228,7 @@ attack_self(user) /obj/item/toy/singlecard/attack_self(mob/living/carbon/human/user) - if(!ishuman(user) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK, !iscyborg(user))) + if(!ishuman(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE, need_hands = !iscyborg(user))) return Flip() @@ -236,7 +236,7 @@ user.balloon_alert_to_viewers("flips a card") /obj/item/toy/singlecard/AltClick(mob/living/carbon/human/user) - if(user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK, !iscyborg(user))) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = TRUE, need_hands = !iscyborg(user))) transform = turn(transform, 90) // use the simple_rotation component to make this turn with Alt+RMB & Alt+LMB at some point in the future - TimT return ..() diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm index e1b3bcd71fa..d9ec5f6b3ae 100644 --- a/code/modules/cargo/supplypod_beacon.dm +++ b/code/modules/cargo/supplypod_beacon.dm @@ -92,7 +92,7 @@ var/new_beacon_name = tgui_input_text(user, "What would you like the tag to be?", "Beacon Tag", max_length = MAX_NAME_LEN) if(isnull(new_beacon_name)) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return name += " ([tag])" diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 11d29e43cfa..5fe0b11929e 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -133,7 +133,7 @@ toggle_helmet_light(user) /obj/item/clothing/head/hardhat/weldhat/AltClick(mob/user) - if(user.canUseTopic(src, BE_CLOSE)) + if(user.canUseTopic(src, be_close = TRUE)) toggle_welding_screen(user) /obj/item/clothing/head/hardhat/weldhat/ui_action_click(mob/user, actiontype) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 4b4e220e529..fde86c5a7d6 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -113,7 +113,7 @@ /obj/item/clothing/head/fedora/det_hat/AltClick(mob/user) . = ..() - if(loc != user || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(loc != user || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) return if(candy_cooldown < world.time) var/obj/item/food/candy_corn/CC = new /obj/item/food/candy_corn(src) diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 0d143a24175..c81fdcf0cfd 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -23,7 +23,7 @@ /obj/item/clothing/head/soft/AltClick(mob/user) ..() - if(user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) flip(user) diff --git a/code/modules/clothing/head/wig.dm b/code/modules/clothing/head/wig.dm index 9667b92d9f2..f379261a0d1 100644 --- a/code/modules/clothing/head/wig.dm +++ b/code/modules/clothing/head/wig.dm @@ -49,7 +49,7 @@ /obj/item/clothing/head/wig/attack_self(mob/user) var/new_style = tgui_input_list(user, "Select a hairstyle", "Wig Styling", GLOB.hairstyles_list - "Bald") var/newcolor = adjustablecolor ? input(usr,"","Choose Color",color) as color|null : null - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(new_style && new_style != hairstyle) hairstyle = new_style diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 245364671eb..b4d26e64824 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -22,7 +22,7 @@ /obj/item/clothing/mask/breath/AltClick(mob/user) ..() - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) adjustmask(user) /obj/item/clothing/mask/breath/examine(mob/user) diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 0c82fcf3922..02fb8c90931 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -171,13 +171,13 @@ /// Open the cell cover when ALT+Click on the suit /obj/item/clothing/suit/space/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return ..() toggle_spacesuit_cell(user) /// Remove the cell whent he cover is open on CTRL+Click /obj/item/clothing/suit/space/CtrlClick(mob/living/user) - if(user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) if(cell_cover_open && cell) remove_cell(user) return diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index a60f9a1664d..55c96a6547d 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -75,7 +75,7 @@ . += span_notice("There's nothing placed on the helmet.") /obj/item/clothing/head/helmet/space/plasmaman/AltClick(mob/user) - if(user.canUseTopic(src, BE_CLOSE)) + if(user.canUseTopic(src, be_close = TRUE)) toggle_welding_screen(user) /obj/item/clothing/head/helmet/space/plasmaman/ui_action_click(mob/user, action) diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index c115e10064f..b9b058948f5 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -289,7 +289,7 @@ if(.) return - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) return if(attached_accessory) remove_accessory(user) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 7b0d9bd487e..34fef42caab 100755 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -76,7 +76,7 @@ return /obj/item/clothing/accessory/attack_self_secondary(mob/user) - if(user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !iscyborg(user))) above_suit = !above_suit to_chat(user, "[src] will be worn [above_suit ? "above" : "below"] your suit.") return diff --git a/code/modules/economy/holopay.dm b/code/modules/economy/holopay.dm index 5e46a5ae02f..5efd0a52041 100644 --- a/code/modules/economy/holopay.dm +++ b/code/modules/economy/holopay.dm @@ -90,7 +90,7 @@ /// Exit sanity checks if(!cash_deposit) return TRUE - if(QDELETED(held_item) || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(QDELETED(held_item) || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return FALSE if(!chip.spend(cash_deposit, FALSE)) balloon_alert(user, "insufficient credits") @@ -260,7 +260,7 @@ /// If the user has enough money, ask them the amount or charge the force fee var/amount = force_fee || tgui_input_number(user, "How much? (Max: [payee.account_balance])", "Patronage", max_value = payee.account_balance) /// Exit checks in case the user cancelled or entered an invalid amount - if(!amount || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!amount || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return FALSE if(!payee.adjust_money(-amount)) balloon_alert(user, "insufficient credits") diff --git a/code/modules/events/ghost_role/pirates.dm b/code/modules/events/ghost_role/pirates.dm index 590ef55f2f7..5013c695ebf 100644 --- a/code/modules/events/ghost_role/pirates.dm +++ b/code/modules/events/ghost_role/pirates.dm @@ -145,7 +145,7 @@ var/scramble_response = tgui_alert(user, "Turning the scrambler on will make the shuttle trackable by GPS. Are you sure you want to do it?", "Scrambler", list("Yes", "Cancel")) if(scramble_response != "Yes") return - if(active || !user.canUseTopic(src, BE_CLOSE)) + if(active || !user.canUseTopic(src, be_close = TRUE)) return toggle_on(user) update_appearance() diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index e5ba921ae72..6dd36099b42 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -74,7 +74,7 @@ return var/recipient = tgui_input_text(user, "Who is receiving this valentine?", "To:", max_length = MAX_NAME_LEN) var/sender = tgui_input_text(user, "Who is sending this valentine?", "From:", max_length = MAX_NAME_LEN) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(recipient && sender) name = "valentine - To: [recipient] From: [sender]" diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm index 1442c0928e2..2773a75cb3d 100644 --- a/code/modules/fishing/aquarium/aquarium.dm +++ b/code/modules/fishing/aquarium/aquarium.dm @@ -101,7 +101,7 @@ . += span_notice("Alt-click to [panel_open ? "close" : "open"] the control panel.") /obj/structure/aquarium/AltClick(mob/user) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return ..() panel_open = !panel_open update_appearance() diff --git a/code/modules/food_and_drinks/machinery/coffeemaker.dm b/code/modules/food_and_drinks/machinery/coffeemaker.dm index 554c90d3580..53605efe03a 100644 --- a/code/modules/food_and_drinks/machinery/coffeemaker.dm +++ b/code/modules/food_and_drinks/machinery/coffeemaker.dm @@ -119,7 +119,7 @@ . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) return - if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, no_tk = TRUE)) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN if(brewing) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/modules/food_and_drinks/machinery/icecream_vat.dm b/code/modules/food_and_drinks/machinery/icecream_vat.dm index 437fd9b974c..ad699ffdf08 100644 --- a/code/modules/food_and_drinks/machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/machinery/icecream_vat.dm @@ -182,7 +182,7 @@ /obj/machinery/icecream_vat/AltClick(mob/living/user) . = ..() - if(!can_interact(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return replace_beaker(user) diff --git a/code/modules/food_and_drinks/machinery/smartfridge.dm b/code/modules/food_and_drinks/machinery/smartfridge.dm index 0529c5bf313..334e5d746cf 100644 --- a/code/modules/food_and_drinks/machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/machinery/smartfridge.dm @@ -219,7 +219,7 @@ if(!desired) return FALSE - if(QDELETED(src) || QDELETED(usr) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) // Sanity checkin' in case stupid stuff happens while we wait for input() + if(QDELETED(src) || QDELETED(usr) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) // Sanity checkin' in case stupid stuff happens while we wait for input() return FALSE for(var/obj/item/dispensed_item in src) diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index a7d5d460a1d..c208ab3a92b 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -151,7 +151,7 @@ return else bomb_timer = tgui_input_number(user, "Set the bomb timer", "Pizza Bomb", bomb_timer, bomb_timer_max, bomb_timer_min) - if(!bomb_timer || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!bomb_timer || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return bomb_defused = FALSE log_bomber(user, "has trapped a", src, "with [bomb] set to [bomb_timer] seconds") @@ -219,7 +219,7 @@ return var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src box.boxtag += tgui_input_text(user, "Write on [box]'s tag:", box, max_length = 30) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return to_chat(user, span_notice("You write with [I] on [src].")) boxtag_set = TRUE diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index 1f3c43f17b5..207069b0535 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -213,7 +213,7 @@ visible_message(span_danger("[user] disturbs the [name] to no effect!")) else var/option = tgui_alert(user, "Which piece do you wish to remove?", "Apiary Adjustment", list("Honey Frame", "Queen Bee")) - if(!option || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE)) + if(!option || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE)) return switch(option) if("Honey Frame") diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 6f324d8fd71..76f16a564c2 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -150,7 +150,7 @@ /obj/machinery/biogenerator/AltClick(mob/living/user) . = ..() - if(user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) && can_interact(user)) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE) && can_interact(user)) eject_beaker(user) /** diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm index 043d2c265b1..38229ed89be 100644 --- a/code/modules/hydroponics/grown/replicapod.dm +++ b/code/modules/hydroponics/grown/replicapod.dm @@ -164,7 +164,7 @@ return result // Make sure they can still interact with the parent hydroponics tray. - if(!user.canUseTopic(parent, BE_CLOSE)) + if(!user.canUseTopic(parent, be_close = TRUE)) to_chat(user, text = "You are no longer able to harvest the seeds from [parent]!", type = MESSAGE_TYPE_INFO) return result diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 47557e14034..70b694ba321 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -582,7 +582,7 @@ to_chat(trimmer, span_warning("[pod] [pod.p_do()]n't have a head!")) return if(location == BODY_ZONE_HEAD && !trimmer.combat_mode) - if(!trimmer.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!trimmer.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return var/new_style = tgui_input_list(trimmer, "Select a hairstyle", "Grooming", GLOB.pod_hair_list) if(isnull(new_style)) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index f611879372d..902fa6d22c4 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -928,7 +928,7 @@ var/removed_trait = tgui_input_list(user, "Trait to remove from the [myseed.plantname]", "Plant Trait Removal", sort_list(current_traits)) if(isnull(removed_trait)) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(!myseed) return @@ -1008,7 +1008,7 @@ return if(isnull(fresh_mut_list[locked_mutation])) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return myseed.mutatelist = list(fresh_mut_list[locked_mutation]) myseed.set_endurance(myseed.endurance/2) @@ -1051,7 +1051,7 @@ /obj/machinery/hydroponics/CtrlClick(mob/user) . = ..() - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return if(!powered()) to_chat(user, span_warning("[name] has no power.")) @@ -1073,7 +1073,7 @@ update_appearance() return FALSE var/warning = tgui_alert(user, "Are you sure you wish to empty the tray's nutrient beaker?","Empty Tray Nutrients?", list("Yes", "No")) - if(warning == "Yes" && user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(warning == "Yes" && user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) reagents.clear_reagents() to_chat(user, span_warning("You empty [src]'s nutrient tank.")) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 17dea8467de..7076739a232 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -459,14 +459,14 @@ var/choice = tgui_input_list(usr, "What would you like to change?", "Seed Alteration", list("Plant Name", "Seed Description", "Product Description")) if(isnull(choice)) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return switch(choice) if("Plant Name") var/newplantname = reject_bad_text(tgui_input_text(user, "Write a new plant name", "Plant Name", plantname, 20)) if(isnull(newplantname)) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return name = "[lowertext(newplantname)]" plantname = newplantname @@ -474,7 +474,7 @@ var/newdesc = tgui_input_text(user, "Write a new seed description", "Seed Description", desc, 180) if(isnull(newdesc)) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return desc = newdesc if("Product Description") @@ -483,7 +483,7 @@ var/newproductdesc = tgui_input_text(user, "Write a new product description", "Product Description", productdesc, 180) if(isnull(newproductdesc)) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return productdesc = newproductdesc diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index 2e16eed4df5..7555ee09953 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -115,7 +115,7 @@ updateDialog(usr) // make sure updates when complete /datum/song/Topic(href, href_list) - if(!usr.canUseTopic(parent, TRUE, FALSE, FALSE, FALSE)) + if(!usr.canUseTopic(parent, be_close = TRUE, no_dexterity = FALSE, no_tk = FALSE, need_hands = FALSE)) usr << browse(null, "window=instrument") usr.unset_machine() return diff --git a/code/modules/library/book.dm b/code/modules/library/book.dm index a33f28b4238..e1d58a155d2 100644 --- a/code/modules/library/book.dm +++ b/code/modules/library/book.dm @@ -139,7 +139,7 @@ /obj/item/book/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/pen)) - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_write(I)) + if(!user.canUseTopic(src, be_close = TRUE) || !user.can_write(I)) return if(user.is_blind()) to_chat(user, span_warning("As you are trying to write on the book, you suddenly feel very stupid!")) @@ -151,12 +151,12 @@ var/choice = tgui_input_list(usr, "What would you like to change?", "Book Alteration", list("Title", "Contents", "Author", "Cancel")) if(isnull(choice)) return - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_write(I)) + if(!user.canUseTopic(src, be_close = TRUE) || !user.can_write(I)) return switch(choice) if("Title") var/newtitle = reject_bad_text(tgui_input_text(user, "Write a new title", "Book Title", max_length = 30)) - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_write(I)) + if(!user.canUseTopic(src, be_close = TRUE) || !user.can_write(I)) return if (length_char(newtitle) > 30) to_chat(user, span_warning("That title won't fit on the cover!")) @@ -168,7 +168,7 @@ book_data.set_title(html_decode(newtitle)) //Don't want to double encode here if("Contents") var/content = tgui_input_text(user, "Write your book's contents (HTML NOT allowed)", "Book Contents", multiline = TRUE) - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_write(I)) + if(!user.canUseTopic(src, be_close = TRUE) || !user.can_write(I)) return if(!content) to_chat(user, span_warning("The content is invalid.")) @@ -176,7 +176,7 @@ book_data.set_content(html_decode(content)) if("Author") var/author = tgui_input_text(user, "Write the author's name", "Author Name") - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_write(I)) + if(!user.canUseTopic(src, be_close = TRUE) || !user.can_write(I)) return if(!author) to_chat(user, span_warning("The name is invalid.")) diff --git a/code/modules/library/bookcase.dm b/code/modules/library/bookcase.dm index 4f3a505d512..463956fae29 100644 --- a/code/modules/library/bookcase.dm +++ b/code/modules/library/bookcase.dm @@ -123,10 +123,10 @@ to_chat(user, span_notice("You empty \the [I] into \the [src].")) update_appearance() else if(istype(I, /obj/item/pen)) - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_write(I)) + if(!user.canUseTopic(src, be_close = TRUE) || !user.can_write(I)) return var/newname = tgui_input_text(user, "What would you like to title this bookshelf?", "Bookshelf Renaming", max_length = MAX_NAME_LEN) - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_write(I)) + if(!user.canUseTopic(src, be_close = TRUE) || !user.can_write(I)) return if(!newname) return diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index ea3f4330df3..390e1dd2e0b 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -30,7 +30,7 @@ if(locked) to_chat(user, span_notice("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|null - if(user.canUseTopic(src, BE_CLOSE) && locked) + if(user.canUseTopic(src, be_close = TRUE) && locked) var/list/sanitised = list() var/sanitycheck = TRUE var/char = "" @@ -63,7 +63,7 @@ return ..() /obj/structure/closet/crate/secure/loot/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return 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 d0e71c89d56..3c843eaf94c 100644 --- a/code/modules/mining/equipment/marker_beacons.dm +++ b/code/modules/mining/equipment/marker_beacons.dm @@ -60,12 +60,12 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sort_list(list( transfer_fingerprints_to(M) /obj/item/stack/marker_beacon/AltClick(mob/living/user) - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return var/input_color = tgui_input_list(user, "Choose a color", "Beacon Color", GLOB.marker_beacon_colors) if(isnull(input_color)) return - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return picked_color = input_color update_appearance() @@ -150,12 +150,12 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sort_list(list( /obj/structure/marker_beacon/AltClick(mob/living/user) ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return var/input_color = tgui_input_list(user, "Choose a color", "Beacon Color", GLOB.marker_beacon_colors) if(isnull(input_color)) return - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return picked_color = input_color update_appearance() diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index b16bf2055ee..7d17a29c934 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -97,7 +97,7 @@ applyto(target, user) /obj/item/organ/internal/regenerative_core/attack_self(mob/user) - if(user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) applyto(user, user) /obj/item/organ/internal/regenerative_core/Insert(mob/living/carbon/target_carbon, special = 0, drop_if_replaced = TRUE) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index d7963681278..1d06baa0baa 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -189,7 +189,7 @@ /obj/machinery/mineral/ore_redemption/AltClick(mob/living/user) . = ..() - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(panel_open) input_dir = turn(input_dir, -90) @@ -288,7 +288,7 @@ desired = text2num(params["sheets"]) else desired = tgui_input_number(usr, "How many sheets would you like to smelt?", "Smelt", max_value = stored_amount) - if(!desired || QDELETED(usr) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!desired || QDELETED(usr) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return var/sheets_to_remove = round(min(desired,50,stored_amount)) @@ -336,7 +336,7 @@ desired = text2num(params["sheets"]) else desired = tgui_input_number(usr, "How many sheets would you like to smelt?", "Smelt", max_value = smelt_amount) - if(!desired || QDELETED(usr) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!desired || QDELETED(usr) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return var/amount = round(min(desired,50,smelt_amount)) if(amount < 1) //no negative mats diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index c38c9b24c53..68b7ec552d8 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -73,12 +73,12 @@ GLOBAL_VAR(posibrain_notify_cooldown) addtimer(CALLBACK(src, .proc/check_success), ask_delay) /obj/item/mmi/posibrain/AltClick(mob/living/user) - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return var/input_seed = tgui_input_text(user, "Enter a personality seed", "Enter seed", ask_role, MAX_NAME_LEN) if(isnull(input_seed)) return - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE)) return to_chat(user, span_notice("You set the personality seed to \"[input_seed]\".")) ask_role = input_seed diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 449aba7b4fc..95c84bde476 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -204,7 +204,7 @@ /mob/living/carbon/Topic(href, href_list) ..() - if(href_list["embedded_object"] && usr.canUseTopic(src, BE_CLOSE, NO_DEXTERITY)) + if(href_list["embedded_object"] && usr.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) var/obj/item/bodypart/L = locate(href_list["embedded_limb"]) in bodyparts if(!L) return diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 63512172855..2fa83befd2f 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -119,7 +119,7 @@ if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED)) return . = ..() - if(istype(A, /obj/item/food/cheese) && canUseTopic(A, BE_CLOSE, NO_DEXTERITY)) + if(istype(A, /obj/item/food/cheese) && canUseTopic(A, be_close = TRUE, no_dexterity = TRUE)) if(health == maxHealth) to_chat(src,span_warning("You don't need to eat or heal.")) return diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 2edf7391e18..826fbaf4c25 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -972,7 +972,16 @@ return FALSE return ISINRANGE(their_turf.x, our_turf.x - interaction_range, our_turf.x + interaction_range) && ISINRANGE(their_turf.y, our_turf.y - interaction_range, our_turf.y + interaction_range) -///Can the mob use Topic to interact with machines +/** + * Whether the mob can use Topic to interact with machines + * + * Args: + * be_close - Whether you need to be next to/on top of M + * no_dexterity - Whether you need to be an ADVANCEDTOOLUSER + * no_tk - If be_close is TRUE, this will block Telekinesis from bypassing the requirement + * need_hands - Whether you need hands to use this + * floor_okay - Whether mobility flags should be checked for MOBILITY_UI to use. + */ /mob/proc/canUseTopic(atom/movable/M, be_close=FALSE, no_dexterity=FALSE, no_tk=FALSE, need_hands = FALSE, floor_okay=FALSE) return diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 8590014092e..fa22c4effb1 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -159,7 +159,7 @@ GLOBAL_LIST_EMPTY(TabletMessengers) // a list of all active messengers, similar if(issilicon(user)) return - if(user.canUseTopic(src, BE_CLOSE)) + if(user.canUseTopic(src, be_close = TRUE)) var/obj/item/computer_hardware/card_slot/card_slot2 = all_components[MC_CARD2] var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD] if(card_slot2?.try_eject(user) || card_slot?.try_eject(user)) @@ -272,7 +272,7 @@ GLOBAL_LIST_EMPTY(TabletMessengers) // a list of all active messengers, similar /obj/item/modular_computer/MouseDrop(obj/over_object, src_location, over_location) var/mob/M = usr - if((!istype(over_object, /atom/movable/screen)) && usr.canUseTopic(src, BE_CLOSE)) + if((!istype(over_object, /atom/movable/screen)) && usr.canUseTopic(src, be_close = TRUE)) return attack_self(M) return ..() diff --git a/code/modules/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm index 51e9134b7bf..4154c56db22 100644 --- a/code/modules/modular_computers/computers/item/laptop.dm +++ b/code/modules/modular_computers/computers/item/laptop.dm @@ -87,7 +87,7 @@ return if(!isturf(loc) && !ismob(loc)) // No opening it in backpack. return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return toggle_open(user) diff --git a/code/modules/modular_computers/computers/item/tablet.dm b/code/modules/modular_computers/computers/item/tablet.dm index 798b0e84d2e..a0f39ac7a84 100644 --- a/code/modules/modular_computers/computers/item/tablet.dm +++ b/code/modules/modular_computers/computers/item/tablet.dm @@ -95,7 +95,7 @@ /obj/item/modular_computer/tablet/proc/remove_pen(mob/user) - if(issilicon(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) //TK doesn't work even with this removed but here for readability + if(issilicon(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) //TK doesn't work even with this removed but here for readability return if(inserted_item) diff --git a/code/modules/modular_computers/file_system/programs/ntmessenger.dm b/code/modules/modular_computers/file_system/programs/ntmessenger.dm index 0e6315e0fa6..8cfd24dac93 100644 --- a/code/modules/modular_computers/file_system/programs/ntmessenger.dm +++ b/code/modules/modular_computers/file_system/programs/ntmessenger.dm @@ -226,7 +226,7 @@ if (!t || !sending_and_receiving) return - if(!U.canUseTopic(computer, BE_CLOSE)) + if(!U.canUseTopic(computer, be_close = TRUE)) return return sanitize(t) @@ -381,7 +381,7 @@ if(computer.active_program != src) if(!computer.open_program(usr, src)) return - if(!href_list["close"] && usr.canUseTopic(computer, BE_CLOSE, FALSE, NO_TK)) + if(!href_list["close"] && usr.canUseTopic(computer, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) switch(href_list["choice"]) if("Message") send_message(usr, list(locate(href_list["target"]))) diff --git a/code/modules/modular_computers/hardware/virus_disk.dm b/code/modules/modular_computers/hardware/virus_disk.dm index 036899ed2c6..d89af44fbe4 100644 --- a/code/modules/modular_computers/hardware/virus_disk.dm +++ b/code/modules/modular_computers/hardware/virus_disk.dm @@ -58,10 +58,10 @@ var/original_host = holder var/fakename = sanitize_name(tgui_input_text(user, "Enter a name for the rigged message.", "Forge Message", max_length = MAX_NAME_LEN), allow_numbers = TRUE) - if(!fakename || holder != original_host || !user.canUseTopic(holder, BE_CLOSE)) + if(!fakename || holder != original_host || !user.canUseTopic(holder, be_close = TRUE)) return var/fakejob = sanitize_name(tgui_input_text(user, "Enter a job for the rigged message.", "Forge Message", max_length = MAX_NAME_LEN), allow_numbers = TRUE) - if(!fakejob || holder != original_host || !user.canUseTopic(holder, BE_CLOSE)) + if(!fakejob || holder != original_host || !user.canUseTopic(holder, be_close = TRUE)) return var/obj/item/computer_hardware/hard_drive/drive = holder.all_components[MC_HDD] diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index ac9a9c1941e..39bab876ade 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -38,7 +38,7 @@ if(!inputvalue) return - if(user.canUseTopic(src, BE_CLOSE)) + if(user.canUseTopic(src, be_close = TRUE)) name = "folder[(inputvalue ? " - '[inputvalue]'" : null)]" /obj/item/folder/proc/remove_item(obj/item/Item, mob/user) diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index 46f116c4254..27b75d5dbfd 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -113,7 +113,7 @@ . += span_notice("Alt-click [src] to fold it into a paper plane.") /obj/item/paper/AltClick(mob/living/user, obj/item/I) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) return if(istype(src, /obj/item/paper/carbon)) var/obj/item/paper/carbon/Carbon = src diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 2284ba72706..444577dbc35 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -142,7 +142,7 @@ to_chat(user, span_warning("You must be holding the pen to continue!")) return var/deg = tgui_input_number(user, "What angle would you like to rotate the pen head to? (0-360)", "Rotate Pen Head", max_value = 360) - if(isnull(deg) || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || loc != user) + if(isnull(deg) || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE) || loc != user) return degrees = deg to_chat(user, span_notice("You rotate the top of the pen to [deg] degrees.")) @@ -163,12 +163,12 @@ //Changing name/description of items. Only works if they have the UNIQUE_RENAME object flag set if(isobj(O) && proximity && (O.obj_flags & UNIQUE_RENAME)) var/penchoice = tgui_input_list(user, "What would you like to edit?", "Pen Setting", list("Rename", "Description", "Reset")) - if(QDELETED(O) || !user.canUseTopic(O, BE_CLOSE)) + if(QDELETED(O) || !user.canUseTopic(O, be_close = TRUE)) return if(penchoice == "Rename") var/input = tgui_input_text(user, "What do you want to name [O]?", "Object Name", "[O.name]", MAX_NAME_LEN) var/oldname = O.name - if(QDELETED(O) || !user.canUseTopic(O, BE_CLOSE)) + if(QDELETED(O) || !user.canUseTopic(O, be_close = TRUE)) return if(input == oldname || !input) to_chat(user, span_notice("You changed [O] to... well... [O].")) @@ -184,7 +184,7 @@ if(penchoice == "Description") var/input = tgui_input_text(user, "Describe [O]", "Description", "[O.desc]", 140) var/olddesc = O.desc - if(QDELETED(O) || !user.canUseTopic(O, BE_CLOSE)) + if(QDELETED(O) || !user.canUseTopic(O, be_close = TRUE)) return if(input == olddesc || !input) to_chat(user, span_notice("You decide against changing [O]'s description.")) @@ -194,7 +194,7 @@ O.renamedByPlayer = TRUE if(penchoice == "Reset") - if(QDELETED(O) || !user.canUseTopic(O, BE_CLOSE)) + if(QDELETED(O) || !user.canUseTopic(O, be_close = TRUE)) return qdel(O.GetComponent(/datum/component/rename)) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 6c8b19dfd1f..4159e664f51 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -440,7 +440,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(target) || !user.canUseTopic(src, BE_CLOSE) || target == ass || copier_blocked()) + if(!istype(target) || target.anchored || target.buckled || !Adjacent(target) || !user.canUseTopic(src, be_close = TRUE) || target == ass || copier_blocked()) return add_fingerprint(user) if(target == user) diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index d174324d1b3..61b915d337c 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -61,17 +61,17 @@ to_chat(user, span_warning("You must be holding the camera to continue!")) return FALSE var/desired_x = tgui_input_number(user, "How wide do you want the camera to shoot?", "Zoom", picture_size_x, picture_size_x_max, picture_size_x_min) - if(!desired_x || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || loc != user) + if(!desired_x || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE) || loc != user) return FALSE var/desired_y = tgui_input_number(user, "How high do you want the camera to shoot", "Zoom", picture_size_y, picture_size_y_max, picture_size_y_min) - if(!desired_y|| QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || loc != user) + if(!desired_y|| QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE) || loc != user) return FALSE picture_size_x = min(clamp(desired_x, picture_size_x_min, picture_size_x_max), CAMERA_PICTURE_SIZE_HARD_LIMIT) picture_size_y = min(clamp(desired_y, picture_size_y_min, picture_size_y_max), CAMERA_PICTURE_SIZE_HARD_LIMIT) return TRUE /obj/item/camera/AltClick(mob/user) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return adjust_zoom(user) diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index 16c0d008b45..95b071c7dc6 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -71,7 +71,7 @@ if(!user.can_write(P)) return var/txt = tgui_input_text(user, "What would you like to write on the back?", "Photo Writing", max_length = 128) - if(txt && user.canUseTopic(src, BE_CLOSE)) + if(txt && user.canUseTopic(src, be_close = TRUE)) scribble = txt else return ..() diff --git a/code/modules/plumbing/plumbers/bottler.dm b/code/modules/plumbing/plumbers/bottler.dm index 98434ee060d..46a0e1d328d 100644 --- a/code/modules/plumbing/plumbers/bottler.dm +++ b/code/modules/plumbing/plumbers/bottler.dm @@ -63,7 +63,7 @@ to_chat(user, span_warning("A flashing notification on the screen reads: \"Output location error!\"")) return . var/new_amount = tgui_input_number(user, "Set Amount to Fill", "Desired Amount", max_value = 100) - if(!new_amount || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!new_amount || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return . wanted_amount = new_amount to_chat(user, span_notice(" The [src] will now fill for [wanted_amount]u.")) diff --git a/code/modules/plumbing/plumbers/plumbing_buffer.dm b/code/modules/plumbing/plumbers/plumbing_buffer.dm index 4ffd7fe0874..823573b98ee 100644 --- a/code/modules/plumbing/plumbers/plumbing_buffer.dm +++ b/code/modules/plumbing/plumbers/plumbing_buffer.dm @@ -78,7 +78,7 @@ . = SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN var/new_volume = tgui_input_number(user, "Enter new activation threshold", "Beepityboop", activation_volume, buffer) - if(!new_volume || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!new_volume || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return activation_volume = new_volume to_chat(user, span_notice("New activation threshold is now [activation_volume].")) diff --git a/code/modules/power/pipecleaners.dm b/code/modules/power/pipecleaners.dm index 4130b687649..61b93f89ad1 100644 --- a/code/modules/power/pipecleaners.dm +++ b/code/modules/power/pipecleaners.dm @@ -162,7 +162,7 @@ By design, d1 is the smallest direction and d2 is the highest stored.update_appearance() /obj/structure/pipe_cleaner/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return cut_pipe_cleaner(user) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 527b90777e3..9cecfd0c708 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -440,7 +440,7 @@ . = ..() if(.) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return if(bayonet && can_bayonet) //if it has a bayonet, and the bayonet can be removed @@ -461,7 +461,7 @@ . = ..() if(.) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return if(pin && user.is_holding(src)) user.visible_message(span_warning("[user] attempts to remove [pin] from [src] with [I]."), @@ -478,7 +478,7 @@ . = ..() if(.) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return if(pin && user.is_holding(src)) user.visible_message(span_warning("[user] attempts to remove [pin] from [src] with [I]."), diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 0e1abd131d3..01f59fda95b 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -415,7 +415,7 @@ return ..() /obj/item/gun/ballistic/AltClick(mob/user) - if (unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY)) + if (unique_reskin && !current_skin && user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) reskin_obj(user) return if(loc == user) diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 376ad950071..6b365affeaf 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -113,7 +113,7 @@ to_chat(user, span_notice("You switch to tube A.")) /obj/item/gun/ballistic/shotgun/automatic/dual_tube/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE)) return rack() @@ -265,7 +265,7 @@ /obj/item/gun/ballistic/shotgun/doublebarrel/AltClick(mob/user) . = ..() - if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY)) + if(unique_reskin && !current_skin && user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) reskin_obj(user) /obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(mob/user) diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index 990073c255a..1f0fd50ff44 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -262,7 +262,7 @@ owned = FALSE return var/transaction_amount = tgui_input_number(user, "Insert valid deposit amount for gun purchase", "Money Deposit") - if(!transaction_amount || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!transaction_amount || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return pin_owner = id owned = TRUE @@ -285,7 +285,7 @@ if(credit_card_details && !active_prompt) var/license_request = tgui_alert(user, "Do you wish to pay [payment_amount] credit[( payment_amount > 1 ) ? "s" : ""] for [( multi_payment ) ? "each shot of [gun.name]" : "usage license of [gun.name]"]?", "Weapon Purchase", list("Yes", "No")) active_prompt = TRUE - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) active_prompt = FALSE return FALSE switch(license_request) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 505de4cdc2e..af495dd4348 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -451,7 +451,7 @@ . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) return - if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, no_tk = TRUE)) return replace_beaker(user) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 8a6725f6249..16b6b8edbca 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -64,7 +64,7 @@ . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) return - if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, no_tk = TRUE)) return replace_beaker(user) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm b/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm index 7fa2ce30fdc..5c0a0cd7f32 100644 --- a/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm +++ b/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm @@ -125,7 +125,7 @@ This will not clean any inverted reagents. Inverted reagents will still be corre if(processing_reagents) to_chat(user, " The [src] is currently processing a batch!") return - if(!can_interact(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return ..() replace_beaker(user, BEAKER1) @@ -134,7 +134,7 @@ This will not clean any inverted reagents. Inverted reagents will still be corre if(processing_reagents) to_chat(user, " The [src] is currently processing a batch!") return - if(!can_interact(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return replace_beaker(user, BEAKER2) diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 2e357dd5880..c1273603567 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -143,7 +143,7 @@ . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) return - if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, no_tk = TRUE)) return replace_beaker(user) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 2816a0b3e73..d250c9f3ea7 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -61,7 +61,7 @@ . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) return - if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, no_tk = TRUE)) return eject_beaker() return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 24f048e48e8..db394497e4e 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -99,7 +99,7 @@ . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) return - if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, NO_TK)) + if(!can_interact(user) || !user.canUseTopic(src, !issilicon(user), FALSE, no_tk = TRUE)) return if(operating) return diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 691edcc1e66..6c059cdaffc 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -73,7 +73,7 @@ if(!user.can_write(tool)) return var/custom_label = tgui_input_text(user, "What would you like to label the blood pack?", "Blood Pack", name, MAX_NAME_LEN) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(user.get_active_held_item() != tool) return diff --git a/code/modules/reagents/reagent_containers/chem_pack.dm b/code/modules/reagents/reagent_containers/chem_pack.dm index a710e55f12c..484fc83661a 100644 --- a/code/modules/reagents/reagent_containers/chem_pack.dm +++ b/code/modules/reagents/reagent_containers/chem_pack.dm @@ -13,7 +13,7 @@ possible_transfer_amounts = list() /obj/item/reagent_containers/chem_pack/AltClick(mob/living/user) - if(user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY) && !sealed) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE) && !sealed) if(iscarbon(user) && (HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))) to_chat(user, span_warning("Uh... whoops! You accidentally spill the content of the bag onto yourself.")) SplashReagents(user) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 8e438987681..9298cb7f881 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -131,7 +131,7 @@ update_appearance() /obj/item/reagent_containers/hypospray/medipen/attack_self(mob/user) - if(user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK, FALSE, FLOOR_OKAY)) + if(user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE, need_hands = FALSE, floor_okay = TRUE)) inject(user, user) /obj/item/reagent_containers/hypospray/medipen/update_icon_state() diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 7867aaf92b0..4c3c33aadf3 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -397,7 +397,7 @@ "Blue" = "sprayer_med_blue") /obj/item/reagent_containers/spray/medical/AltClick(mob/user) - if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY)) + if(unique_reskin && !current_skin && user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) reskin_obj(user) /obj/item/reagent_containers/spray/medical/reskin_obj(mob/M) diff --git a/code/modules/recycling/conveyor.dm b/code/modules/recycling/conveyor.dm index 22f13ccdbb5..8eeb9fcc2d8 100644 --- a/code/modules/recycling/conveyor.dm +++ b/code/modules/recycling/conveyor.dm @@ -408,7 +408,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/machinery/conveyor_switch/multitool_act(mob/living/user, obj/item/I) var/input_speed = tgui_input_number(user, "Set the speed of the conveyor belts in seconds", "Speed", conveyor_speed, 20, 0.2) - if(!input_speed || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!input_speed || QDELETED(user) || QDELETED(src) || !usr.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return conveyor_speed = input_speed to_chat(user, span_notice("You change the time between moves to [input_speed] seconds.")) diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 80a42157642..e8d28714909 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -117,7 +117,7 @@ if(!user.can_write(item)) return var/str = tgui_input_text(user, "Label text?", "Set label", max_length = MAX_NAME_LEN) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(!str || !length(str)) to_chat(user, span_warning("Invalid text!")) diff --git a/code/modules/research/xenobiology/crossbreeding/_misc.dm b/code/modules/research/xenobiology/crossbreeding/_misc.dm index 8f12d7c2733..edba2019b83 100644 --- a/code/modules/research/xenobiology/crossbreeding/_misc.dm +++ b/code/modules/research/xenobiology/crossbreeding/_misc.dm @@ -176,7 +176,7 @@ Slimecrossing Items if(M.mind) to_chat(user, span_notice("You offer the device to [M].")) if(tgui_alert(M, "Would you like to enter [user]'s capture device?", "Gold Capture Device", list("Yes", "No")) == "Yes") - if(user.canUseTopic(src, BE_CLOSE) && user.canUseTopic(M, BE_CLOSE)) + if(user.canUseTopic(src, be_close = TRUE) && user.canUseTopic(M, be_close = TRUE)) to_chat(user, span_notice("You store [M] in the capture device.")) to_chat(M, span_notice("The world warps around you, and you're suddenly in an endless void, with a window to the outside floating in front of you.")) store(M, user) diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index d96bc875353..b68fc67f24b 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -176,7 +176,7 @@ Charged extracts: if(isnull(racechoice)) to_chat(user, span_notice("You decide not to become a slime for now.")) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return human_user.set_species(choice_list[racechoice], icon_update=1) human_user.visible_message(span_warning("[human_user] suddenly shifts form as [src] dissolves into [human_user.p_their()] skin!")) diff --git a/code/modules/research/xenobiology/crossbreeding/stabilized.dm b/code/modules/research/xenobiology/crossbreeding/stabilized.dm index 0b4e5f00998..cf83ad88910 100644 --- a/code/modules/research/xenobiology/crossbreeding/stabilized.dm +++ b/code/modules/research/xenobiology/crossbreeding/stabilized.dm @@ -152,7 +152,7 @@ Stabilized extracts: var/choice = tgui_input_list(user, "Which do you want to reset?", "Familiar Adjustment", sort_list(list("Familiar Location", "Familiar Species", "Familiar Sentience", "Familiar Name"))) if(isnull(choice)) return - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(isliving(user)) var/mob/living/L = user diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm index 3008b7d8460..f9a8d71b6a5 100644 --- a/code/modules/vehicles/mecha/mech_fabricator.dm +++ b/code/modules/vehicles/mecha/mech_fabricator.dm @@ -127,7 +127,7 @@ /obj/machinery/mecha_part_fabricator/AltClick(mob/user) . = ..() - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(panel_open) dir = turn(dir, -90) diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm index b03229d283e..afe15da47fd 100644 --- a/code/modules/vehicles/ridden.dm +++ b/code/modules/vehicles/ridden.dm @@ -40,7 +40,7 @@ inserted_key = I /obj/vehicle/ridden/AltClick(mob/user) - if(!inserted_key || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !issilicon(user))) + if(!inserted_key || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = !issilicon(user))) return ..() if(!is_occupant(user)) to_chat(user, span_warning("You must be riding the [src] to remove [src]'s key!")) diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm index 40aeb9741db..c3b8b3d04be 100644 --- a/code/modules/vehicles/wheelchair.dm +++ b/code/modules/vehicles/wheelchair.dm @@ -112,7 +112,7 @@ . = ..() if(over_object != usr || !Adjacent(usr) || !foldabletype) return FALSE - if(!ishuman(usr) || !usr.canUseTopic(src, BE_CLOSE)) + if(!ishuman(usr) || !usr.canUseTopic(src, be_close = TRUE)) return FALSE if(has_buckled_mobs()) return FALSE diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 7e5a7c92295..04d02be8182 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -1439,7 +1439,7 @@ GLOBAL_LIST_EMPTY(vending_products) to_chat(user, span_warning("You must be holding the price tagger to continue!")) return var/chosen_price = tgui_input_number(user, "Set price", "Price", price) - if(!chosen_price || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || loc != user) + if(!chosen_price || QDELETED(user) || QDELETED(src) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE) || loc != user) return price = chosen_price to_chat(user, span_notice(" The [src] will now give things a [price] cr tag."))