diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index abeaede3c3f..4854c0e3ed4 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -50,7 +50,7 @@ for(var/obj/machinery/telecomms/receiver/R in SSmachinery.all_receivers) if(R.z in current_map.station_levels) R.receive_signal(src) - return + return TRUE var/closest_range = 999999 var/list/candidates = list() @@ -86,6 +86,7 @@ selected_receiver = candidates[1] selected_receiver.receive_signal(src) + return TRUE /datum/signal/subspace/proc/broadcast() set waitfor = FALSE diff --git a/code/game/machinery/telecomms/machines/allinone.dm b/code/game/machinery/telecomms/machines/allinone.dm index cf24a68e099..9a2bcd8d3cd 100644 --- a/code/game/machinery/telecomms/machines/allinone.dm +++ b/code/game/machinery/telecomms/machines/allinone.dm @@ -50,6 +50,9 @@ spawn(10) recent_broadcasts -= signal_message +/obj/machinery/telecomms/allinone/ship + away_aio = TRUE + /obj/machinery/telecomms/allinone/ship/LateInitialize() . = ..() if(!linked) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index f017f6f3442..fe052986761 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -441,7 +441,7 @@ var/global/list/default_medbay_channels = list( var/datum/signal/subspace/vocal/signal = new(src, connection.frequency, speaker_weakref, speaking, message, say_verb) // All radios attempt to use the subspace system - signal.send_to_receivers() + . = signal.send_to_receivers() // If it's subspace only, that's all we can do if(subspace_transmission) @@ -465,7 +465,7 @@ var/global/list/default_medbay_channels = list( if (!broadcasting || get_dist(src, M) > canhear_range) return - talk_into(M, msg, null, verb, speaking, ignore_restrained = TRUE) + return talk_into(M, msg, null, verb, speaking, ignore_restrained = TRUE) /obj/item/device/radio/proc/can_receive(input_frequency, list/levels) // check if the radio can receive on the given frequency diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index adce7d3ea29..b4d20b6120d 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -302,6 +302,9 @@ proc/get_radio_key_from_channel(var/channel) var/list/hear_clients = list() for(var/mob/M in listening) + if((M.client || (M.vr_mob && M.vr_mob.client)) && ((M.client in hear_clients) || (M.vr_mob?.client in hear_clients))) + listening -= M + continue // people don't need to double-hear stuff var/heard_say = M.hear_say(message, verb, speaking, alt_name, italics, src, speech_sound, sound_vol, get_font_size_modifier()) if(heard_say && M.client) hear_clients += M.client diff --git a/code/modules/mob/living/silicon/ai/ai_remote_control.dm b/code/modules/mob/living/silicon/ai/ai_remote_control.dm index 70cf7d9ffa1..abdc6ef905b 100644 --- a/code/modules/mob/living/silicon/ai/ai_remote_control.dm +++ b/code/modules/mob/living/silicon/ai/ai_remote_control.dm @@ -21,6 +21,7 @@ ) sprites = list("Basic" = list(ROBOT_CHASSIS = "shell", ROBOT_PANEL = "shell", ROBOT_EYES = "shell")) + all_access = TRUE /obj/item/robot_module/aicontrol/Initialize() . = ..() @@ -60,4 +61,3 @@ /obj/item/crowbar/robotic/jawsoflife/attack(mob/living/carbon/M, mob/living/carbon/user) user.visible_message("\The [user] [pick("boops", "squeezes", "pokes", "prods", "strokes", "bonks")] \the [M] with \the [src]") return FALSE - diff --git a/html/changelogs/johnwildkins-quickfixes.yml b/html/changelogs/johnwildkins-quickfixes.yml new file mode 100644 index 00000000000..8d3c3cdee11 --- /dev/null +++ b/html/changelogs/johnwildkins-quickfixes.yml @@ -0,0 +1,8 @@ +author: JohnWildkins + +delete-after: True + +changes: + - bugfix: "Fixed away site telecomms AIOs not initializing properly, causing comms to fail." + - bugfix: "Fixed AI shells having no access." + - bugfix: "Fixed AI / borgs / etc. speaking locally when sending a radio message."