diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 276992860db..d5b41a02371 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -142,6 +142,8 @@ ui.open() /obj/machinery/sleeper/AltClick(mob/user) + if(!user.canUseTopic(src, !issilicon(user))) + return if(state_open) close_machine() else diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm index ce4aa0c5920..35aa8f7746f 100644 --- a/code/game/machinery/aug_manipulator.dm +++ b/code/game/machinery/aug_manipulator.dm @@ -130,7 +130,7 @@ /obj/machinery/aug_manipulator/AltClick(mob/living/user) ..() - if(!user.canUseTopic(src)) + if(!user.canUseTopic(src, !issilicon(user))) return else eject_part(user) diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index b2324d0cae6..36393fb2e6b 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -90,7 +90,7 @@ /obj/machinery/computer/apc_control/Topic(href, href_list) if(..()) return - if(!usr || !usr.canUseTopic(src) || stat || QDELETED(src)) + if(!usr || !usr.canUseTopic(src, !issilicon(usr)) || stat || QDELETED(src)) return if(href_list["authenticate"]) var/obj/item/card/id/ID = usr.get_idcard(TRUE) @@ -139,7 +139,7 @@ if(href_list["name_filter"]) playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) var/new_filter = stripped_input(usr, "What name are you looking for?", name) - if(!src || !usr || !usr.canUseTopic(src) || stat || QDELETED(src)) + if(!src || !usr || !usr.canUseTopic(src, !issilicon(usr)) || stat || QDELETED(src)) return log_activity("changed name filter to \"[new_filter]\"") playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) @@ -147,7 +147,7 @@ if(href_list["above_filter"]) playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) var/new_filter = input(usr, "Enter a percentage from 1-100 to sort by (greater than).", name) as null|num - if(!src || !usr || !usr.canUseTopic(src) || stat || QDELETED(src)) + if(!src || !usr || !usr.canUseTopic(src, !issilicon(usr)) || stat || QDELETED(src)) return log_activity("changed greater than charge filter to \"[new_filter]\"") if(new_filter) @@ -157,7 +157,7 @@ if(href_list["below_filter"]) playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) var/new_filter = input(usr, "Enter a percentage from 1-100 to sort by (lesser than).", name) as null|num - if(!src || !usr || !usr.canUseTopic(src) || stat || QDELETED(src)) + if(!src || !usr || !usr.canUseTopic(src, !issilicon(usr)) || stat || QDELETED(src)) return log_activity("changed lesser than charge filter to \"[new_filter]\"") if(new_filter) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index db2192789c4..22dd25037e7 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -52,7 +52,7 @@ /obj/machinery/computer/communications/Topic(href, href_list) if(..()) return - if(!usr.canUseTopic(src)) + if(!usr.canUseTopic(src, !issilicon(usr))) return if(!is_station_level(z) && !is_reserved_level(z)) //Can only use in transit and on SS13 to_chat(usr, "Unable to establish a connection: \black You're too far away from the station!") @@ -708,7 +708,7 @@ to_chat(user, "Intercomms recharging. Please stand by.") return var/input = stripped_input(user, "Please choose a message to announce to the station crew.", "What?") - if(!input || !user.canUseTopic(src)) + if(!input || !user.canUseTopic(src, !issilicon(usr))) return SScommunications.make_announcement(user, is_silicon, input) deadchat_broadcast("[user.real_name] made a priority announcement from [get_area_name(usr, TRUE)].", user) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index d65fb491610..5389a579961 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -583,7 +583,7 @@ if(user) if(message) if(authenticated) - if(user.canUseTopic(src)) + if(user.canUseTopic(src, BE_CLOSE)) if(!record1 || record1 == active1) if(!record2 || record2 == active2) return 1 diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 9d0ba743405..0335572ef0b 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -816,7 +816,7 @@ What a mess.*/ /obj/machinery/computer/secure_data/proc/canUseSecurityRecordsConsole(mob/user, message1 = 0, record1, record2) if(user) if(authenticated) - if(user.canUseTopic(src)) + if(user.canUseTopic(src, BE_CLOSE)) if(!trim(message1)) return 0 if(!record1 || record1 == active1) @@ -825,7 +825,7 @@ What a mess.*/ return 0 /obj/machinery/computer/secure_data/AltClick(mob/user) - if(user.canUseTopic(src)) + if(user.canUseTopic(src, !issilicon(user))) eject_id(user) /obj/machinery/computer/secure_data/proc/eject_id(mob/user) diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index 77396effcbb..4eebeb23107 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -34,7 +34,7 @@ last_stasis_sound = _running /obj/machinery/stasis/AltClick(mob/user) - if(world.time >= stasis_can_toggle && user.canUseTopic(src)) + if(world.time >= stasis_can_toggle && user.canUseTopic(src, !issilicon(user))) stasis_enabled = !stasis_enabled stasis_can_toggle = world.time + STASIS_TOGGLE_COOLDOWN playsound(src, 'sound/machines/click.ogg', 60, TRUE) diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index a44a643e967..ebfc2f506f9 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -19,7 +19,7 @@ to_chat(user, "Alt-click it to start a wash cycle.") /obj/machinery/washing_machine/AltClick(mob/user) - if(!user.canUseTopic(src)) + if(!user.canUseTopic(src, !issilicon(user))) return if(busy) diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index cb20bc36d4e..f4a41dae23f 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -278,7 +278,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( /obj/item/pipe_dispenser/ui_act(action, params) if(..()) return - if(!usr.canUseTopic(src)) + if(!usr.canUseTopic(src, BE_CLOSE)) return var/playeffect = TRUE switch(action) diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index fe51b0fc0ad..768c7ac2137 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -88,7 +88,7 @@ to_chat(user, "Take the cap off first!") return var/new_appearance = input(user, "Choose a new appearance for [src].", "26th Century Deception") as null|anything in possible_appearances - if(!new_appearance || !crayon || !user.canUseTopic(src)) + if(!new_appearance || !crayon || !user.canUseTopic(src, BE_CLOSE)) return if(!do_after(user, 10, FALSE, src, TRUE)) return diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 33a341788b5..798bfe47804 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -472,7 +472,7 @@ GENE SCANNER /obj/item/analyzer/AltClick(mob/user) //Barometer output for measuring when the next storm happens ..() - if(user.canUseTopic(src)) + if(user.canUseTopic(src, BE_CLOSE)) if(cooldown) to_chat(user, "[src]'s barometer function is preparing itself.") diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 1c48dea1a15..0981469eb6a 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -99,7 +99,7 @@ /obj/item/transfer_valve/Topic(href, href_list) ..() - if(!usr.canUseTopic(src)) + if(!usr.canUseTopic(src, BE_CLOSE)) return if(tank_one && href_list["tankone"]) split_gases() diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 73bb8a86408..b24a6dfde4d 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -66,7 +66,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", H << browse(dat, "window=editicon;can_close=0;can_minimize=0;size=250x650") /obj/item/storage/book/bible/Topic(href, href_list) - if(!usr.canUseTopic(src)) + if(!usr.canUseTopic(src, BE_CLOSE)) return if(href_list["seticon"] && SSreligion && !SSreligion.bible_icon_state) var/iconi = text2num(href_list["seticon"]) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 0a5862711db..f26efcaa328 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -417,7 +417,7 @@ /obj/structure/closet/CtrlShiftClick(mob/living/user) if(!HAS_TRAIT(user, TRAIT_SKITTISH)) return ..() - if(!user.canUseTopic(src) || !isturf(user.loc)) + if(!user.canUseTopic(src, BE_CLOSE) || !isturf(user.loc)) return dive_into(user) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 9f5d6035afb..9fd097f6ad2 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -96,7 +96,7 @@ FLOOR SAFES return var/mob/living/carbon/human/user = usr - if(!user.canUseTopic(src)) + if(!user.canUseTopic(src, BE_CLOSE)) return var/canhear = FALSE diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm index 782d729ce4a..55ca5b61932 100644 --- a/code/modules/assembly/health.dm +++ b/code/modules/assembly/health.dm @@ -90,7 +90,7 @@ var/mob/user = usr - if(!user.canUseTopic(src)) + if(!user.canUseTopic(src, BE_CLOSE)) usr << browse(null, "window=hscan") onclose(usr, "hscan") return diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 70d75c8077c..756b9fac4b1 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -132,7 +132,7 @@ if(!active) if(alert(user, "Turning the scrambler on will make the shuttle trackable by GPS. Are you sure you want to do it?", "Scrambler", "Yes", "Cancel") == "Cancel") return - if(active || !user.canUseTopic(src)) + if(active || !user.canUseTopic(src, BE_CLOSE)) return toggle_on(user) update_icon() @@ -447,4 +447,4 @@ /datum/export/pirate/holochip/get_cost(atom/movable/AM) var/obj/item/holochip/H = AM - return H.credits \ No newline at end of file + return H.credits diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index c91d0e77ab6..91014587180 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -188,13 +188,13 @@ ..() /obj/machinery/microwave/AltClick(mob/user) - if(user.canUseTopic(src, BE_CLOSE)) + if(user.canUseTopic(src, !issilicon(usr))) cook() /obj/machinery/microwave/ui_interact(mob/user) . = ..() - if(operating || panel_open || !anchored || !user.canUseTopic(src)) + if(operating || panel_open || !anchored || !user.canUseTopic(src, !issilicon(user))) return if(isAI(user) && (stat & NOPOWER)) return @@ -209,7 +209,7 @@ var/choice = show_radial_menu(user, src, isAI(user) ? ai_radial_options : radial_options, require_near = !issilicon(user)) // post choice verification - if(operating || panel_open || !anchored || !user.canUseTopic(src)) + if(operating || panel_open || !anchored || !user.canUseTopic(src, !issilicon(user))) return if(isAI(user) && (stat & NOPOWER)) return diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2c86eaf6c75..be172bcf0fb 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -700,7 +700,7 @@ to_chat(src, "You can't do that right now!") return FALSE if(!Adjacent(M) && (M.loc != src)) - if((be_close == 0) || (!no_tk && (dna.check_mutation(TK) && tkMaxRangeCheck(src, M)))) + if((be_close == FALSE) || (!no_tk && (dna.check_mutation(TK) && tkMaxRangeCheck(src, M)))) return TRUE to_chat(src, "You are too far away!") return FALSE diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index b4f567158c2..c58ecca5727 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -97,7 +97,7 @@ if(issilicon(usr)) return var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD] - if(usr.canUseTopic(src)) + if(usr.canUseTopic(src, BE_CLOSE)) card_slot.try_eject(null, usr) // Eject ID card from computer, if it has ID slot with card inside. @@ -108,7 +108,7 @@ if(issilicon(usr)) return var/obj/item/computer_hardware/ai_slot/ai_slot = all_components[MC_AI] - if(usr.canUseTopic(src)) + if(usr.canUseTopic(src, BE_CLOSE)) ai_slot.try_eject(null, usr,1) @@ -120,7 +120,7 @@ if(issilicon(usr)) return - if(usr.canUseTopic(src)) + if(usr.canUseTopic(src, BE_CLOSE)) var/obj/item/computer_hardware/hard_drive/portable/portable_drive = all_components[MC_SDD] if(uninstall_component(portable_drive, usr)) portable_drive.verb_pickup() @@ -130,7 +130,7 @@ if(issilicon(user)) return - if(user.canUseTopic(src)) + if(user.canUseTopic(src, BE_CLOSE)) var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD] var/obj/item/computer_hardware/ai_slot/ai_slot = all_components[MC_AI] var/obj/item/computer_hardware/hard_drive/portable/portable_drive = all_components[MC_SDD] @@ -159,7 +159,7 @@ /obj/item/modular_computer/MouseDrop(obj/over_object, src_location, over_location) var/mob/M = usr - if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src)) + if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src, BE_CLOSE)) 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 3106a9e5105..07f762353f4 100644 --- a/code/modules/modular_computers/computers/item/laptop.dm +++ b/code/modules/modular_computers/computers/item/laptop.dm @@ -77,7 +77,7 @@ return if(!isturf(loc) && !ismob(loc)) // No opening it in backpack. return - if(!user.canUseTopic(src)) + if(!user.canUseTopic(src, BE_CLOSE)) return toggle_open(user) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index db5c0ded73a..67222a1931e 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -166,7 +166,7 @@ /obj/machinery/reagentgrinder/ui_interact(mob/user) // The microwave Menu //I am reasonably certain that this is not a microwave . = ..() - if(operating || !user.canUseTopic(src)) + if(operating || !user.canUseTopic(src, !issilicon(user))) return var/list/options = list() @@ -197,7 +197,7 @@ choice = show_radial_menu(user, src, options, require_near = !issilicon(user)) // post choice verification - if(operating || (isAI(user) && stat & NOPOWER) || !user.canUseTopic(src)) + if(operating || (isAI(user) && stat & NOPOWER) || !user.canUseTopic(src, !issilicon(user))) return switch(choice)