From 1ce77983df907363e442de5cc3db14fd08fe8e55 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sun, 2 Oct 2022 16:54:46 +0200 Subject: [PATCH] [MIRROR] canUseTopic now uses TRUE/FALSE instead of defines that just say TRUE [MDB IGNORE] (#16586) * canUseTopic now uses TRUE/FALSE instead of defines that just say TRUE * etes * eyes Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> --- 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 +- .../code/game/machinery/doors/firedoor.dm | 2 +- .../code/game/objects/items/dyekit.dm | 10 ++++----- .../code/game/objects/items/hhmirror.dm | 18 +++++++-------- .../code/modules/projectiles/guns/gun.dm | 6 ++--- .../aesthetics/flag/code/signs_flags.dm | 2 +- .../modules/cellguns/code/medigun_cells.dm | 2 +- .../game/objects/items/devices/ttsdevice.dm | 2 +- .../modules/clothing/glasses/glasses.dm | 2 +- .../modules/clothing/storage/belts.dm | 2 +- .../clothing/~donator/donator_clothing.dm | 4 ++-- modular_skyrat/modules/knives/knives.dm | 2 +- .../code/liquid_systems/liquid_plumbers.dm | 2 +- .../code/liquid_systems/liquid_pump.dm | 2 +- .../modular_items/code/summon_beacon.dm | 2 +- .../code/lewd_clothing/bdsm_mask.dm | 2 +- .../code/lewd_clothing/kink_collars.dm | 6 ++--- .../code/lewd_clothing/stripper_outfit.dm | 2 +- .../lewd_items/code/lewd_items/dildo.dm | 2 +- .../modules/morenarcotics/code/vapecarts.dm | 2 +- .../novaya_ert/code/advanced_choice_beacon.dm | 2 +- .../modules/pollution/code/perfumes.dm | 2 +- 177 files changed, 270 insertions(+), 271 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 1efb6d8aaf5..36f6d87abf0 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -722,16 +722,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 8335cfa6e28..b5d57a0bc0c 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 450a286820e..96955c47c0a 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -124,7 +124,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 6f445e2c3c6..029b105a7e4 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -171,7 +171,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 005b431891c..6b303005fce 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 2fe86a4dee2..ccbbb64723f 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -283,7 +283,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 f9718b70c76..681e2569bf8 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 53ff3de789e..904da00d648 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -185,7 +185,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 ac0a0a80f52..b99445e2ca8 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 b7d956e6ef5..fb37ba87784 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -215,7 +215,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 66cb460458e..b1ca4895f71 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 4b4a24b7154..114d12f5f46 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -628,7 +628,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 @@ -1244,7 +1244,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.") @@ -1570,7 +1570,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 dcda90eebe7..859f717b205 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -759,7 +759,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 795aae69c62..dde7a9eb6f1 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 3b588e9bd74..4708bfc9453 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 76a7e2b8393..87cbebce7e6 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 0c5a052db7a..a7673f32d65 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -86,7 +86,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 0d02c4fdad9..72cdd88cd5e 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 3d142bb45ea..7fb56446b30 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -459,7 +459,7 @@ /obj/item/healthanalyzer/AltClick(mob/user) ..() - if(!user.canUseTopic(src, BE_CLOSE) || !user.can_read(src)) //SKYRAT EDIT: Blind People Can Analyze Again + 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 3d5ce36867e..556d88ea47a 100644 --- a/code/game/objects/items/devices/swapper.dm +++ b/code/game/objects/items/devices/swapper.dm @@ -73,7 +73,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 8c4db4e7f06..696ef7a79f7 100644 --- a/code/game/objects/items/dyekit.dm +++ b/code/game/objects/items/dyekit.dm @@ -30,18 +30,18 @@ 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 4acb6694438..7f2bf6de986 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 413b96df4c1..8118450817d 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 9d5bd61ff30..e2e3205378b 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 326123ef7c6..c26e89ca7e4 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 eac2b91ac2b..6e4811e697f 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 8bd59fc803e..9229071d499 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 2551c2e9421..417d7d113cd 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 6027cdc83e5..5826bdb52c2 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -822,7 +822,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 3e112c2da6b..7783add062f 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 57f7d825089..ac8157ec926 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -290,7 +290,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 e3485250dad..914c14716ea 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 3543cd5fdfe..9cba2d7e3b7 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -279,7 +279,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) @@ -475,7 +475,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 d935f292f98..0800388597c 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 3a253cc39cb..3df9f8ccc82 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 59260749e43..455f9f19fad 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -111,7 +111,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 58ae81b14f0..9a6e0e9f579 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 99ff845d43f..6372cc6bcfd 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 ed16d9e62b7..23e3ce5acca 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -33,7 +33,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 @@ -43,7 +43,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...")) @@ -162,7 +162,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) @@ -170,7 +170,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 @@ -185,7 +185,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] @@ -199,7 +199,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) @@ -220,7 +220,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 @@ -230,7 +230,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 @@ -243,13 +243,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) @@ -264,7 +264,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 7a2b549b56b..7d14bbbc510 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 88367e9d8b0..f214a7c5c94 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -175,7 +175,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 8b52a22a453..7fb756b0931 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 f13233f9ed5..9b17500a8d7 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 dbac4ca250e..75a3434b57b 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 79736a13cf2..b74a7155adb 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -134,7 +134,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 303b4df4638..771b9358a71 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 4bf871a823a..017aae30e3c 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 ddf2cb70c40..5f75dc177ea 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 d1dae178476..a22af8f1335 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 1209a1ff94c..b8f7ad26f9b 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -291,7 +291,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 e4699daf68f..812ce6de60e 100644 --- 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 ba1ff7b302b..372452a9dad 100644 --- a/code/modules/events/ghost_role/pirates.dm +++ b/code/modules/events/ghost_role/pirates.dm @@ -194,7 +194,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 6b15b58bcc0..fb1c2062587 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 36b1ed1ef92..b65f34d59d7 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -584,7 +584,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 19630775189..0856f3e7d0a 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 7228bb97504..0b04e463ed3 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 a5690033a2b..8639b737ed9 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -212,7 +212,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 5fe97d73c0c..e0c76400fd7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -994,7 +994,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 367cab1a090..c545a2e5789 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 ef156df89ab..20d0c50ef6e 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 d8363d04888..5d3d4b41f79 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -137,7 +137,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 34c19ff27d0..add48b961da 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 fad77be7bdd..c3aac10ee6d 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 9f0e155feac..43728ce0d9c 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -418,7 +418,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 0c9c987cb18..d93ff1dc44f 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 f2a4ff5fb00..2ab388d61ca 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -515,7 +515,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 af1f6a398ac..229dd16e7f0 100644 --- a/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm +++ b/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm @@ -126,7 +126,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) @@ -135,7 +135,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 23bd9689cdb..e0c643b68fe 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -144,7 +144,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 47da858da5b..e332fe777a9 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 7880ef8390e..3a0d3fac48d 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 b4b5fb822b9..1d1bf0d3282 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 23704d756bb..2380dbfe8f9 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 d9fbdda2ef4..8c9ccd36468 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.")) diff --git a/modular_skyrat/master_files/code/game/machinery/doors/firedoor.dm b/modular_skyrat/master_files/code/game/machinery/doors/firedoor.dm index 6da8dd97e80..19e790f36e6 100644 --- a/modular_skyrat/master_files/code/game/machinery/doors/firedoor.dm +++ b/modular_skyrat/master_files/code/game/machinery/doors/firedoor.dm @@ -1,6 +1,6 @@ /obj/machinery/door/firedoor/AltClick(mob/user) . = ..() - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return try_manual_override(user) diff --git a/modular_skyrat/master_files/code/game/objects/items/dyekit.dm b/modular_skyrat/master_files/code/game/objects/items/dyekit.dm index a52b5f00844..90ccf6282e7 100644 --- a/modular_skyrat/master_files/code/game/objects/items/dyekit.dm +++ b/modular_skyrat/master_files/code/game/objects/items/dyekit.dm @@ -19,14 +19,14 @@ var/mob/living/carbon/human/human_target = target var/static/list/dye_options = list(DYE_OPTION_HAIR_COLOR, DYE_OPTION_GRADIENT) var/gradient_or_hair = tgui_alert(user, "What would you like to do?", "Hair Dye Spray", dye_options, autofocus = TRUE) - if(!gradient_or_hair || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE)) + if(!gradient_or_hair || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) return var/dying_themselves = target == user if(gradient_or_hair == DYE_OPTION_HAIR_COLOR) var/new_color = input(usr, "Choose a hair color:", "Character Preference", "#" + human_target.hair_color) as color|null - if(!new_color || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE)) + if(!new_color || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) return @@ -39,16 +39,16 @@ else var/beard_or_hair = input(user, "What do you want to dye?", "Character Preference") as null|anything in 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)) return var/list/choices = beard_or_hair == "Hair" ? GLOB.hair_gradients_list : GLOB.facial_hair_gradients_list var/new_grad_style = tgui_input_list(usr, "Choose a color pattern:", "Dye Spray", choices) - if(!new_grad_style || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE)) + if(!new_grad_style || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) return var/new_grad_color = input(usr, "Choose a secondary hair color:", "Dye Spray", human_target.grad_color) as color|null - if(!new_grad_color || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE)) + if(!new_grad_color || !user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) return human_target.visible_message(span_notice("[user] starts applying hair dye to [dying_themselves ? "their own" : "[human_target]'s"] hair..."), span_notice("[dying_themselves ? "You start" : "[user] starts"] applying hair dye to [dying_themselves ? "your own" : "your"] hair..."), ignored_mobs = user) diff --git a/modular_skyrat/master_files/code/game/objects/items/hhmirror.dm b/modular_skyrat/master_files/code/game/objects/items/hhmirror.dm index 7456c59ae6d..afc98749658 100644 --- a/modular_skyrat/master_files/code/game/objects/items/hhmirror.dm +++ b/modular_skyrat/master_files/code/game/objects/items/hhmirror.dm @@ -42,7 +42,7 @@ if(!newname) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return human_user.real_name = newname human_user.name = newname @@ -58,7 +58,7 @@ if(!newrace) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return human_user.set_species(newrace, icon_update = 0) @@ -88,7 +88,7 @@ if("gender") if(!(human_user.gender in list("male", "female"))) // blame the patriarchy 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(human_user.gender == "male") if(alert(human_user, "Become a Witch?", "Confirmation", "Yes", "No") == "Yes") @@ -109,7 +109,7 @@ if("hair") var/hairchoice = tgui_alert(human_user, "Hair style 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 if(hairchoice == "Style") // So you just want to use a mirror then? ..() @@ -127,7 +127,7 @@ if(BODY_ZONE_PRECISE_EYES) var/new_eye_color = input(human_user, "Choose your eye color", "Eye Color", human_user.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) human_user.eye_color_left = sanitize_hexcolor(new_eye_color) @@ -160,7 +160,7 @@ if(!newname) return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return human_user.real_name = newname human_user.name = newname @@ -172,7 +172,7 @@ if("gender") if(!(human_user.gender in list("male", "female"))) // blame the patriarchy 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(human_user.gender == "male") if(alert(human_user, "Become a Witch?", "Confirmation", "Yes", "No") == "Yes") @@ -193,7 +193,7 @@ if("hair") var/hairchoice = tgui_alert(human_user, "Hair style 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 if(hairchoice == "Style") // So you just want to use a mirror then? ..() @@ -211,7 +211,7 @@ if(BODY_ZONE_PRECISE_EYES) var/new_eye_color = input(human_user, "Choose your eye color", "Eye Color", human_user.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) human_user.eye_color_left = sanitize_hexcolor(new_eye_color) diff --git a/modular_skyrat/master_files/code/modules/projectiles/guns/gun.dm b/modular_skyrat/master_files/code/modules/projectiles/guns/gun.dm index f8f28db6115..16558bc332e 100644 --- a/modular_skyrat/master_files/code/modules/projectiles/guns/gun.dm +++ b/modular_skyrat/master_files/code/modules/projectiles/guns/gun.dm @@ -582,7 +582,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 return remove_bayonet(user, tool) @@ -608,7 +608,7 @@ if(!pin.can_remove) balloon_alert(user, "pin can't be removed!") 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 [tool]."), @@ -625,7 +625,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.can_remove) balloon_alert(user, "pin can't be removed!") diff --git a/modular_skyrat/modules/aesthetics/flag/code/signs_flags.dm b/modular_skyrat/modules/aesthetics/flag/code/signs_flags.dm index 36b5c6e627c..8243c7bb2e1 100644 --- a/modular_skyrat/modules/aesthetics/flag/code/signs_flags.dm +++ b/modular_skyrat/modules/aesthetics/flag/code/signs_flags.dm @@ -18,7 +18,7 @@ if(over_object == usr && Adjacent(usr)) if(!item_flag || 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)) return usr.visible_message(span_notice("[usr] grabs and folds \the [src.name]."), span_notice("You grab and fold \the [src.name].")) var/obj/item/flag_item = new item_flag(loc) diff --git a/modular_skyrat/modules/cellguns/code/medigun_cells.dm b/modular_skyrat/modules/cellguns/code/medigun_cells.dm index 2564ee61de4..8560b30f5e9 100644 --- a/modular_skyrat/modules/cellguns/code/medigun_cells.dm +++ b/modular_skyrat/modules/cellguns/code/medigun_cells.dm @@ -566,7 +566,7 @@ /obj/structure/bed/roller/medigun/MouseDrop(over_object, src_location, over_location) if(over_object == usr && Adjacent(usr)) - if(!ishuman(usr) || !usr.canUseTopic(src, BE_CLOSE)) + if(!ishuman(usr) || !usr.canUseTopic(src, be_close = TRUE)) return FALSE if(has_buckled_mobs()) diff --git a/modular_skyrat/modules/customization/game/objects/items/devices/ttsdevice.dm b/modular_skyrat/modules/customization/game/objects/items/devices/ttsdevice.dm index 3f426a6f764..6d033c40c21 100644 --- a/modular_skyrat/modules/customization/game/objects/items/devices/ttsdevice.dm +++ b/modular_skyrat/modules/customization/game/objects/items/devices/ttsdevice.dm @@ -12,7 +12,7 @@ user.balloon_alert_to_viewers("typing...", "started typing...") playsound(src, 'modular_skyrat/master_files/sound/items/tts/started_type.ogg', 50, TRUE) var/str = tgui_input_text(user, "What would you like the device to say?", "Say Text", "", MAX_MESSAGE_LEN, encode = FALSE) - if(QDELETED(src) || !user.canUseTopic(src, BE_CLOSE)) + if(QDELETED(src) || !user.canUseTopic(src, be_close = TRUE)) return if(!str) user.balloon_alert_to_viewers("stops typing", "stopped typing") diff --git a/modular_skyrat/modules/customization/modules/clothing/glasses/glasses.dm b/modular_skyrat/modules/customization/modules/clothing/glasses/glasses.dm index 91a8fecf17a..4aaa5268b88 100644 --- a/modular_skyrat/modules/customization/modules/clothing/glasses/glasses.dm +++ b/modular_skyrat/modules/customization/modules/clothing/glasses/glasses.dm @@ -10,7 +10,7 @@ . = ..() if(.) return - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, floor_okay = !iscyborg(user))) return else switcheye() diff --git a/modular_skyrat/modules/customization/modules/clothing/storage/belts.dm b/modular_skyrat/modules/customization/modules/clothing/storage/belts.dm index f47c1efebb8..024975648c1 100644 --- a/modular_skyrat/modules/customization/modules/clothing/storage/belts.dm +++ b/modular_skyrat/modules/customization/modules/clothing/storage/belts.dm @@ -65,7 +65,7 @@ return /obj/item/storage/belt/crusader/AltClick(mob/user) //This is basically the same as the normal sheath, but because there's always an item locked in the first slot it uses the second slot for swords - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) return if(contents.len == 2) var/obj/item/drawn_item = contents[2] diff --git a/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm b/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm index daa6bbcb0de..d58fe07ee96 100644 --- a/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm +++ b/modular_skyrat/modules/customization/modules/clothing/~donator/donator_clothing.dm @@ -197,7 +197,7 @@ selects["Save"] = "Save" selects["Delete"] = "Delete" var/selection = input(user, "", "Color Menu", currentcolor) as null|anything in selects - if(QDELETED(src) || !user.canUseTopic(src, BE_CLOSE)) + if(QDELETED(src) || !user.canUseTopic(src, be_close = TRUE)) return switch(selection) if("Save") @@ -214,7 +214,7 @@ currentcolor = colors[selection] else if(istype(action, /datum/action/item_action/dtcleargrid)) var/yesnomaybe = tgui_alert("Are you sure you wanna clear the canvas?", "", list("Yes", "No", "Maybe")) - if(QDELETED(src) || !user.canUseTopic(src, BE_CLOSE)) + if(QDELETED(src) || !user.canUseTopic(src, be_close = TRUE)) return switch(yesnomaybe) if("Yes") diff --git a/modular_skyrat/modules/knives/knives.dm b/modular_skyrat/modules/knives/knives.dm index edbb70adaa7..deaa73cc673 100644 --- a/modular_skyrat/modules/knives/knives.dm +++ b/modular_skyrat/modules/knives/knives.dm @@ -34,7 +34,7 @@ )) /obj/item/storage/belt/bowie_sheath/AltClick(mob/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) return if(length(contents)) var/obj/item/knife = contents[1] diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm index e18a5e54a59..dd02a96faa9 100644 --- a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm @@ -70,7 +70,7 @@ * Change regulator level -- ie. what liquid depth we are OK with, like a thermostat. */ /obj/machinery/plumbing/floor_pump/proc/set_regulator(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) return var/new_height = tgui_input_number(user, "At what water level should the pump stop pumping from 0 to [LIQUID_HEIGHT_CONSIDER_FULL_TILE]? 0 disables.", diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_pump.dm b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_pump.dm index 17fc60ce1af..c93d6f215c8 100644 --- a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_pump.dm +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_pump.dm @@ -34,7 +34,7 @@ toggle_working() /obj/structure/liquid_pump/AltClick(mob/living/user) - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE)) + if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE)) return to_chat(user, span_notice("You flick [src]'s spewing mode [spewing_mode ? "off" : "on"].")) spewing_mode = !spewing_mode diff --git a/modular_skyrat/modules/modular_items/code/summon_beacon.dm b/modular_skyrat/modules/modular_items/code/summon_beacon.dm index c0c3af8caaa..9671d06d9e9 100644 --- a/modular_skyrat/modules/modular_items/code/summon_beacon.dm +++ b/modular_skyrat/modules/modular_items/code/summon_beacon.dm @@ -42,7 +42,7 @@ show_options(user) /obj/item/summon_beacon/proc/can_use_beacon(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) diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/bdsm_mask.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/bdsm_mask.dm index 6a74024473f..5c023554b98 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/bdsm_mask.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/bdsm_mask.dm @@ -302,7 +302,7 @@ // I just wanted to add 2th color variation. Because. /obj/item/reagent_containers/cup/lewd_filter/AltClick(mob/user) // Catch first AltClick and open reskin menu - 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 // After reskin all clicks go normal, but we can't change the flow rate if mask on and equipped diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/kink_collars.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/kink_collars.dm index 3852ed24ebd..149b86279e1 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/kink_collars.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/kink_collars.dm @@ -71,7 +71,7 @@ /obj/item/clothing/neck/kink_collar/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) //rename collar code @@ -118,7 +118,7 @@ /obj/item/clothing/neck/kink_collar/locked/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) //locking or unlocking collar code @@ -196,7 +196,7 @@ //changing color of key in case if we using multiple collars /obj/item/key/kink_collar/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) //changing name of key in case if we using multiple collars with same color diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/stripper_outfit.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/stripper_outfit.dm index d2b143623c2..6cfee6c319d 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/stripper_outfit.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/stripper_outfit.dm @@ -24,5 +24,5 @@ /obj/item/clothing/under/stripper_outfit/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/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/dildo.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/dildo.dm index cdfbea992fb..5b92cedd37f 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/dildo.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/dildo.dm @@ -210,7 +210,7 @@ GLOBAL_LIST_INIT(dildo_colors, list(//mostly neon colors else if(color_changed) return - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(!istype(user) || !user.canUseTopic(src, be_close = TRUE, no_dexterity = FALSE, no_tk = TRUE)) return customize(user) color_changed = TRUE diff --git a/modular_skyrat/modules/morenarcotics/code/vapecarts.dm b/modular_skyrat/modules/morenarcotics/code/vapecarts.dm index 69017674d5b..ec1904c1494 100644 --- a/modular_skyrat/modules/morenarcotics/code/vapecarts.dm +++ b/modular_skyrat/modules/morenarcotics/code/vapecarts.dm @@ -43,7 +43,7 @@ to_chat(user, span_notice("You scribble illegibly on the label of the vape cart!")) return var/new_title = stripped_input(user, "What would you like to label the vape cart?", name, null, 53) - if(!user.canUseTopic(src, BE_CLOSE)) + if(!user.canUseTopic(src, be_close = TRUE)) return if(user.get_active_held_item() != attacked_item) return diff --git a/modular_skyrat/modules/novaya_ert/code/advanced_choice_beacon.dm b/modular_skyrat/modules/novaya_ert/code/advanced_choice_beacon.dm index 35c38753183..d96f1b4ec73 100644 --- a/modular_skyrat/modules/novaya_ert/code/advanced_choice_beacon.dm +++ b/modular_skyrat/modules/novaya_ert/code/advanced_choice_beacon.dm @@ -14,7 +14,7 @@ display_options(user) /obj/item/advanced_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) diff --git a/modular_skyrat/modules/pollution/code/perfumes.dm b/modular_skyrat/modules/pollution/code/perfumes.dm index 69f3830b7c6..a60a7267fec 100644 --- a/modular_skyrat/modules/pollution/code/perfumes.dm +++ b/modular_skyrat/modules/pollution/code/perfumes.dm @@ -42,7 +42,7 @@ /// Proc to handle removing the cap of the perfume bottle. /obj/item/perfume/proc/toggle_cap(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)) cap = !cap to_chat(user, span_notice("The cap on [src] is now [cap ? "on" : "off"].")) update_appearance()