diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index c1d3aecb021..b352cb09ccd 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -20,6 +20,11 @@ keyslot1 = new /obj/item/device/encryptionkey/ recalculateChannels() +/obj/item/device/radio/headset/talk_into(mob/living/M as mob, message, channel) + if (!listening) + return + ..() + /obj/item/device/radio/headset/receive_range(freq, level) if(ishuman(src.loc)) var/mob/living/carbon/human/H = src.loc diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index c3c811e82eb..01eb03a4a17 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -60,7 +60,7 @@ on = 0 else var/area/A = src.loc.loc - if(!A || !isarea(A) || !A.master) + if(!A || !isarea(A) || !A.master || emped) on = 0 else on = A.master.powered(EQUIP) // set "on" to the power status diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 8d08d67dcc5..97ed76e4f90 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -24,6 +24,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use var/subspace_transmission = 0 var/syndie = 0//Holder to see if it's a syndicate encrpyed radio var/maxf = 1499 + var/emped = 0 // since radios don't use machinery stat binary flags they get a seperate variable // "Example" = FREQ_LISTENING|FREQ_BROADCASTING flags = FPRINT | CONDUCT | TABLEPASS slot_flags = SLOT_BELT @@ -83,11 +84,14 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use var/dat = "" - if(!istype(src, /obj/item/device/radio/headset)) //Headsets dont get a mic button - dat += "Microphone: [broadcasting ? "Engaged" : "Disengaged"]
" - - dat += {" + if(!istype(src, /obj/item/device/radio/headset)) + dat += {" + Microphone: [broadcasting ? "Engaged" : "Disengaged"]
Speaker: [listening ? "Engaged" : "Disengaged"]
+ "} + else //Headsets dont get a mic button, speaker controls both + dat += "Power: [listening ? "Engaged" : "Disengaged"]
" + dat += {" Frequency: - - @@ -116,8 +120,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use /obj/item/device/radio/proc/text_sec_channel(var/chan_name, var/chan_stat) var/list = !!(chan_stat&FREQ_LISTENING)!=0 return {" - [chan_name]
- Speaker: [list ? "Engaged" : "Disengaged"]
+ [chan_name]: [list ? "Engaged" : "Disengaged"]
"} /obj/item/device/radio/Topic(href, href_list) @@ -223,6 +226,8 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use //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 connection = radio_connection channel = null @@ -662,10 +667,20 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use else return /obj/item/device/radio/emp_act(severity) + if (emped == 1) // + return + if (listening && ismob(loc)) // if the radio is turned on and on someone's person they notice + loc << "\The [src] overloads." broadcasting = 0 listening = 0 for (var/ch_name in channels) channels[ch_name] = 0 + on = 0 + spawn(200) + emped = 0 + if (!istype(src, /obj/item/device/radio/intercom)) // intercoms will turn back on on their own + on = 1 + emped = 1 ..() /////////////////////////////// diff --git a/html/changelog.html b/html/changelog.html index 9b9e9af221c..687992138a6 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -62,6 +62,14 @@ should be listed in the changelog upon commit tho. Thanks. --> +
+

4 June 2013

+

Dumpdavidson updated:

+ +
+

25 May 2013

Ikarrus updated: