mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 23:23:28 +01:00
SScommunications
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 = " <i>(Intercepted)</i>"
|
||||
var/part_a = "<span class='[frequency_span_class(display_freq)]'><b>\[[freq_text]\][part_b_extra]</b> <span class='name'>" // goes in the actual output
|
||||
var/part_a = "<span class='[SSradio.frequency_span_class(display_freq)]'><b>\[[freq_text]\][part_b_extra]</b> <span class='name'>" // goes in the actual output
|
||||
|
||||
// --- Some more pre-message formatting ---
|
||||
var/part_b = "</span> <span class='message'>" // 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 = "<span class='[frequency_span_class(display_freq)]'><span class='name'>" // goes in the actual output
|
||||
var/part_a = "<span class='[SSradio.frequency_span_class(display_freq)]'><span class='name'>" // goes in the actual output
|
||||
var/freq_text = get_frequency_name(display_freq)
|
||||
|
||||
// --- Some more pre-message formatting ---
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -83,9 +83,9 @@
|
||||
"_default" = "NO_FILTER"
|
||||
)
|
||||
var/output = "<b>Radio Report</b><hr>"
|
||||
for(var/fq in radio_controller.frequencies)
|
||||
for(var/fq in SSradio.frequencies)
|
||||
output += "<b>Freq: [fq]</b><br>"
|
||||
var/list/datum/radio_frequency/fqs = radio_controller.frequencies[fq]
|
||||
var/list/datum/radio_frequency/fqs = SSradio.frequencies[fq]
|
||||
if(!fqs)
|
||||
output += " <b>ERROR</b><br>"
|
||||
continue
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = "<span class='[frequency_span_class(PUB_FREQ)]'><b>\[[get_frequency_name(PUB_FREQ)]\]</b> <span class='name'>", part_b = "</span> <span class='message'>")
|
||||
target.hear_radio(message_to_multilingual(pick(radio_messages), pick(person.languages)), speaker = person, part_a = "<span class='[SSradio.frequency_span_class(PUB_FREQ)]'><b>\[[get_frequency_name(PUB_FREQ)]\]</b> <span class='name'>", part_b = "</span> <span class='message'>")
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/hallucination/message
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+10
-10
@@ -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")
|
||||
|
||||
|
||||
@@ -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])")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+3
-1
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user