diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm index d2fc8cbed43..0d7291a972f 100644 --- a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm @@ -110,7 +110,7 @@ radio_controller.remove_object(src, frequency) frequency = new_frequency if(frequency) - radio_connection = radio_controller.add_object(src, frequency) + radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA) broadcast_status() if(!radio_connection) @@ -129,7 +129,7 @@ signal.data["output"] = output_pressure_max signal.data["external"] = external_pressure_bound - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) return 1 @@ -143,7 +143,7 @@ set_frequency(frequency) receive_signal(datum/signal/signal) - if(signal.data["tag"] && (signal.data["tag"] != id)) + if(!signal.data["tag"] || (signal.data["tag"] != id)) return 0 switch(signal.data["command"]) @@ -193,6 +193,7 @@ external_pressure_bound = number - if(signal.data["tag"]) - spawn(5) broadcast_status() + //if(signal.data["tag"]) + spawn(5) + broadcast_status() update_icon() \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 2fe3d0b12ce..99527a41b11 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -77,7 +77,7 @@ obj/machinery/atmospherics/binary/pump radio_controller.remove_object(src, frequency) frequency = new_frequency if(frequency) - radio_connection = radio_controller.add_object(src, frequency) + radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA) broadcast_status() if(!radio_connection) @@ -92,7 +92,7 @@ obj/machinery/atmospherics/binary/pump signal.data["power"] = on signal.data["target_output"] = target_pressure - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) return 1 interact(mob/user as mob) @@ -114,7 +114,7 @@ obj/machinery/atmospherics/binary/pump set_frequency(frequency) receive_signal(datum/signal/signal) - if(signal.data["tag"] && (signal.data["tag"] != id)) + if(!signal.data["tag"] || (signal.data["tag"] != id)) return 0 switch(signal.data["command"]) @@ -132,8 +132,8 @@ obj/machinery/atmospherics/binary/pump number = min(max(number, 0), ONE_ATMOSPHERE*50) target_pressure = number - - broadcast_status() + spawn(5) + broadcast_status() update_icon() return diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm index 32531686567..fa9e5278cb1 100644 --- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm @@ -89,7 +89,7 @@ obj/machinery/atmospherics/binary/volume_pump set_frequency(frequency) receive_signal(datum/signal/signal) - if(signal.data["tag"] && (signal.data["tag"] != id)) + if(!signal.data["tag"] || (signal.data["tag"] != id)) return 0 switch(signal.data["command"]) @@ -108,6 +108,6 @@ obj/machinery/atmospherics/binary/volume_pump transfer_rate = number - if(signal.data["tag"]) - spawn(5) broadcast_status() + spawn(5) + broadcast_status() update_icon() \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/filter.dm b/code/ATMOSPHERICS/components/filter.dm index 9f1ac6b0957..f65e4a0e28f 100644 --- a/code/ATMOSPHERICS/components/filter.dm +++ b/code/ATMOSPHERICS/components/filter.dm @@ -45,7 +45,7 @@ Filter types: radio_controller.remove_object(src, frequency) frequency = new_frequency if(frequency) - radio_connection = radio_controller.add_object(src, frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) New() ..() diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index d59a96eb60b..2efb9506729 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -95,7 +95,7 @@ set_frequency(frequency) receive_signal(datum/signal/signal) - if(signal.data["tag"] && (signal.data["tag"] != id)) + if(!signal.data["tag"] || (signal.data["tag"] != id) || !signal.data["command"]) return 0 switch(signal.data["command"]) @@ -110,6 +110,7 @@ if("inject") spawn inject() + return if("set_volume_rate") var/number = text2num(signal.data["parameter"]) @@ -117,8 +118,14 @@ volume_rate = number - if(signal.data["tag"]) - spawn(5) broadcast_status() + if("status") + //broadcast_status + + else + log_admin("DEBUG \[[world.timeofday]\]: outlet_injector/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + return + spawn(5) + broadcast_status() update_icon() hide(var/i) //to make the little pipe section invisible, the icon changes. diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 564710a5be0..5de726a9972 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -7,7 +7,7 @@ level = 1 var/area_uid - var/id = null + var/id_tag = null var/on = 0 var/pump_direction = 1 //0 = siphoning, 1 = releasing @@ -33,7 +33,9 @@ if (A.master) A = A.master area_uid = A.uid - id = "\ref[src]" + if (!id_tag) + assign_uid() + id_tag = num2text(uid) ..() high_volume @@ -127,15 +129,17 @@ signal.transmission_method = 1 //radio signal signal.source = src - signal.data["area"] = src.area_uid - signal.data["tag"] = src.id - signal.data["device"] = "AVP" - signal.data["power"] = on?("on"):("off") - signal.data["direction"] = pump_direction?("release"):("siphon") - signal.data["checks"] = pressure_checks - signal.data["internal"] = internal_pressure_bound - signal.data["external"] = external_pressure_bound - signal.data["timestamp"] = air_master.current_cycle + signal.data = list( + "area" = src.area_uid, + "tag" = src.id_tag, + "device" = "AVP", + "power" = on?("on"):("off"), + "direction" = pump_direction?("release"):("siphon"), + "checks" = pressure_checks, + "internal" = internal_pressure_bound, + "external" = external_pressure_bound, + "timestamp" = air_master.current_cycle, + ) radio_connection.post_signal(src, signal, radio_filter_out) @@ -153,7 +157,8 @@ update_icon() receive_signal(datum/signal/signal) - if(!signal.data["tag"] || (signal.data["tag"] != id)) + //log_admin("DEBUG \[[world.timeofday]\]: /obj/machinery/atmospherics/unary/vent_pump/receive_signal([signal.debug_print()])") + if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || !signal.data["command"]) return 0 switch(signal.data["command"]) @@ -203,11 +208,17 @@ if("init") name = signal.data["parameter"] + return - if(signal.data["tag"]) - spawn(2) - broadcast_status() - update_icon() + if("status") + //broadcast_status + + else + log_admin("DEBUG \[[world.timeofday]\]: vent_pump/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + return + spawn(2) + broadcast_status() + update_icon() return hide(var/i) //to make the little pipe section invisible, the icon changes. diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index f1af3e73b6e..43e1b571fe7 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -28,7 +28,9 @@ if (A.master) A = A.master area_uid = A.uid - id_tag = "\ref[src]" + if (!id_tag) + assign_uid() + id_tag = num2text(uid) ..() update_icon() @@ -54,16 +56,18 @@ var/datum/signal/signal = new signal.transmission_method = 1 //radio signal signal.source = src - signal.data["area"] = area_uid - signal.data["tag"] = id_tag - signal.data["device"] = "AScr" - signal.data["timestamp"] = air_master.current_cycle - signal.data["on"] = on - signal.data["scrubbing"] = scrubbing - signal.data["panic"] = panic - signal.data["filter_co2"] = scrub_CO2 - signal.data["filter_toxins"] = scrub_Toxins - signal.data["filter_n2o"] = scrub_N2O + signal.data = list( + "area" = area_uid, + "tag" = id_tag, + "device" = "AScr", + "timestamp" = air_master.current_cycle, + "on" = on, + "scrubbing" = scrubbing, + "panic" = panic, + "filter_co2" = scrub_CO2, + "filter_toxins" = scrub_Toxins, + "filter_n2o" = scrub_N2O, + ) radio_connection.post_signal(src, signal, radio_filter_out) return 1 @@ -154,8 +158,8 @@ */ receive_signal(datum/signal/signal) - if(!signal.data["tag"] || (signal.data["tag"] != id_tag)) - return ..() + if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || !signal.data["command"]) + return 0 switch(signal.data["command"]) if("toggle_power") @@ -179,10 +183,17 @@ volume_rate = initial(volume_rate) if("init") name = signal.data["parameter"] - if(signal.data["tag"]) - spawn(2) - broadcast_status() - update_icon() + return + + if("status") + //broadcast_status + + else + log_admin("DEBUG \[[world.timeofday]\]: vent_scrubber/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + return + spawn(2) + broadcast_status() + update_icon() return power_change() diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index 4ddbf49ccf5..f383927d2e3 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -265,7 +265,7 @@ obj/machinery/atmospherics/valve radio_controller.remove_object(src, frequency) frequency = new_frequency if(frequency) - radio_connection = radio_controller.add_object(src, frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) var/frequency = 0 var/id = null @@ -277,7 +277,7 @@ obj/machinery/atmospherics/valve set_frequency(frequency) receive_signal(datum/signal/signal) - if(signal.data["tag"] && (signal.data["tag"] != id)) + if(!signal.data["tag"] || (signal.data["tag"] != id)) return 0 switch(signal.data["command"]) diff --git a/code/defines/obj/machinery.dm b/code/defines/obj/machinery.dm index d95a0aa25ca..880f16ea478 100644 --- a/code/defines/obj/machinery.dm +++ b/code/defines/obj/machinery.dm @@ -12,6 +12,9 @@ active_power_usage = 0 power_channel = EQUIP //EQUIP,ENVIRON or LIGHT + uid + global + gl_uid = 1 /obj/machinery/alarm name = "alarm" diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 7e1a34193ce..e48d928009e 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -215,17 +215,13 @@ // called when power status changes /area/proc/power_change() - - for(var/area/RA in related) for(var/obj/machinery/M in RA) // for each machine in the area M.power_change() // reverify power status (to update icons etc.) - - RA.updateicon() - + if (fire || eject || party) + RA.updateicon() /area/proc/usage(var/chan) - var/used = 0 switch(chan) if(LIGHT) diff --git a/code/game/communications.dm b/code/game/communications.dm index b4b4ab6ddf9..c2748c90a2d 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -5,7 +5,7 @@ Note that /obj/item/device/radio handles transmission using nonstandard way. procs: - add_object(obj/device as obj, var/new_frequency as num, var/filter as num|null = null) + 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). @@ -30,7 +30,7 @@ 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 num|null = null, var/range as num|null = null) + 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. @@ -114,16 +114,21 @@ var/const/SYND_FREQ = 1213 #define TRANSMISSION_RADIO 1 /* filters */ -var/const/RADIO_TO_AIRALARM = 1 -var/const/RADIO_FROM_AIRALARM = 2 -var/const/RADIO_CHAT = 3 +var/const/RADIO_TO_AIRALARM = "1" +var/const/RADIO_FROM_AIRALARM = "2" +var/const/RADIO_CHAT = "3" +var/const/RADIO_ATMOSIA = "4" +var/const/RADIO_NAVBEACONS = "5" +var/const/RADIO_AIRLOCK = "6" +var/const/RADIO_SECBOT = "7" +var/const/RADIO_MULEBOT = "8" var/global/datum/controller/radio/radio_controller datum/controller/radio var/list/datum/radio_frequency/frequencies = list() - proc/add_object(obj/device as obj, var/new_frequency as num, var/filter = null as num|null) + 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] @@ -157,19 +162,19 @@ datum/radio_frequency var/list/list/obj/devices = list() proc - post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as num|null, var/range = null as num|null) -// var/N=0 + post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as text|null, var/range = null as num|null) + //log_admin("DEBUG \[[world.timeofday]\]: post_signal {source=\"[source]\", [signal.debug_print()], filter=[filter]}") +// var/N_f=0 +// var/N_nf=0 // var/Nt=0 - var/filter_str = num2text(filter) var/turf/start_point if(range) start_point = get_turf(source) if(!start_point) del(signal) return 0 - if (filter) - var/list/obj/devices_line = devices[filter_str] - for(var/obj/device in devices_line) + if (filter) //here goes some copypasta. It is for optimisation. -rastaf0 + for(var/obj/device in devices[filter]) if(device == source) continue if(range) @@ -180,6 +185,18 @@ datum/radio_frequency if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range) continue device.receive_signal(signal, TRANSMISSION_RADIO, frequency) + for(var/obj/device in devices["_default"]) + if(device == source) + continue + if(range) + var/turf/end_point = get_turf(device) + if(!end_point) + continue + //if(max(abs(start_point.x-end_point.x), abs(start_point.y-end_point.y)) <= range) + if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range) + continue + device.receive_signal(signal, TRANSMISSION_RADIO, frequency) +// N_f++ else for (var/next_filter in devices) // var/list/obj/DDD = devices[next_filter] @@ -195,20 +212,21 @@ datum/radio_frequency if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range) continue device.receive_signal(signal, TRANSMISSION_RADIO, frequency) -// N++ -// log_admin("DEBUG: post_signal(source=[source] ([source.x], [source.y]),filter=[filter]) frequency=[frequency], N=[N],Nt=[Nt]") +// N_nf++ +// log_admin("DEBUG: post_signal(source=[source] ([source.x], [source.y], [source.z]),filter=[filter]) frequency=[frequency], N_f=[N_f], N_nf=[N_nf]") del(signal) - add_listener(obj/device as obj, var/filter as num|null) + add_listener(obj/device as obj, var/filter as text|null) + if (!filter) + filter = "_default" //log_admin("add_listener(device=[device],filter=[filter]) frequency=[frequency]") - var/filter_str = num2text(filter) - var/list/obj/devices_line = devices[filter_str] + var/list/obj/devices_line = devices[filter] if (!devices_line) devices_line = new - devices[filter_str] = devices_line + devices[filter] = devices_line devices_line+=device // var/list/obj/devices_line___ = devices[filter_str] // var/l = devices_line___.len @@ -217,7 +235,14 @@ datum/radio_frequency remove_listener(obj/device) for (var/devices_filter in devices) - devices[devices_filter]-=device + 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 + del(devices_line) + obj/proc receive_signal(datum/signal/signal, receive_method, receive_param) @@ -237,4 +262,12 @@ datum/signal source = model.source transmission_method = model.transmission_method data = model.data - encryption = model.encryption \ No newline at end of file + encryption = model.encryption + + 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" diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index b0805525fd8..a3a9517a7db 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -59,7 +59,7 @@ obj/machinery/door/airlock signal.data["door_status"] = density?("closed"):("open") signal.data["lock_status"] = locked?("locked"):("unlocked") - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE) + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) open(surpress_send) . = ..() @@ -74,7 +74,7 @@ obj/machinery/door/airlock radio_controller.remove_object(src, frequency) if(new_frequency) frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK) initialize() if(frequency) @@ -119,7 +119,7 @@ obj/machinery/airlock_sensor signal.data["tag"] = master_tag signal.data["command"] = "cycle" - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE) + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) flick("airlock_sensor_cycle", src) process() @@ -136,7 +136,7 @@ obj/machinery/airlock_sensor signal.data["pressure"] = num2text(pressure) - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE) + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) update_icon() @@ -144,7 +144,7 @@ obj/machinery/airlock_sensor set_frequency(new_frequency) radio_controller.remove_object(src, frequency) frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK) initialize() set_frequency(frequency) @@ -183,14 +183,14 @@ obj/machinery/access_button signal.data["tag"] = master_tag signal.data["command"] = command - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE) + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) flick("access_button_cycle", src) proc set_frequency(new_frequency) radio_controller.remove_object(src, frequency) frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK) initialize() set_frequency(frequency) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index e7d2846d738..b97ec81c5fa 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -43,7 +43,7 @@ return if (signal.data["area"] != area_uid) return - if((!sensors[id_tag] && !vents[id_tag])) + if(!(id_tag in sensors) && !(id_tag in vents)) register_env_machine(id_tag, signal.data["device"]) if(signal.data["device"] == "AScr") sensor_information[id_tag] = signal.data diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index 36e0a4f0c56..9d61fe411ba 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -55,14 +55,14 @@ obj/machinery/air_sensor signal.data["toxins"] = 0 signal.data["nitrogen"] = 0 signal.data["carbon_dioxide"] = 0 - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) proc set_frequency(new_frequency) radio_controller.remove_object(src, frequency) frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) initialize() set_frequency(frequency) @@ -178,7 +178,7 @@ obj/machinery/computer/general_air_control set_frequency(new_frequency) radio_controller.remove_object(src, frequency) frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) initialize() set_frequency(frequency) @@ -254,9 +254,9 @@ Max Output Pressure: [output_pressure] kPa
"} signal.source = src signal.data["tag"] = input_tag - signal.data["status"] = 1 + signal.data["command"] = "status" - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) if(href_list["in_toggle_injector"]) input_info = null @@ -270,7 +270,7 @@ Max Output Pressure: [output_pressure] kPa
"} signal.data["tag"] = input_tag signal.data["command"] = "power_toggle" - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) if(href_list["out_refresh_status"]) output_info = null @@ -282,9 +282,9 @@ Max Output Pressure: [output_pressure] kPa
"} signal.source = src signal.data["tag"] = output_tag - signal.data["status"] = 1 + signal.data["command"] = "status" - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) if(href_list["out_toggle_power"]) output_info = null @@ -298,7 +298,7 @@ Max Output Pressure: [output_pressure] kPa
"} signal.data["tag"] = output_tag signal.data["command"] = "power_toggle" - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) if(href_list["out_set_pressure"]) output_info = null @@ -313,7 +313,7 @@ Max Output Pressure: [output_pressure] kPa
"} signal.data["command"] = "set_internal_pressure" signal.data["parameter"] = "[pressure_setting]" - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) if(href_list["adj_pressure"]) var/change = text2num(href_list["adj_pressure"]) @@ -393,7 +393,7 @@ Max Output Pressure: [output_pressure] kPa
"} else signal.data["command"] = "power_off" - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) ..() @@ -443,9 +443,9 @@ Rate: [volume_rate] L/sec
"} signal.source = src signal.data["tag"] = device_tag - signal.data["status"] = 1 + signal.data["command"] = "status" - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) if(href_list["toggle_automation"]) automation = !automation @@ -462,7 +462,7 @@ Rate: [volume_rate] L/sec
"} signal.data["tag"] = device_tag signal.data["command"] = "power_toggle" - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) if(href_list["injection"]) if(!radio_connection) @@ -475,7 +475,7 @@ Rate: [volume_rate] L/sec
"} signal.data["tag"] = device_tag signal.data["command"] = "inject" - radio_connection.post_signal(src, signal) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) /obj/machinery/computer/atmos_alert var/datum/radio_frequency/radio_connection @@ -504,7 +504,7 @@ Rate: [volume_rate] L/sec
"} set_frequency(new_frequency) radio_controller.remove_object(src, receive_frequency) receive_frequency = new_frequency - radio_connection = radio_controller.add_object(src, receive_frequency) + radio_connection = radio_controller.add_object(src, receive_frequency, RADIO_ATMOSIA) attack_hand(mob/user) diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 097b3170857..4a1be3644ed 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -277,6 +277,20 @@ Release Pressure: -