diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm index 66468a516c..5c5ff50299 100644 --- a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm @@ -47,6 +47,10 @@ air2.volume = ATMOS_DEFAULT_VOLUME_PUMP icon = null +/obj/machinery/atmospherics/binary/dp_vent_pump/Destroy() + unregister_radio(src, frequency) + . = ..() + /obj/machinery/atmospherics/binary/dp_vent_pump/high_volume name = "Large Dual Port Air Vent" diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 4bce44e0b0..4c1863b133 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -29,6 +29,10 @@ air1.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5 air2.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5 +/obj/machinery/atmospherics/binary/passive_gate/Destroy() + unregister_radio(src, frequency) + . = ..() + /obj/machinery/atmospherics/binary/passive_gate/update_icon() icon_state = (unlocked && flowing)? "on" : "off" diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index ac5a00e46c..cddd9f9527 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -39,6 +39,10 @@ Thus, the two variables affect pump operation are set in New(): air1.volume = ATMOS_DEFAULT_VOLUME_PUMP air2.volume = ATMOS_DEFAULT_VOLUME_PUMP +/obj/machinery/atmospherics/binary/pump/Destroy() + unregister_radio(src, frequency) + . = ..() + /obj/machinery/atmospherics/binary/pump/on icon_state = "map_on" use_power = 1 diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index bc9a8d77ee..951e5a03de 100755 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -54,6 +54,10 @@ air2.volume = ATMOS_DEFAULT_VOLUME_FILTER air3.volume = ATMOS_DEFAULT_VOLUME_FILTER +/obj/machinery/atmospherics/trinary/atmos_filter/Destroy() + unregister_radio(src, frequency) + . = ..() + /obj/machinery/atmospherics/trinary/atmos_filter/update_icon() if(istype(src, /obj/machinery/atmospherics/trinary/atmos_filter/m_filter)) icon_state = "m" diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm index e5f0eaaa89..09d2d5e424 100644 --- a/code/ATMOSPHERICS/components/tvalve.dm +++ b/code/ATMOSPHERICS/components/tvalve.dm @@ -277,6 +277,10 @@ var/id = null var/datum/radio_frequency/radio_connection +/obj/machinery/atmospherics/tvalve/digital/Destroy() + unregister_radio(src, frequency) + . = ..() + /obj/machinery/atmospherics/tvalve/digital/bypass icon_state = "map_tvalve1" state = 1 @@ -415,6 +419,10 @@ var/id = null var/datum/radio_frequency/radio_connection +/obj/machinery/atmospherics/tvalve/mirrored/digital/Destroy() + unregister_radio(src, frequency) + . = ..() + /obj/machinery/atmospherics/tvalve/mirrored/digital/bypass icon_state = "map_tvalvem1" state = 1 diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index 3596d0e8cf..84780da425 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -28,6 +28,10 @@ ..() air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //Give it a small reservoir for injecting. Also allows it to have a higher flow rate limit than vent pumps, to differentiate injectors a bit more. +/obj/machinery/atmospherics/unary/outlet_injector/Destroy() + unregister_radio(src, frequency) + . = ..() + /obj/machinery/atmospherics/unary/outlet_injector/update_icon() if(!powered()) icon_state = "off" diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 67476b7f42..a45d3f0860 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -256,7 +256,7 @@ return 1 -/obj/machinery/atmospherics/unary/vent_pump/initialize() +/obj/machinery/atmospherics/unary/vent_pump/atmos_init() ..() //some vents work his own special way diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 0852ea7f74..ad78f5a1f4 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -119,7 +119,7 @@ return 1 -/obj/machinery/atmospherics/unary/vent_scrubber/initialize() +/obj/machinery/atmospherics/unary/vent_scrubber/atmos_init() ..() radio_filter_in = frequency==initial(frequency)?(RADIO_FROM_AIRALARM):null radio_filter_out = frequency==initial(frequency)?(RADIO_TO_AIRALARM):null diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index c95135f889..3cee872f8b 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -229,6 +229,10 @@ var/id = null var/datum/radio_frequency/radio_connection +/obj/machinery/atmospherics/valve/digital/Destroy() + unregister_radio(src, frequency) + . = ..() + /obj/machinery/atmospherics/valve/digital/attack_ai(mob/user as mob) return src.attack_hand(user) diff --git a/code/ATMOSPHERICS/datum_pipeline.dm b/code/ATMOSPHERICS/datum_pipeline.dm index 10cd0bec93..74cef7a172 100644 --- a/code/ATMOSPHERICS/datum_pipeline.dm +++ b/code/ATMOSPHERICS/datum_pipeline.dm @@ -16,7 +16,8 @@ datum/pipeline temporarily_store_air() for(var/obj/machinery/atmospherics/pipe/P in members) P.parent = null - + members = null + edges = null . = ..() proc/process()//This use to be called called from the pipe networks diff --git a/code/ATMOSPHERICS/he_pipes.dm b/code/ATMOSPHERICS/he_pipes.dm index aa474a8572..bff838cfdd 100644 --- a/code/ATMOSPHERICS/he_pipes.dm +++ b/code/ATMOSPHERICS/he_pipes.dm @@ -26,7 +26,7 @@ ..() initialize_directions_he = initialize_directions // The auto-detection from /pipe is good enough for a simple HE pipe -/obj/machinery/atmospherics/pipe/simple/heat_exchanging/initialize() +/obj/machinery/atmospherics/pipe/simple/heat_exchanging/atmos_init() normalize_dir() var/node1_dir var/node2_dir @@ -135,7 +135,7 @@ initialize_directions_he = WEST -/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/initialize() +/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/atmos_init() for(var/obj/machinery/atmospherics/target in get_step(src,initialize_directions)) if(target.initialize_directions & get_dir(target,src)) node1 = target diff --git a/html/changelogs/Leshana-he-pipes-fix.yml b/html/changelogs/Leshana-he-pipes-fix.yml new file mode 100644 index 0000000000..e35c1ba33b --- /dev/null +++ b/html/changelogs/Leshana-he-pipes-fix.yml @@ -0,0 +1,4 @@ +author: Leshana +delete-after: True +changes: + - bugfix: "Construction of heat exchange pipes, vents, and scrubbers now works properly again."