diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 45420280f6..bd3eeb495d 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -244,12 +244,19 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
//#### Grab the connection datum ####//
var/datum/radio_frequency/connection = null
- if(channel && channels && channels.len > 0)
- if (channel == "department")
- //world << "DEBUG: channel=\"[channel]\" switching to \"[channels[1]]\""
- channel = channels[1]
- connection = secure_radio_connections[channel]
- else
+ if(channel == "headset")
+ channel = null
+ if(channel) // If a channel is specified, look for it.
+ if(channels && channels.len > 0)
+ if (channel == "department")
+ //world << "DEBUG: channel=\"[channel]\" switching to \"[channels[1]]\""
+ channel = channels[1]
+ connection = secure_radio_connections[channel]
+ if (!channels[channel]) // if the channel is turned off, don't broadcast
+ return
+ else
+ // If we were to send to a channel we don't have, drop it.
+ else // If a channel isn't specified, send to common.
connection = radio_connection
channel = null
if (!istype(connection))
@@ -744,7 +751,9 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
if(keyslot.syndie)
src.syndie = 1
-
+ var/mob/living/silicon/robot/Ro = usr
+ if(Ro.module)
+ src.config(Ro.module.channels)
for (var/ch_name in channels)
if(!radio_controller)
@@ -761,12 +770,16 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
if(usr.stat || !on)
return
if (href_list["mode"])
- subspace_transmission = !subspace_transmission
- if(!subspace_transmission)//Simple as fuck, clears the channel list to prevent talking/listening over them if subspace transmission is disabled
+ if(subspace_transmission != 1)
+ subspace_transmission = 1
+ usr << "Subspace Transmission is disabled"
+ else
+ subspace_transmission = 0
+ usr << "Subspace Transmission is enabled"
+ if(subspace_transmission == 1)//Simple as fuck, clears the channel list to prevent talking/listening over them if subspace transmission is disabled
channels = list()
else
recalculateChannels()
- usr << "Subspace Transmission is [(subspace_transmission) ? "enabled" : "disabled"]"
..()
/obj/item/device/radio/borg/interact(mob/user as mob)
@@ -785,7 +798,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
Toggle Broadcast Mode
"}
- if(subspace_transmission)//Don't even bother if subspace isn't turned on
+ if(!subspace_transmission)//Don't even bother if subspace isn't turned on
for (var/ch_name in channels)
dat+=text_sec_channel(ch_name, channels[ch_name])
dat+={"[text_wires()]