From 2b96770d61adcb712fbe2d832fdefc4e21b75dbf Mon Sep 17 00:00:00 2001 From: "rastaf.zero@gmail.com" Date: Tue, 15 Feb 2011 00:28:00 +0000 Subject: [PATCH] Atmos now starts with nitrous oxide in storage tank. Radio was optimized even more. Still have some reserves. Restored admin verb "Radio Report". It shows some signs of errors on the map, but I am too tired to fix it now. Optimized player login (that "400000 calls of new_player/Move" bug). Various optimizations and fixes in radio code. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1046 316c924e-a436-60f5-8080-3fe189b3f50e --- .../components/binary_devices/dp_vent_pump.dm | 11 +-- .../components/binary_devices/pump.dm | 10 +-- .../components/binary_devices/volume_pump.dm | 6 +- code/ATMOSPHERICS/components/filter.dm | 2 +- .../components/unary/outlet_injector.dm | 13 +++- .../components/unary/vent_pump.dm | 43 +++++++---- .../components/unary/vent_scrubber.dm | 45 +++++++----- code/ATMOSPHERICS/components/valve.dm | 4 +- code/defines/obj/machinery.dm | 3 + code/game/area/areas.dm | 8 +- code/game/communications.dm | 73 ++++++++++++++----- code/game/machinery/airlock_control.dm | 14 ++-- code/game/machinery/alarm.dm | 2 +- code/game/machinery/atmo_control.dm | 32 ++++---- code/game/machinery/atmoalter/canister.dm | 14 ++++ code/game/machinery/bots/ed209bot.dm | 25 ++++--- code/game/machinery/bots/mulebot.dm | 39 ++++++---- code/game/machinery/bots/secbot.dm | 18 +++-- code/game/machinery/machinery.dm | 6 +- code/game/machinery/navbeacon.dm | 4 +- code/game/objects/devices/PDA/radio.dm | 56 +++++++------- code/game/objects/radio/radio.dm | 22 ------ code/modules/admin/verbs/diagnostics.dm | 38 +++++++--- code/modules/mob/new_player/new_player.dm | 5 +- maps/tgstation.2.0.0.dmm | 16 ++-- maps/tgstation.2.0.1.dmm | 20 ++--- maps/tgstation.2.0.2.dmm | 66 ++++++++--------- 27 files changed, 341 insertions(+), 254 deletions(-) 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: -