diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
index 785d58520a0..8f828c178ad 100644
--- a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
@@ -43,8 +43,8 @@
icon = null
/obj/machinery/atmospherics/binary/dp_vent_pump/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -158,10 +158,10 @@
//Radio remote control
/obj/machinery/atmospherics/binary/dp_vent_pump/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA)
+ radio_connection = SSradio.add_object(src, frequency, filter = RADIO_ATMOSIA)
/obj/machinery/atmospherics/binary/dp_vent_pump/proc/broadcast_status()
if(!radio_connection)
diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
index 9e845c15a98..8becfa37c10 100644
--- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
@@ -22,8 +22,8 @@
set_frequency(frequency)
/obj/machinery/atmospherics/binary/passive_gate/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -70,10 +70,10 @@
//Radio remote control
/obj/machinery/atmospherics/binary/passive_gate/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA)
+ radio_connection = SSradio.add_object(src, frequency, filter = RADIO_ATMOSIA)
/obj/machinery/atmospherics/binary/passive_gate/proc/broadcast_status()
if(!radio_connection)
diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm
index 118a70c3ecd..ca01ae61716 100644
--- a/code/ATMOSPHERICS/components/binary_devices/pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm
@@ -29,8 +29,8 @@ Thus, the two variables affect pump operation are set in New():
var/datum/radio_frequency/radio_connection
/obj/machinery/atmospherics/binary/pump/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -86,10 +86,10 @@ Thus, the two variables affect pump operation are set in New():
//Radio remote control
/obj/machinery/atmospherics/binary/pump/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA)
+ radio_connection = SSradio.add_object(src, frequency, filter = RADIO_ATMOSIA)
/obj/machinery/atmospherics/binary/pump/proc/broadcast_status()
if(!radio_connection)
diff --git a/code/ATMOSPHERICS/components/binary_devices/valve.dm b/code/ATMOSPHERICS/components/binary_devices/valve.dm
index f8f282a55af..dabe548ce9f 100644
--- a/code/ATMOSPHERICS/components/binary_devices/valve.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/valve.dm
@@ -72,8 +72,8 @@
settagwhitelist = list("id_tag")
/obj/machinery/atmospherics/binary/valve/digital/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -104,10 +104,10 @@
icon_state = "valve[open]nopower"
/obj/machinery/atmospherics/binary/valve/digital/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/obj/machinery/atmospherics/binary/valve/digital/atmos_init()
..()
diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm
index a64c94e7fc5..11874172340 100644
--- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm
@@ -29,8 +29,8 @@ Thus, the two variables affect pump operation are set in New():
var/datum/radio_frequency/radio_connection
/obj/machinery/atmospherics/binary/volume_pump/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -82,10 +82,10 @@ Thus, the two variables affect pump operation are set in New():
return 1
/obj/machinery/atmospherics/binary/volume_pump/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency)
+ radio_connection = SSradio.add_object(src, frequency)
/obj/machinery/atmospherics/binary/volume_pump/proc/broadcast_status()
if(!radio_connection)
diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
index 903f917e0c6..c6720e45f6e 100755
--- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
@@ -24,8 +24,8 @@ Filter types:
/obj/machinery/atmospherics/trinary/filter/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -34,10 +34,10 @@ Filter types:
flipped = 1
/obj/machinery/atmospherics/trinary/filter/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/obj/machinery/atmospherics/trinary/filter/update_icon()
if(flipped)
diff --git a/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm b/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm
index 9dddf8b06f4..3ec4e8443e4 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm
@@ -109,8 +109,8 @@
var/datum/radio_frequency/radio_connection
/obj/machinery/atmospherics/trinary/tvalve/digital/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -151,10 +151,10 @@
//Radio remote control
/obj/machinery/atmospherics/trinary/tvalve/digital/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/obj/machinery/atmospherics/trinary/tvalve/digital/atmos_init()
..()
diff --git a/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm b/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm
index d597d0eb4c4..509b36ff8ab 100644
--- a/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm
+++ b/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm
@@ -32,8 +32,8 @@
id_tag = id
/obj/machinery/atmospherics/unary/outlet_injector/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -95,10 +95,10 @@
flick("inject", src)
/obj/machinery/atmospherics/unary/outlet_injector/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency)
+ radio_connection = SSradio.add_object(src, frequency)
/obj/machinery/atmospherics/unary/outlet_injector/proc/broadcast_status()
if(!radio_connection)
diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
index 613d0f0794e..0ac609cb6ec 100644
--- a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
@@ -180,10 +180,10 @@
//Radio remote control
/obj/machinery/atmospherics/unary/vent_pump/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency,radio_filter_in)
+ radio_connection = SSradio.add_object(src, frequency,radio_filter_in)
if(frequency != ATMOS_VENTSCRUB)
initial_loc.air_vent_info -= id_tag
initial_loc.air_vent_names -= id_tag
@@ -435,7 +435,7 @@
if(initial_loc)
initial_loc.air_vent_info -= id_tag
initial_loc.air_vent_names -= id_tag
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm
index 8416a784019..82cdfa46e97 100644
--- a/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm
@@ -53,8 +53,8 @@
if(initial_loc && frequency == ATMOS_VENTSCRUB)
initial_loc.air_scrub_info -= id_tag
initial_loc.air_scrub_names -= id_tag
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -127,9 +127,9 @@
add_underlay(T,, dir)
/obj/machinery/atmospherics/unary/vent_scrubber/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, radio_filter_in)
+ radio_connection = SSradio.add_object(src, frequency, radio_filter_in)
if(frequency != ATMOS_VENTSCRUB)
initial_loc.air_scrub_info -= id_tag
initial_loc.air_scrub_names -= id_tag
diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm
new file mode 100644
index 00000000000..e49a9ea9b67
--- /dev/null
+++ b/code/__DEFINES/radio.dm
@@ -0,0 +1,60 @@
+
+#define DISPLAY_FREQ 1435 //status displays
+#define ATMOS_FIRE_FREQ 1437 //air alarms
+#define ENGINE_FREQ 1438 //engine components
+#define ATMOS_VENTSCRUB 1439 //vents, scrubbers, atmos control
+#define ATMOS_DISTRO_FREQ 1443 //distro loop
+#define ATMOS_TANKS_FREQ 1441 //atmos supply tanks
+#define BOT_BEACON_FREQ 1445 //bot navigation beacons
+#define AIRLOCK_FREQ 1449 //airlock controls, electropack, magnets
+
+#define RSD_FREQ 1457 //radio signal device
+#define IMPL_FREQ 1451 //tracking implant
+
+#define RADIO_LOW_FREQ 1200 //minimum radio freq
+#define PUBLIC_LOW_FREQ 1441 //minimum radio chat freq
+#define PUBLIC_HIGH_FREQ 1489 //maximum radio chat freq
+#define RADIO_HIGH_FREQ 1600 //maximum radio freq
+
+#define SYND_FREQ 1213
+#define SYNDTEAM_FREQ 1244
+#define DTH_FREQ 1341 //Special Operations
+#define AI_FREQ 1343
+#define ERT_FREQ 1345
+#define COMM_FREQ 1353 //Command
+#define BOT_FREQ 1447 //mulebot, secbot, ed209
+
+
+// Department channels
+#define PUB_FREQ 1459 //standard radio chat
+#define SEC_FREQ 1359 //security
+#define ENG_FREQ 1357 //engineering
+#define SCI_FREQ 1351 //science
+#define MED_FREQ 1355 //medical
+#define SUP_FREQ 1347 //cargo
+#define SRV_FREQ 1349 //service
+
+// Internal department channels
+#define MED_I_FREQ 1485
+#define SEC_I_FREQ 1475
+
+// Transmission methods
+#define TRANSMISSION_WIRE 0
+#define TRANSMISSION_RADIO 1
+
+//This filter is special because devices belonging to default also recieve signals sent to any other filter.
+#define RADIO_DEFAULT "radio_default"
+#define RADIO_TO_AIRALARM "radio_airalarm" //air alarms
+#define RADIO_FROM_AIRALARM "radio_airalarm_rcvr" //devices interested in recieving signals from air alarms
+#define RADIO_CHAT "radio_telecoms"
+#define RADIO_ATMOSIA "radio_atmos"
+#define RADIO_NAVBEACONS "radio_navbeacon"
+#define RADIO_AIRLOCK "radio_airlock"
+#define RADIO_SECBOT "radio_secbot"
+#define RADIO_HONKBOT "radio_honkbot"
+#define RADIO_MULEBOT "radio_mulebot"
+#define RADIO_CLEANBOT "10"
+#define RADIO_FLOORBOT "11"
+#define RADIO_MEDBOT "12"
+#define RADIO_MAGNETS "radio_magnet"
+#define RADIO_LOGIC "radio_logic"
diff --git a/code/controllers/communications.dm b/code/controllers/communications.dm
deleted file mode 100644
index 8d22febee61..00000000000
--- a/code/controllers/communications.dm
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- HOW IT WORKS
-
- The radio_controller is a global object maintaining all radio transmissions, think about it as about "ether".
- Note that walkie-talkie, intercoms and headsets handle transmission using nonstandard way.
- procs:
-
- add_object(obj/device as obj, var/new_frequency as num, var/filter as text|null = null)
- Adds listening object.
- parameters:
- device - device receiving signals, must have proc receive_signal (see description below).
- one device may listen several frequencies, but not same frequency twice.
- new_frequency - see possibly frequencies below;
- filter - thing for optimization. Optional, but recommended.
- All filters should be consolidated in this file, see defines later.
- Device without listening filter will receive all signals (on specified frequency).
- Device with filter will receive any signals sent without filter.
- Device with filter will not receive any signals sent with different filter.
- returns:
- Reference to frequency object.
-
- remove_object (obj/device, old_frequency)
- Obliviously, after calling this proc, device will not receive any signals on old_frequency.
- Other frequencies will left unaffected.
-
- return_frequency(var/frequency as num)
- returns:
- Reference to frequency object. Use it if you need to send and do not need to listen.
-
- radio_frequency is a global object maintaining list of devices that listening specific frequency.
- procs:
-
- post_signal(obj/source as obj|null, datum/signal/signal, var/filter as text|null = null, var/range as num|null = null)
- Sends signal to all devices that wants such signal.
- parameters:
- source - object, emitted signal. Usually, devices will not receive their own signals.
- signal - see description below.
- filter - described above.
- range - radius of regular byond's square circle on that z-level. null means everywhere, on all z-levels.
-
- obj/proc/receive_signal(datum/signal/signal, var/receive_method as num, var/receive_param)
- Handler from received signals. By default does nothing. Define your own for your object.
- Avoid of sending signals directly from this proc, use spawn(-1). DO NOT use sleep() here or call procs that sleep please. If you must, use spawn()
- parameters:
- signal - see description below. Extract all needed data from the signal before doing sleep(), spawn() or return!
- receive_method - may be TRANSMISSION_WIRE or TRANSMISSION_RADIO.
- TRANSMISSION_WIRE is currently unused.
- receive_param - for TRANSMISSION_RADIO here comes frequency.
-
- datum/signal
- vars:
- source
- an object that emitted signal. Used for debug and bearing.
- data
- list with transmitting data. Usual use pattern:
- data["msg"] = "hello world"
- encryption
- Some number symbolizing "encryption key".
- Note that game actually do not use any cryptography here.
- If receiving object don't know right key, it must ignore encrypted signal in its receive_signal.
-
-*/
-
-var/const/DISPLAY_FREQ = 1435 //status displays
-var/const/ATMOS_FIRE_FREQ = 1437 //air alarms
-var/const/ENGINE_FREQ = 1438 //engine components
-var/const/ATMOS_VENTSCRUB = 1439 //vents, scrubbers, atmos control
-var/const/ATMOS_DISTRO_FREQ = 1443 //distro loop
-var/const/ATMOS_TANKS_FREQ = 1441 //atmos supply tanks
-var/const/BOT_BEACON_FREQ = 1445 //bot navigation beacons
-var/const/AIRLOCK_FREQ = 1449 //airlock controls, electropack, magnets
-
-var/const/RSD_FREQ = 1457 //radio signal device
-var/const/IMPL_FREQ = 1451 //tracking implant
-
-var/const/RADIO_LOW_FREQ = 1200 //minimum radio freq
-var/const/PUBLIC_LOW_FREQ = 1441 //minimum radio chat freq
-var/const/PUBLIC_HIGH_FREQ = 1489 //maximum radio chat freq
-var/const/RADIO_HIGH_FREQ = 1600 //maximum radio freq
-
-var/const/SYND_FREQ = 1213
-var/const/SYNDTEAM_FREQ = 1244
-var/const/DTH_FREQ = 1341 //Special Operations
-var/const/AI_FREQ = 1343
-var/const/ERT_FREQ = 1345
-var/const/COMM_FREQ = 1353 //Command
-var/const/BOT_FREQ = 1447 //mulebot, secbot, ed209
-
-
-// department channels
-var/const/PUB_FREQ = 1459 //standard radio chat
-var/const/SEC_FREQ = 1359 //security
-var/const/ENG_FREQ = 1357 //engineering
-var/const/SCI_FREQ = 1351 //science
-var/const/MED_FREQ = 1355 //medical
-var/const/SUP_FREQ = 1347 //cargo
-var/const/SRV_FREQ = 1349 //service
-
-// internal department channels
-var/const/MED_I_FREQ = 1485
-var/const/SEC_I_FREQ = 1475
-
-var/list/radiochannels = list(
- "Common" = PUB_FREQ,
- "Science" = SCI_FREQ,
- "Command" = COMM_FREQ,
- "Medical" = MED_FREQ,
- "Engineering" = ENG_FREQ,
- "Security" = SEC_FREQ,
- "Response Team" = ERT_FREQ,
- "Special Ops" = DTH_FREQ,
- "Syndicate" = SYND_FREQ,
- "SyndTeam" = SYNDTEAM_FREQ,
- "Supply" = SUP_FREQ,
- "Service" = SRV_FREQ,
- "AI Private" = AI_FREQ,
- "Medical(I)" = MED_I_FREQ,
- "Security(I)" = SEC_I_FREQ
-)
-
-// central command channels, i.e deathsquid & response teams
-var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ)
-
-// Antag channels, i.e. Syndicate
-var/list/ANTAG_FREQS = list(SYND_FREQ, SYNDTEAM_FREQ)
-
-//Department channels, arranged lexically
-var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ)
-
-#define TRANSMISSION_WIRE 0
-#define TRANSMISSION_RADIO 1
-
-/proc/frequency_span_class(var/frequency)
- // Antags!
- if(frequency in ANTAG_FREQS)
- return "syndradio"
- // centcomm channels (deathsquid and ert)
- if(frequency in CENT_FREQS)
- return "centradio"
- // command channel
- if(frequency == COMM_FREQ)
- return "comradio"
- // AI private channel
- if(frequency == AI_FREQ)
- return "airadio"
- // department radio formatting (poorly optimized, ugh)
- if(frequency == SEC_FREQ)
- return "secradio"
- if(frequency == ENG_FREQ)
- return "engradio"
- if(frequency == SCI_FREQ)
- return "sciradio"
- if(frequency == MED_FREQ)
- return "medradio"
- if(frequency == SUP_FREQ)
- return "supradio"
- if(frequency == SRV_FREQ)
- return "srvradio"
- if(frequency in DEPT_FREQS)
- return "deptradio"
-
- return "radio"
-
-/* filters */
-//When devices register with the radio controller, they might register under a certain filter.
-//Other devices can then choose to send signals to only those devices that belong to a particular filter.
-//This is done for performance, so we don't send signals to lots of machines unnecessarily.
-
-//This filter is special because devices belonging to default also recieve signals sent to any other filter.
-var/const/RADIO_DEFAULT = "radio_default"
-
-var/const/RADIO_TO_AIRALARM = "radio_airalarm" //air alarms
-var/const/RADIO_FROM_AIRALARM = "radio_airalarm_rcvr" //devices interested in recieving signals from air alarms
-var/const/RADIO_CHAT = "radio_telecoms"
-var/const/RADIO_ATMOSIA = "radio_atmos"
-var/const/RADIO_NAVBEACONS = "radio_navbeacon"
-var/const/RADIO_AIRLOCK = "radio_airlock"
-var/const/RADIO_SECBOT = "radio_secbot"
-var/const/RADIO_HONKBOT = "radio_honkbot"
-var/const/RADIO_MULEBOT = "radio_mulebot"
-var/const/RADIO_CLEANBOT = "10"
-var/const/RADIO_FLOORBOT = "11"
-var/const/RADIO_MEDBOT = "12"
-var/const/RADIO_MAGNETS = "radio_magnet"
-var/const/RADIO_LOGIC = "radio_logic"
-
-var/global/datum/controller/radio/radio_controller
-
-/hook/startup/proc/createRadioController()
- radio_controller = new /datum/controller/radio()
- return 1
-
-//callback used by objects to react to incoming radio signals
-/obj/proc/receive_signal(datum/signal/signal, receive_method, receive_param)
- return null
-
-//The global radio controller
-/datum/controller/radio
- var/list/datum/radio_frequency/frequencies = list()
-
-/datum/controller/radio/proc/add_object(obj/device as obj, var/new_frequency as num, var/filter = null as text|null)
- var/f_text = num2text(new_frequency)
- var/datum/radio_frequency/frequency = frequencies[f_text]
-
- if(!frequency)
- frequency = new
- frequency.frequency = new_frequency
- frequencies[f_text] = frequency
-
- frequency.add_listener(device, filter)
- return frequency
-
-/datum/controller/radio/proc/remove_object(obj/device, old_frequency)
- var/f_text = num2text(old_frequency)
- var/datum/radio_frequency/frequency = frequencies[f_text]
-
- if(frequency)
- frequency.remove_listener(device)
-
- if(frequency.devices.len == 0)
- qdel(frequency)
- frequencies -= f_text
-
- return 1
-
-/datum/controller/radio/proc/return_frequency(var/new_frequency as num)
- var/f_text = num2text(new_frequency)
- var/datum/radio_frequency/frequency = frequencies[f_text]
-
- if(!frequency)
- frequency = new
- frequency.frequency = new_frequency
- frequencies[f_text] = frequency
-
- return frequency
-
-/datum/radio_frequency
- var/frequency as num
- var/list/list/obj/devices = list()
-
-/datum/radio_frequency/proc/post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as text|null, var/range = null as num|null)
- var/turf/start_point
- if(range)
- start_point = get_turf(source)
- if(!start_point)
- qdel(signal)
- return 0
- if(filter)
- send_to_filter(source, signal, filter, start_point, range)
- send_to_filter(source, signal, RADIO_DEFAULT, start_point, range)
- else
- //Broadcast the signal to everyone!
- for(var/next_filter in devices)
- send_to_filter(source, signal, next_filter, start_point, range)
-
-//Sends a signal to all machines belonging to a given filter. Should be called by post_signal()
-/datum/radio_frequency/proc/send_to_filter(obj/source, datum/signal/signal, var/filter, var/turf/start_point = null, var/range = null)
- if(range && !start_point)
- return
-
- for(var/obj/device in devices[filter])
- if(device == source)
- continue
- if(range)
- var/turf/end_point = get_turf(device)
- if(!end_point)
- continue
- if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range)
- continue
-
- device.receive_signal(signal, TRANSMISSION_RADIO, frequency)
-
-/datum/radio_frequency/proc/add_listener(obj/device as obj, var/filter as text|null)
- if(!filter)
- filter = RADIO_DEFAULT
- //log_admin("add_listener(device=[device],filter=[filter]) frequency=[frequency]")
- var/list/obj/devices_line = devices[filter]
- if(!devices_line)
- devices_line = new
- devices[filter] = devices_line
- devices_line+=device
-// var/list/obj/devices_line___ = devices[filter_str]
-// var/l = devices_line___.len
- //log_admin("DEBUG: devices_line.len=[devices_line.len]")
- //log_admin("DEBUG: devices(filter_str).len=[l]")
-
-/datum/radio_frequency/proc/remove_listener(obj/device)
- for(var/devices_filter in devices)
- var/list/devices_line = devices[devices_filter]
- devices_line-=device
- while(null in devices_line)
- devices_line -= null
- if(devices_line.len==0)
- devices -= devices_filter
- qdel(devices_line)
-
-/datum/signal
- var/obj/source
-
- var/transmission_method = 0 //unused at the moment
- //0 = wire
- //1 = radio transmission
- //2 = subspace transmission
-
- var/list/data = list()
- var/encryption
-
- var/frequency = 0
-
-/datum/signal/proc/copy_from(datum/signal/model)
- source = model.source
- transmission_method = model.transmission_method
- data = model.data
- encryption = model.encryption
- frequency = model.frequency
-
-/datum/signal/proc/debug_print()
- if(source)
- . = "signal = {source = '[source]' ([source:x],[source:y],[source:z])\n"
- else
- . = "signal = {source = '[source]' ()\n"
- for(var/i in data)
- . += "data\[\"[i]\"\] = \"[data[i]]\"\n"
- if(islist(data[i]))
- var/list/L = data[i]
- for(var/t in L)
- . += "data\[\"[i]\"\] list has: [t]"
-
-/datum/signal/proc/get_race(mob/M)
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- . = H.dna.species.name
- else if(isbrain(M))
- var/mob/living/carbon/brain/B = M
- . = B.get_race()
- else if(issilicon(M))
- . = "Artificial Life"
- else if(isslime(M))
- . = "Slime"
- else if(isbot(M))
- . = "Bot"
- else if(isanimal(M))
- . = "Domestic Animal"
- else
- . = "Unidentifiable"
diff --git a/code/controllers/subsystem/radio.dm b/code/controllers/subsystem/radio.dm
new file mode 100644
index 00000000000..93b5152ee45
--- /dev/null
+++ b/code/controllers/subsystem/radio.dm
@@ -0,0 +1,99 @@
+SUBSYSTEM_DEF(radio)
+ name = "Radio"
+ flags = SS_NO_INIT | SS_NO_FIRE
+
+ var/list/radiochannels = list(
+ "Common" = PUB_FREQ,
+ "Science" = SCI_FREQ,
+ "Command" = COMM_FREQ,
+ "Medical" = MED_FREQ,
+ "Engineering" = ENG_FREQ,
+ "Security" = SEC_FREQ,
+ "Response Team" = ERT_FREQ,
+ "Special Ops" = DTH_FREQ,
+ "Syndicate" = SYND_FREQ,
+ "SyndTeam" = SYNDTEAM_FREQ,
+ "Supply" = SUP_FREQ,
+ "Service" = SRV_FREQ,
+ "AI Private" = AI_FREQ,
+ "Medical(I)" = MED_I_FREQ,
+ "Security(I)" = SEC_I_FREQ
+ )
+ var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ)
+ var/list/ANTAG_FREQS = list(SYND_FREQ, SYNDTEAM_FREQ)
+ var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ)
+ var/list/datum/radio_frequency/frequencies = list()
+
+// This is fucking disgusting and needs to die
+/datum/controller/subsystem/radio/proc/frequency_span_class(var/frequency)
+ // Antags!
+ if(frequency in ANTAG_FREQS)
+ return "syndradio"
+ // centcomm channels (deathsquid and ert)
+ if(frequency in CENT_FREQS)
+ return "centradio"
+ // This switch used to be a shit tonne of if statements. I am gonna find who made this and give them a kind talking to
+ switch(frequency)
+ if(COMM_FREQ)
+ return "comradio"
+ if(AI_FREQ)
+ return "airadio"
+ if(SEC_FREQ)
+ return "secradio"
+ if(ENG_FREQ)
+ return "engradio"
+ if(SCI_FREQ)
+ return "sciradio"
+ if(MED_FREQ)
+ return "medradio"
+ if(SUP_FREQ)
+ return "supradio"
+ if(SRV_FREQ)
+ return "srvradio"
+
+ // If the above switch somehow failed. And it needs the SSradio. part otherwise it fails to compile
+ if(frequency in DEPT_FREQS)
+ return "deptradio"
+
+ // If its none of the others
+ return "radio"
+
+
+/datum/controller/subsystem/radio/proc/add_object(obj/device as obj, var/new_frequency as num, var/filter = null as text|null)
+ var/f_text = num2text(new_frequency)
+ var/datum/radio_frequency/frequency = frequencies[f_text]
+
+ if(!frequency)
+ frequency = new
+ frequency.frequency = new_frequency
+ frequencies[f_text] = frequency
+
+ frequency.add_listener(device, filter)
+ return frequency
+
+/datum/controller/subsystem/radio/proc/remove_object(obj/device, old_frequency)
+ var/f_text = num2text(old_frequency)
+ var/datum/radio_frequency/frequency = frequencies[f_text]
+
+ if(frequency)
+ frequency.remove_listener(device)
+
+ if(frequency.devices.len == 0)
+ qdel(frequency)
+ frequencies -= f_text
+
+ return 1
+
+/datum/controller/subsystem/radio/proc/return_frequency(var/new_frequency as num)
+ var/f_text = num2text(new_frequency)
+ var/datum/radio_frequency/frequency = frequencies[f_text]
+
+ if(!frequency)
+ frequency = new
+ frequency.frequency = new_frequency
+ frequencies[f_text] = frequency
+
+ return frequency
+
+
+// ALL THE SHIT BELOW THIS LINE ISNT PART OF THE SUBSYSTEM AND REALLY NEEDS ITS OWN FILE
diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm
index e5600470582..2085d39cc21 100644
--- a/code/controllers/verbs.dm
+++ b/code/controllers/verbs.dm
@@ -52,7 +52,7 @@
debug_variables(SSsun)
feedback_add_details("admin_verb","DSun")
if("Radio")
- debug_variables(radio_controller)
+ debug_variables(SSradio)
feedback_add_details("admin_verb","DRadio")
if("Configuration")
debug_variables(config)
diff --git a/code/datums/radio.dm b/code/datums/radio.dm
new file mode 100644
index 00000000000..7670bc76e32
--- /dev/null
+++ b/code/datums/radio.dm
@@ -0,0 +1,114 @@
+
+/datum/radio_frequency
+ var/frequency as num
+ var/list/list/obj/devices = list()
+
+/datum/radio_frequency/proc/post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as text|null, var/range = null as num|null)
+ var/turf/start_point
+ if(range)
+ start_point = get_turf(source)
+ if(!start_point)
+ qdel(signal)
+ return 0
+ if(filter)
+ send_to_filter(source, signal, filter, start_point, range)
+ send_to_filter(source, signal, RADIO_DEFAULT, start_point, range)
+ else
+ //Broadcast the signal to everyone!
+ for(var/next_filter in devices)
+ send_to_filter(source, signal, next_filter, start_point, range)
+
+//Sends a signal to all machines belonging to a given filter. Should be called by post_signal()
+/datum/radio_frequency/proc/send_to_filter(obj/source, datum/signal/signal, var/filter, var/turf/start_point = null, var/range = null)
+ if(range && !start_point)
+ return
+
+ for(var/obj/device in devices[filter])
+ if(device == source)
+ continue
+ if(range)
+ var/turf/end_point = get_turf(device)
+ if(!end_point)
+ continue
+ if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range)
+ continue
+
+ device.receive_signal(signal, TRANSMISSION_RADIO, frequency)
+
+/datum/radio_frequency/proc/add_listener(obj/device as obj, var/filter as text|null)
+ if(!filter)
+ filter = RADIO_DEFAULT
+ //log_admin("add_listener(device=[device],filter=[filter]) frequency=[frequency]")
+ var/list/obj/devices_line = devices[filter]
+ if(!devices_line)
+ devices_line = new
+ devices[filter] = devices_line
+ devices_line+=device
+// var/list/obj/devices_line___ = devices[filter_str]
+// var/l = devices_line___.len
+ //log_admin("DEBUG: devices_line.len=[devices_line.len]")
+ //log_admin("DEBUG: devices(filter_str).len=[l]")
+
+/datum/radio_frequency/proc/remove_listener(obj/device)
+ for(var/devices_filter in devices)
+ var/list/devices_line = devices[devices_filter]
+ devices_line-=device
+ while(null in devices_line)
+ devices_line -= null
+ if(devices_line.len==0)
+ devices -= devices_filter
+ qdel(devices_line)
+
+/datum/signal
+ var/obj/source
+
+ var/transmission_method = 0 //unused at the moment
+ //0 = wire
+ //1 = radio transmission
+ //2 = subspace transmission
+
+ var/list/data = list()
+ var/encryption
+
+ var/frequency = 0
+
+/datum/signal/proc/copy_from(datum/signal/model)
+ source = model.source
+ transmission_method = model.transmission_method
+ data = model.data
+ encryption = model.encryption
+ frequency = model.frequency
+
+/datum/signal/proc/debug_print()
+ if(source)
+ . = "signal = {source = '[source]' ([source:x],[source:y],[source:z])\n"
+ else
+ . = "signal = {source = '[source]' ()\n"
+ for(var/i in data)
+ . += "data\[\"[i]\"\] = \"[data[i]]\"\n"
+ if(islist(data[i]))
+ var/list/L = data[i]
+ for(var/t in L)
+ . += "data\[\"[i]\"\] list has: [t]"
+
+/datum/signal/proc/get_race(mob/M)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ . = H.dna.species.name
+ else if(isbrain(M))
+ var/mob/living/carbon/brain/B = M
+ . = B.get_race()
+ else if(issilicon(M))
+ . = "Artificial Life"
+ else if(isslime(M))
+ . = "Slime"
+ else if(isbot(M))
+ . = "Bot"
+ else if(isanimal(M))
+ . = "Domestic Animal"
+ else
+ . = "Unidentifiable"
+
+//callback used by objects to react to incoming radio signals
+/obj/proc/receive_signal(datum/signal/signal, receive_method, receive_param)
+ return null
diff --git a/code/defines/procs/radio.dm b/code/defines/procs/radio.dm
index f41bea79048..84d3ddaae78 100644
--- a/code/defines/procs/radio.dm
+++ b/code/defines/procs/radio.dm
@@ -13,8 +13,8 @@
if(SYNDTEAM_FREQ)
freq_text = "#unid"
else
- for(var/channel in radiochannels)
- if(radiochannels[channel] == display_freq)
+ for(var/channel in SSradio.radiochannels)
+ if(SSradio.radiochannels[channel] == display_freq)
freq_text = channel
break
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index db5c2b6e9c3..aa9401175bb 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -212,8 +212,8 @@
/obj/machinery/alarm/Destroy()
GLOB.air_alarms -= src
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
air_alarm_repository.update_cache(src)
QDEL_NULL(wires)
@@ -432,9 +432,9 @@
send_signal(id_tag, list("status") )
/obj/machinery/alarm/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_TO_AIRALARM)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_TO_AIRALARM)
/obj/machinery/alarm/proc/send_signal(var/target, var/list/command)//sends signal 'command' to 'target'. Returns 0 if no radio connection, 1 otherwise
if(!radio_connection)
@@ -571,7 +571,7 @@
update_icon()
/obj/machinery/alarm/proc/post_alert(alert_level)
- var/datum/radio_frequency/frequency = radio_controller.return_frequency(alarm_frequency)
+ var/datum/radio_frequency/frequency = SSradio.return_frequency(alarm_frequency)
if(!frequency)
return
diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm
index 61547f270bf..d262b523808 100644
--- a/code/game/machinery/atmo_control.dm
+++ b/code/game/machinery/atmo_control.dm
@@ -121,9 +121,9 @@
/obj/machinery/air_sensor/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/obj/machinery/air_sensor/Initialize()
..()
@@ -132,8 +132,8 @@
/obj/machinery/air_sensor/Destroy()
SSair.atmos_machinery -= src
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -156,8 +156,8 @@
var/datum/radio_frequency/radio_connection
/obj/machinery/computer/general_air_control/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -268,9 +268,9 @@
return output
/obj/machinery/computer/general_air_control/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/obj/machinery/computer/general_air_control/Initialize()
..()
diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm
index dba1d942e2d..453d5cdee1e 100644
--- a/code/game/machinery/atmoalter/meter.dm
+++ b/code/game/machinery/atmoalter/meter.dm
@@ -65,7 +65,7 @@
icon_state = "meter4"
if(frequency)
- var/datum/radio_frequency/radio_connection = radio_controller.return_frequency(frequency)
+ var/datum/radio_frequency/radio_connection = SSradio.return_frequency(frequency)
if(!radio_connection) return
diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm
index a76bd387ac7..b968a4bd5f8 100644
--- a/code/game/machinery/buttons.dm
+++ b/code/game/machinery/buttons.dm
@@ -33,7 +33,7 @@
pixel_x = 25
if(WEST)
pixel_x = -25
- if(radio_controller)
+ if(SSradio)
set_frequency(frequency)
/obj/machinery/driver_button/Initialize()
@@ -41,14 +41,14 @@
set_frequency(frequency)
/obj/machinery/driver_button/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_LOGIC)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_LOGIC)
return
/obj/machinery/driver_button/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 854525dadf4..e369b203759 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -494,7 +494,7 @@
/proc/post_status(command, data1, data2, mob/user = null)
- var/datum/radio_frequency/frequency = radio_controller.return_frequency(DISPLAY_FREQ)
+ var/datum/radio_frequency/frequency = SSradio.return_frequency(DISPLAY_FREQ)
if(!frequency) return
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 54153118131..72af504358a 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -151,8 +151,8 @@ About the new airlock wires panel:
if(electrified_timer)
deltimer(electrified_timer)
electrified_timer = null
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm
index 7eb43cdec74..496d8942bcc 100644
--- a/code/game/machinery/doors/airlock_control.dm
+++ b/code/game/machinery/doors/airlock_control.dm
@@ -127,10 +127,10 @@
return
/obj/machinery/door/airlock/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
if(new_frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK)
/obj/machinery/door/airlock/Initialize()
..()
@@ -143,7 +143,7 @@
/obj/machinery/door/airlock/New()
..()
- if(radio_controller)
+ if(SSradio)
set_frequency(frequency)
/obj/machinery/airlock_sensor
@@ -203,9 +203,9 @@
update_icon()
/obj/machinery/airlock_sensor/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK)
/obj/machinery/airlock_sensor/Initialize()
..()
@@ -213,12 +213,12 @@
/obj/machinery/airlock_sensor/New()
..()
- if(radio_controller)
+ if(SSradio)
set_frequency(frequency)
/obj/machinery/airlock_sensor/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -271,9 +271,9 @@
flick("access_button_cycle", src)
/obj/machinery/access_button/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK)
/obj/machinery/access_button/Initialize()
..()
@@ -282,12 +282,12 @@
/obj/machinery/access_button/New()
..()
- if(radio_controller)
+ if(SSradio)
set_frequency(frequency)
/obj/machinery/access_button/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm
index 91591234551..d3bf12f72f0 100644
--- a/code/game/machinery/doors/alarmlock.dm
+++ b/code/game/machinery/doors/alarmlock.dm
@@ -13,15 +13,15 @@
air_connection = new
/obj/machinery/door/airlock/alarmlock/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src,air_frequency)
+ if(SSradio)
+ SSradio.remove_object(src,air_frequency)
air_connection = null
return ..()
/obj/machinery/door/airlock/alarmlock/Initialize()
..()
- radio_controller.remove_object(src, air_frequency)
- air_connection = radio_controller.add_object(src, air_frequency, RADIO_TO_AIRALARM)
+ SSradio.remove_object(src, air_frequency)
+ air_connection = SSradio.add_object(src, air_frequency, RADIO_TO_AIRALARM)
open()
/obj/machinery/door/airlock/alarmlock/receive_signal(datum/signal/signal)
diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm
index 23ee6e19403..e0a49fdfc8c 100644
--- a/code/game/machinery/embedded_controller/embedded_controller_base.dm
+++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm
@@ -59,8 +59,8 @@
set_frequency(frequency)
/obj/machinery/embedded_controller/radio/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -82,6 +82,6 @@
qdel(signal)
/obj/machinery/embedded_controller/radio/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, radio_filter)
+ radio_connection = SSradio.add_object(src, frequency, radio_filter)
diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm
index d0399dfa2a4..ee6bd060c16 100644
--- a/code/game/machinery/lightswitch.dm
+++ b/code/game/machinery/lightswitch.dm
@@ -30,7 +30,7 @@
pixel_x = 25
if(WEST)
pixel_x = -25
- if(radio_controller)
+ if(SSradio)
set_frequency(frequency)
spawn(5)
src.area = get_area(src)
@@ -49,14 +49,14 @@
set_frequency(frequency)
/obj/machinery/light_switch/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_LOGIC)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_LOGIC)
return
/obj/machinery/light_switch/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm
index 3af76895428..9b982df99fd 100644
--- a/code/game/machinery/magnet.dm
+++ b/code/game/machinery/magnet.dm
@@ -36,8 +36,8 @@
center = T
spawn(10) // must wait for map loading to finish
- if(radio_controller)
- radio_controller.add_object(src, freq, RADIO_MAGNETS)
+ if(SSradio)
+ SSradio.add_object(src, freq, RADIO_MAGNETS)
spawn()
magnetic_process()
@@ -208,8 +208,8 @@
spawn(45) // must wait for map loading to finish
- if(radio_controller)
- radio_connection = radio_controller.add_object(src, frequency, RADIO_MAGNETS)
+ if(SSradio)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_MAGNETS)
if(path) // check for default path
@@ -217,8 +217,8 @@
/obj/machinery/magnetic_controller/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index 5f875d7fdc8..05545e6a3d1 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -50,15 +50,15 @@
var/const/STATUS_DISPLAY_CUSTOM = 99
/obj/machinery/status_display/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src,frequency)
+ if(SSradio)
+ SSradio.remove_object(src,frequency)
return ..()
// register for radio system
/obj/machinery/status_display/Initialize()
..()
- if(radio_controller)
- radio_controller.add_object(src, frequency)
+ if(SSradio)
+ SSradio.add_object(src, frequency)
// timed process
/obj/machinery/status_display/process()
diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm
index 8e34e2e19bc..8cd285c994a 100644
--- a/code/game/machinery/telecomms/broadcaster.dm
+++ b/code/game/machinery/telecomms/broadcaster.dm
@@ -140,7 +140,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
var/datum/radio_frequency/connection = signal.data["connection"]
- if(connection.frequency in ANTAG_FREQS) // if antag broadcast, just
+ if(connection.frequency in SSradio.ANTAG_FREQS) // if antag broadcast, just
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
@@ -162,13 +162,13 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
/proc/Is_Bad_Connection(old_freq, new_freq) //Makes sure players cant read radios of a higher level than they are
var/old_type = CREW_RADIO_TYPE
var/new_type = CREW_RADIO_TYPE
- for(var/antag_freq in ANTAG_FREQS)
+ for(var/antag_freq in SSradio.ANTAG_FREQS)
if(old_freq == antag_freq)
old_type = SYNDICATE_RADIO_TYPE
if(new_freq == antag_freq)
new_type = SYNDICATE_RADIO_TYPE
- for(var/cent_freq in CENT_FREQS)
+ for(var/cent_freq in SSradio.CENT_FREQS)
if(old_freq == cent_freq)
old_type = CENTCOMM_RADIO_TYPE
if(new_freq == cent_freq)
@@ -249,7 +249,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
if(connection.frequency != display_freq)
bad_connection = Is_Bad_Connection(connection.frequency, display_freq)
- new_connection = radio_controller.return_frequency(display_freq)
+ new_connection = SSradio.return_frequency(display_freq)
var/list/obj/item/radio/radios = list()
@@ -276,8 +276,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
// --- Broadcast to antag radios! ---
else if(data == 3)
- for(var/antag_freq in ANTAG_FREQS)
- var/datum/radio_frequency/antag_connection = radio_controller.return_frequency(antag_freq)
+ for(var/antag_freq in SSradio.ANTAG_FREQS)
+ var/datum/radio_frequency/antag_connection = SSradio.return_frequency(antag_freq)
for(var/obj/item/radio/R in antag_connection.devices["[RADIO_CHAT]"])
if(R.receive_range(antag_freq, level) > -1)
radios += R
@@ -356,7 +356,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
var/part_b_extra = ""
if(data == 3) // intercepted radio message
part_b_extra = " (Intercepted)"
- var/part_a = "\[[freq_text]\][part_b_extra] " // goes in the actual output
+ var/part_a = "\[[freq_text]\][part_b_extra] " // goes in the actual output
// --- Some more pre-message formatting ---
var/part_b = " " // Tweaked for security headsets -- TLE
@@ -452,7 +452,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
H = new
M = H
- var/datum/radio_frequency/connection = radio_controller.return_frequency(frequency)
+ var/datum/radio_frequency/connection = SSradio.return_frequency(frequency)
var/display_freq = connection.frequency
@@ -485,8 +485,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
// --- Broadcast to antag radios! ---
else if(data == 3)
- for(var/freq in ANTAG_FREQS)
- var/datum/radio_frequency/antag_connection = radio_controller.return_frequency(freq)
+ for(var/freq in SSradio.ANTAG_FREQS)
+ var/datum/radio_frequency/antag_connection = SSradio.return_frequency(freq)
for(var/obj/item/radio/R in antag_connection.devices["[RADIO_CHAT]"])
var/turf/position = get_turf(R)
// TODO: Make the radio system cooperate with the space manager
@@ -545,7 +545,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
if(length(heard_normal) || length(heard_garbled) || length(heard_gibberish))
/* --- Some miscellaneous variables to format the string output --- */
- var/part_a = "" // goes in the actual output
+ var/part_a = "" // goes in the actual output
var/freq_text = get_frequency_name(display_freq)
// --- Some more pre-message formatting ---
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index b98e6d9acfc..610c257b03f 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -315,7 +315,7 @@
if(keyslot1 || keyslot2)
for(var/ch_name in channels)
- radio_controller.remove_object(src, radiochannels[ch_name])
+ SSradio.remove_object(src, SSradio.radiochannels[ch_name])
secure_radio_connections[ch_name] = null
if(keyslot1)
@@ -392,11 +392,11 @@
for(var/ch_name in channels)
- if(!radio_controller)
+ if(!SSradio)
name = "broken radio headset"
return
- secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
+ secure_radio_connections[ch_name] = SSradio.add_object(src, SSradio.radiochannels[ch_name], RADIO_CHAT)
if(setDescription)
setupRadioDescription()
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index 287c7b44c30..62057880b9b 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -128,7 +128,7 @@
// TODO: Integrate radio with the space manager
if(isnull(position) || !(position.z in level))
return -1
- if(freq in ANTAG_FREQS)
+ if(freq in SSradio.ANTAG_FREQS)
if(!(syndiekey))
return -1//Prevents broadcast of messages over devices lacking the encryption
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index e01b1a2a61a..83a8c9304a1 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -59,9 +59,9 @@ var/global/list/default_medbay_channels = list(
/obj/item/radio/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_CHAT)
/obj/item/radio/New()
@@ -73,10 +73,10 @@ var/global/list/default_medbay_channels = list(
/obj/item/radio/Destroy()
QDEL_NULL(wires)
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
for(var/ch_name in channels)
- radio_controller.remove_object(src, radiochannels[ch_name])
+ SSradio.remove_object(src, SSradio.radiochannels[ch_name])
radio_connection = null
GLOB.global_radios -= src
follow_target = null
@@ -90,7 +90,7 @@ var/global/list/default_medbay_channels = list(
set_frequency(frequency)
for(var/ch_name in channels)
- secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
+ secure_radio_connections[ch_name] = SSradio.add_object(src, SSradio.radiochannels[ch_name], RADIO_CHAT)
/obj/item/radio/attack_ghost(mob/user)
return interact(user)
@@ -147,7 +147,7 @@ var/global/list/default_medbay_channels = list(
var/chan_stat = channels[ch_name]
var/listening = !!(chan_stat & FREQ_LISTENING) != 0
- dat.Add(list(list("chan" = ch_name, "display_name" = ch_name, "secure_channel" = 1, "sec_channel_listen" = !listening, "chan_span" = frequency_span_class(radiochannels[ch_name]))))
+ dat.Add(list(list("chan" = ch_name, "display_name" = ch_name, "secure_channel" = 1, "sec_channel_listen" = !listening, "chan_span" = SSradio.frequency_span_class(SSradio.radiochannels[ch_name]))))
return dat
@@ -155,7 +155,7 @@ var/global/list/default_medbay_channels = list(
var/dat[0]
for(var/internal_chan in internal_channels)
if(has_channel_access(user, internal_chan))
- dat.Add(list(list("chan" = internal_chan, "display_name" = get_frequency_name(text2num(internal_chan)), "chan_span" = frequency_span_class(text2num(internal_chan)))))
+ dat.Add(list(list("chan" = internal_chan, "display_name" = get_frequency_name(text2num(internal_chan)), "chan_span" = SSradio.frequency_span_class(text2num(internal_chan)))))
return dat
@@ -555,7 +555,7 @@ var/global/list/default_medbay_channels = list(
var/turf/position = get_turf(src)
if(!position || !(position.z in level))
return -1
- if(freq in ANTAG_FREQS)
+ if(freq in SSradio.ANTAG_FREQS)
if(!(syndiekey))//Checks to see if it's allowed on that frequency, based on the encryption keys
return -1
if(!freq) //recieved on main frequency
@@ -699,7 +699,7 @@ var/global/list/default_medbay_channels = list(
for(var/ch_name in channels)
- radio_controller.remove_object(src, radiochannels[ch_name])
+ SSradio.remove_object(src, SSradio.radiochannels[ch_name])
secure_radio_connections[ch_name] = null
@@ -752,13 +752,13 @@ var/global/list/default_medbay_channels = list(
for(var/ch_name in channels)
- if(!radio_controller)
- sleep(30) // Waiting for the radio_controller to be created.
- if(!radio_controller)
+ if(!SSradio)
+ sleep(30) // Waiting for SSradio to be created.
+ if(!SSradio)
name = "broken radio"
return
- secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
+ secure_radio_connections[ch_name] = SSradio.add_object(src, SSradio.radiochannels[ch_name], RADIO_CHAT)
return
@@ -829,14 +829,14 @@ var/global/list/default_medbay_channels = list(
return data
/obj/item/radio/proc/config(op)
- if(radio_controller)
+ if(SSradio)
for(var/ch_name in channels)
- radio_controller.remove_object(src, radiochannels[ch_name])
+ SSradio.remove_object(src, SSradio.radiochannels[ch_name])
secure_radio_connections = new
channels = op
- if(radio_controller)
+ if(SSradio)
for(var/ch_name in op)
- secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
+ secure_radio_connections[ch_name] = SSradio.add_object(src, SSradio.radiochannels[ch_name], RADIO_CHAT)
return
/obj/item/radio/off
diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm
index 8b8a2b58a52..93389acbdd8 100644
--- a/code/modules/admin/verbs/diagnostics.dm
+++ b/code/modules/admin/verbs/diagnostics.dm
@@ -83,9 +83,9 @@
"_default" = "NO_FILTER"
)
var/output = "Radio Report
"
- for(var/fq in radio_controller.frequencies)
+ for(var/fq in SSradio.frequencies)
output += "Freq: [fq]
"
- var/list/datum/radio_frequency/fqs = radio_controller.frequencies[fq]
+ var/list/datum/radio_frequency/fqs = SSradio.frequencies[fq]
if(!fqs)
output += " ERROR
"
continue
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 6228df02af3..addc6f847ab 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -20,17 +20,17 @@
/obj/item/assembly/signaler/New()
..()
- if(radio_controller)
+ if(SSradio)
set_frequency(frequency)
/obj/item/assembly/signaler/Initialize()
..()
- if(radio_controller)
+ if(SSradio)
set_frequency(frequency)
/obj/item/assembly/signaler/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
@@ -151,13 +151,13 @@
return TRUE
/obj/item/assembly/signaler/proc/set_frequency(new_frequency)
- if(!radio_controller)
+ if(!SSradio)
sleep(20)
- if(!radio_controller)
+ if(!SSradio)
return
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_CHAT)
// Embedded signaller used in anomalies.
/obj/item/assembly/signaler/anomaly
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index 7dcb5301d43..855ac60666b 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -738,7 +738,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/gun/projectile, /obj/item/ammo_
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
humans += H
person = pick(humans)
- target.hear_radio(message_to_multilingual(pick(radio_messages), pick(person.languages)), speaker = person, part_a = "\[[get_frequency_name(PUB_FREQ)]\] ", part_b = " ")
+ target.hear_radio(message_to_multilingual(pick(radio_messages), pick(person.languages)), speaker = person, part_a = "\[[get_frequency_name(PUB_FREQ)]\] ", part_b = " ")
qdel(src)
/obj/effect/hallucination/message
diff --git a/code/modules/logic/logic_base.dm b/code/modules/logic/logic_base.dm
index 519c47c408b..952001e87f7 100644
--- a/code/modules/logic/logic_base.dm
+++ b/code/modules/logic/logic_base.dm
@@ -42,7 +42,7 @@
if(tamperproof) //doing this during New so we don't have to worry about forgetting to set these vars during editting / defining
unacidable = 1
..()
- if(radio_controller)
+ if(SSradio)
set_frequency(frequency)
component_parts = list()
var/obj/item/circuitboard/logic_gate/LG = new(null)
@@ -55,14 +55,14 @@
set_frequency(frequency)
/obj/machinery/logic_gate/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_LOGIC)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_LOGIC)
return
/obj/machinery/logic_gate/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index a0b6652f883..4793b91dee6 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -156,8 +156,8 @@
bot_core = new bot_core_type(src)
spawn(30)
- if(radio_controller && bot_filter)
- radio_controller.add_object(bot_core, control_freq, bot_filter)
+ if(SSradio && bot_filter)
+ SSradio.add_object(bot_core, control_freq, bot_filter)
prepare_huds()
for(var/datum/atom_hud/data/diagnostic/diag_hud in huds)
@@ -197,8 +197,8 @@
if(reset_access_timer_id)
deltimer(reset_access_timer_id)
reset_access_timer_id = null
- if(radio_controller && bot_filter)
- radio_controller.remove_object(bot_core, control_freq)
+ if(SSradio && bot_filter)
+ SSradio.remove_object(bot_core, control_freq)
QDEL_NULL(bot_core)
return ..()
@@ -747,7 +747,7 @@ Pass a positive integer as an argument to override a bot's default speed.
/mob/living/simple_animal/bot/proc/post_signal_multiple(var/freq, var/list/keyval)
if(z != 1) //Bot control will only work on station.
return
- var/datum/radio_frequency/frequency = radio_controller.return_frequency(freq)
+ var/datum/radio_frequency/frequency = SSradio.return_frequency(freq)
if(!frequency)
return
diff --git a/code/modules/pda/cart_apps.dm b/code/modules/pda/cart_apps.dm
index 46e8e1d257c..de2414da743 100644
--- a/code/modules/pda/cart_apps.dm
+++ b/code/modules/pda/cart_apps.dm
@@ -28,7 +28,7 @@
post_status(href_list["statdisp"])
/datum/data/pda/app/status_display/proc/post_status(var/command, var/data1, var/data2)
- var/datum/radio_frequency/frequency = radio_controller.return_frequency(DISPLAY_FREQ)
+ var/datum/radio_frequency/frequency = SSradio.return_frequency(DISPLAY_FREQ)
if(!frequency)
return
diff --git a/code/modules/pda/radio.dm b/code/modules/pda/radio.dm
index e6d7f29f6ac..7db0ed332d5 100644
--- a/code/modules/pda/radio.dm
+++ b/code/modules/pda/radio.dm
@@ -26,15 +26,15 @@
add_to_radio(bot_filter)
/obj/item/integrated_radio/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, control_freq)
+ if(SSradio)
+ SSradio.remove_object(src, control_freq)
hostpda = null
return ..()
/obj/item/integrated_radio/proc/post_signal(var/freq, var/key, var/value, var/key2, var/value2, var/key3, var/value3,var/key4, var/value4, s_filter)
// to_chat(world, "Post: [freq]: [key]=[value], [key2]=[value2]")
- var/datum/radio_frequency/frequency = radio_controller.return_frequency(freq)
+ var/datum/radio_frequency/frequency = SSradio.return_frequency(freq)
if(!frequency)
return
@@ -93,8 +93,8 @@
post_signal(control_freq, "command", "bot_status", "active", active, s_filter = bot_filter)
/obj/item/integrated_radio/proc/add_to_radio(bot_filter) //Master filter control for bots. Must be placed in the bot's local New() to support map spawned bots.
- if(radio_controller)
- radio_controller.add_object(src, control_freq, filter = bot_filter)
+ if(SSradio)
+ SSradio.add_object(src, control_freq, filter = bot_filter)
/obj/item/integrated_radio/honkbot
bot_filter = RADIO_HONKBOT
@@ -171,13 +171,13 @@
var/datum/radio_frequency/radio_connection
/obj/item/integrated_radio/signal/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
return ..()
/obj/item/integrated_radio/signal/Initialize()
- if(!radio_controller)
+ if(!SSradio)
return
if(src.frequency < PUBLIC_LOW_FREQ || src.frequency > PUBLIC_HIGH_FREQ)
src.frequency = sanitize_frequency(src.frequency)
@@ -185,9 +185,9 @@
set_frequency(frequency)
/obj/item/integrated_radio/signal/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency)
+ radio_connection = SSradio.add_object(src, frequency)
/obj/item/integrated_radio/signal/proc/send_signal(message="ACTIVATE")
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index b0ed7c14581..7e031755e22 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -54,10 +54,10 @@
//Radio remote control
/obj/machinery/power/emitter/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
+ SSradio.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
- radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
+ radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA)
/obj/machinery/power/emitter/verb/rotate()
@@ -121,8 +121,8 @@
update_icon()
/obj/machinery/power/emitter/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src, frequency)
+ if(SSradio)
+ SSradio.remove_object(src, frequency)
radio_connection = null
msg_admin_attack("Emitter deleted at ([x],[y],[z] - [ADMIN_JMP(src)])", ATKLOG_FEW)
log_game("Emitter deleted at ([x],[y],[z])")
diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm
index a6baec94d26..f48906fd1f3 100644
--- a/code/modules/shuttle/supply.dm
+++ b/code/modules/shuttle/supply.dm
@@ -739,7 +739,7 @@
return 1
/obj/machinery/computer/supplycomp/proc/post_signal(var/command)
- var/datum/radio_frequency/frequency = radio_controller.return_frequency(DISPLAY_FREQ)
+ var/datum/radio_frequency/frequency = SSradio.return_frequency(DISPLAY_FREQ)
if(!frequency) return
diff --git a/paradise.dme b/paradise.dme
index e3773cf12e6..49fb34028e3 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -51,6 +51,7 @@
#include "code\__DEFINES\preferences.dm"
#include "code\__DEFINES\process_scheduler.dm"
#include "code\__DEFINES\qdel.dm"
+#include "code\__DEFINES\radio.dm"
#include "code\__DEFINES\reagents.dm"
#include "code\__DEFINES\role_preferences.dm"
#include "code\__DEFINES\rolebans.dm"
@@ -187,7 +188,6 @@
#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_hidden.dm"
#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_insulated.dm"
#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_visible.dm"
-#include "code\controllers\communications.dm"
#include "code\controllers\configuration.dm"
#include "code\controllers\controller.dm"
#include "code\controllers\failsafe.dm"
@@ -221,6 +221,7 @@
#include "code\controllers\subsystem\npcai.dm"
#include "code\controllers\subsystem\npcpool.dm"
#include "code\controllers\subsystem\overlays.dm"
+#include "code\controllers\subsystem\radio.dm"
#include "code\controllers\subsystem\shuttles.dm"
#include "code\controllers\subsystem\spacedrift.dm"
#include "code\controllers\subsystem\sun.dm"
@@ -250,6 +251,7 @@
#include "code\datums\periodic_news.dm"
#include "code\datums\pipe_datums.dm"
#include "code\datums\progressbar.dm"
+#include "code\datums\radio.dm"
#include "code\datums\recipe.dm"
#include "code\datums\ruins.dm"
#include "code\datums\shuttles.dm"