diff --git a/code/ATMOSPHERICS/components/filter.dm b/code/ATMOSPHERICS/components/filter.dm
deleted file mode 100644
index 278c99955de..00000000000
--- a/code/ATMOSPHERICS/components/filter.dm
+++ /dev/null
@@ -1,389 +0,0 @@
-obj/machinery/atmospherics/filter
- icon = 'filter.dmi'
- icon_state = "intact_off"
- density = 1
-
- name = "Gas filter"
-
- dir = SOUTH
- initialize_directions = SOUTH|NORTH|WEST
- req_access = list(access_atmospherics)
-
- var/on = 0
- var/temp = null // -- TLE
-
- var/datum/gas_mixture/air_in
- var/datum/gas_mixture/air_out1
- var/datum/gas_mixture/air_out2
-
- var/obj/machinery/atmospherics/node_in
- var/obj/machinery/atmospherics/node_out1
- var/obj/machinery/atmospherics/node_out2
-
- var/datum/pipe_network/network_in
- var/datum/pipe_network/network_out1
- var/datum/pipe_network/network_out2
-
- var/target_pressure = ONE_ATMOSPHERE
-
- var/filter_type = 0
-/*
-Filter types:
--1: Nothing
- 0: Carbon Molecules: Plasma Toxin, Oxygen Agent B
- 1: Oxygen: Oxygen ONLY
- 2: Nitrogen: Nitrogen ONLY
- 3: Carbon Dioxide: Carbon Dioxide ONLY
- 4: Sleeping Agent (N2O)
-*/
-
- var/frequency = 0
- var/datum/radio_frequency/radio_connection
-
- proc
- set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
- frequency = new_frequency
- if(frequency)
- radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
-
- New()
- ..()
- switch(dir)
- if(NORTH)
- initialize_directions = NORTH|EAST|SOUTH
- if(SOUTH)
- initialize_directions = NORTH|SOUTH|WEST
- if(EAST)
- initialize_directions = EAST|WEST|SOUTH
- if(WEST)
- initialize_directions = NORTH|EAST|WEST
- if(radio_controller)
- initialize()
-
- update_icon()
- if(node_out1&&node_out2&&node_in)
- icon_state = "intact_[on?("on"):("off")]"
- else
- var/node_out1_direction = get_dir(src, node_out1)
- var/node_out2_direction = get_dir(src, node_out2)
-
- var/node_in_bit = (node_in)?(1):(0)
-
- icon_state = "exposed_[node_out1_direction|node_out2_direction]_[node_in_bit]_off"
-
- on = 0
-
- return
-
- New()
- ..()
-
- air_in = new
- air_out1 = new
- air_out2 = new
-
- air_in.volume = 200
- air_out1.volume = 200
- air_out2.volume = 200
-
- process()
- ..()
- if(!on)
- return 0
-
- var/output_starting_pressure = air_out2.return_pressure()
-
- if(output_starting_pressure >= target_pressure)
- //No need to mix if target is already full!
- return 1
-
- //Calculate necessary moles to transfer using PV=nRT
-
- var/pressure_delta = target_pressure - output_starting_pressure
- var/transfer_moles
-
- if(air_in.temperature > 0)
- transfer_moles = pressure_delta*air_out2.volume/(air_in.temperature * R_IDEAL_GAS_EQUATION)
-
- //Actually transfer the gas
-
- if(transfer_moles > 0)
- var/datum/gas_mixture/removed = air_in.remove(transfer_moles)
-
- if(!removed)
- return
- var/datum/gas_mixture/filtered_out = new
- filtered_out.temperature = removed.temperature
-
- switch(filter_type)
- if(0) //removing hydrocarbons
- filtered_out.toxins = removed.toxins
- removed.toxins = 0
-
- if(removed.trace_gases.len>0)
- for(var/datum/gas/trace_gas in removed.trace_gases)
- if(istype(trace_gas, /datum/gas/oxygen_agent_b))
- removed.trace_gases -= trace_gas
- filtered_out.trace_gases += trace_gas
-
- if(1) //removing O2
- filtered_out.oxygen = removed.oxygen
- removed.oxygen = 0
-
- if(2) //removing N2
- filtered_out.nitrogen = removed.nitrogen
- removed.nitrogen = 0
-
- if(3) //removing CO2
- filtered_out.carbon_dioxide = removed.carbon_dioxide
- removed.carbon_dioxide = 0
-
- if(4)//removing N2O
- if(removed.trace_gases.len>0)
- for(var/datum/gas/trace_gas in removed.trace_gases)
- if(istype(trace_gas, /datum/gas/sleeping_agent))
- removed.trace_gases -= trace_gas
- filtered_out.trace_gases += trace_gas
-
- else
- filtered_out = null
-
-
- air_out1.merge(filtered_out)
- air_out2.merge(removed)
-
- if(network_out1)
- network_out1.update = 1
-
- if(network_out2)
- network_out2.update = 1
-
- if(network_in)
- network_in.update = 1
-
- return 1
-
-// Housekeeping and pipe network stuff below
- network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
- if(reference == node_out1)
- network_out1 = new_network
-
- else if(reference == node_out2)
- network_out2 = new_network
-
- else if(reference == node_in)
- network_in = new_network
-
- if(new_network.normal_members.Find(src))
- return 0
-
- new_network.normal_members += src
-
- return null
-
- Del()
- loc = null
-
- if(node_out1)
- node_out1.disconnect(src)
- del(network_out1)
-
- if(node_out2)
- node_out2.disconnect(src)
- del(network_out2)
-
- if(node_in)
- node_in.disconnect(src)
- del(network_in)
-
- node_out1 = null
- node_out2 = null
- node_in = null
-
- ..()
-
- initialize()
- if(node_out1 && node_in) return
-
- var/node_in_connect = turn(dir, -180)
- var/node_out1_connect = turn(dir, -90)
- var/node_out2_connect = dir
-
-
- for(var/obj/machinery/atmospherics/target in get_step(src,node_out1_connect))
- if(target.initialize_directions & get_dir(target,src))
- node_out1 = target
- break
-
- for(var/obj/machinery/atmospherics/target in get_step(src,node_out2_connect))
- if(target.initialize_directions & get_dir(target,src))
- node_out2 = target
- break
-
- for(var/obj/machinery/atmospherics/target in get_step(src,node_in_connect))
- if(target.initialize_directions & get_dir(target,src))
- node_in = target
- break
-
- update_icon()
-
- set_frequency(frequency)
-
- build_network()
- if(!network_out1 && node_out1)
- network_out1 = new /datum/pipe_network()
- network_out1.normal_members += src
- network_out1.build_network(node_out1, src)
-
- if(!network_out2 && node_out2)
- network_out2 = new /datum/pipe_network()
- network_out2.normal_members += src
- network_out2.build_network(node_out2, src)
-
- if(!network_in && node_in)
- network_in = new /datum/pipe_network()
- network_in.normal_members += src
- network_in.build_network(node_in, src)
-
-
- return_network(obj/machinery/atmospherics/reference)
- build_network()
-
- if(reference==node_out1)
- return network_out1
-
- if(reference==node_out2)
- return network_out2
-
- if(reference==node_in)
- return network_in
-
- return null
-
- reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network)
- if(network_out1 == old_network)
- network_out1 = new_network
-
- if(network_out2 == old_network)
- network_out2 = new_network
-
- if(network_in == old_network)
- network_in = new_network
-
- return 1
-
- return_network_air(datum/pipe_network/reference)
- var/list/results = list()
-
- if(network_out1 == reference)
- results += air_out1
-
- if(network_out2 == reference)
- results += air_out2
-
- if(network_in == reference)
- results += air_in
-
- return results
-
- disconnect(obj/machinery/atmospherics/reference)
- if(reference==node_out1)
- del(network_out1)
- node_out1 = null
-
- else if(reference==node_out2)
- del(network_out2)
- node_out2 = null
-
- else if(reference==node_in)
- del(network_in)
- node_in = null
-
- return null
-
-
-obj/machinery/atmospherics/filter/attack_hand(user as mob) // -- TLE
- if(..())
- return
-
- if(!src.allowed(user))
- user << "\red Access denied."
- return
-/*
- dat += "Autolathe Wires:
"
- var/wire
- for(wire in src.wires)
- dat += text("[wire] Wire: [src.wires[wire] ? "Mend" : "Cut"] Pulse
")
-
- dat += text("The red light is [src.disabled ? "off" : "on"].
")
- dat += text("The green light is [src.shocked ? "off" : "on"].
")
- dat += text("The blue light is [src.hacked ? "off" : "on"].
")
-*/
- var/dat
- var/current_filter_type
- switch(filter_type)
- if(0)
- current_filter_type = "Carbon Molecules"
- if(1)
- current_filter_type = "Oxygen"
- if(2)
- current_filter_type = "Nitrogen"
- if(3)
- current_filter_type = "Carbon Dioxide"
- if(4)
- current_filter_type = "Nitrous Oxide"
- if(-1)
- current_filter_type = "Nothing"
- else
- current_filter_type = "ERROR - Report this bug to the admin, please!"
-
- dat += {"
- Power: [on?"On":"Off"]
- Filtering: [current_filter_type]
- Set Filter Type:
- Carbon Molecules
- Oxygen
- Nitrogen
- Carbon Dioxide
- Nitrous Oxide
- Nothing
-
Desirable output pressure:
- [src.target_pressure] | Change
- "}
-/*
- user << browse("[src.name] control[dat]","window=atmo_filter")
- onclose(user, "atmo_filter")
- return
-
- if (src.temp)
- dat = text("[]
Clear Screen", src.temp, src)
- //else
- // src.on != src.on
-*/
- user << browse("[src.name] control[dat]", "window=atmo_filter")
- onclose(user, "atmo_filter")
- return
-
-obj/machinery/atmospherics/filter/Topic(href, href_list) // -- TLE
- if(..())
- return
- usr.machine = src
- src.add_fingerprint(usr)
- if(href_list["filterset"])
- src.filter_type = text2num(href_list["filterset"])
- if (href_list["temp"])
- src.temp = null
- if(href_list["set_press"])
- var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num
- src.target_pressure = max(0, min(4500, new_pressure))
- if(href_list["power"])
- on=!on
- src.update_icon()
- src.updateUsrDialog()
-/*
- for(var/mob/M in viewers(1, src))
- if ((M.client && M.machine == src))
- src.attack_hand(M)
-*/
- return
diff --git a/code/ATMOSPHERICS/components/mixer.dm b/code/ATMOSPHERICS/components/mixer.dm
deleted file mode 100644
index 9ad3c44cf13..00000000000
--- a/code/ATMOSPHERICS/components/mixer.dm
+++ /dev/null
@@ -1,301 +0,0 @@
-obj/machinery/atmospherics/mixer
- icon = 'mixer.dmi'
- icon_state = "intact_off"
- density = 1
-
- name = "Gas mixer"
-
- dir = SOUTH
- initialize_directions = SOUTH|NORTH|WEST
- req_access = list(access_atmospherics)
-
- var/on = 0
-
- var/datum/gas_mixture/air_in1
- var/datum/gas_mixture/air_in2
- var/datum/gas_mixture/air_out
-
- var/obj/machinery/atmospherics/node_in1
- var/obj/machinery/atmospherics/node_in2
- var/obj/machinery/atmospherics/node_out
-
- var/datum/pipe_network/network_in1
- var/datum/pipe_network/network_in2
- var/datum/pipe_network/network_out
-
- var/target_pressure = ONE_ATMOSPHERE
- var/node1_concentration = 0.5
- var/node2_concentration = 0.5
-
- update_icon()
- if(node_in1&&node_in2&&node_out)
- icon_state = "intact_[on?("on"):("off")]"
- else
- var/node_in1_direction = get_dir(src, node_in1)
- var/node_in2_direction = get_dir(src, node_in2)
-
- var/node_out_bit = (node_out)?(1):(0)
-
- icon_state = "exposed_[node_in1_direction|node_in2_direction]_[node_out_bit]_off"
-
- on = 0
-
- return
-
- New()
- ..()
- switch(dir)
- if(NORTH)
- initialize_directions = NORTH|EAST|SOUTH
- if(EAST)
- initialize_directions = EAST|SOUTH|WEST
- if(SOUTH)
- initialize_directions = SOUTH|WEST|NORTH
- if(WEST)
- initialize_directions = WEST|NORTH|EAST
- air_in1 = new
- air_in2 = new
- air_out = new
-
- air_in1.volume = 200
- air_in2.volume = 200
- air_out.volume = 300
-
- process()
- ..()
- if(!on)
- return 0
-
- var/output_starting_pressure = air_out.return_pressure()
-
- if(output_starting_pressure >= target_pressure)
- //No need to mix if target is already full!
- return 1
-
- //Calculate necessary moles to transfer using PV=nRT
-
- var/pressure_delta = target_pressure - output_starting_pressure
- var/transfer_moles1 = 0
- var/transfer_moles2 = 0
-
- if(air_in1.temperature > 0)
- transfer_moles1 = (node1_concentration*pressure_delta)*air_out.volume/(air_in1.temperature * R_IDEAL_GAS_EQUATION)
-
- if(air_in2.temperature > 0)
- transfer_moles2 = (node2_concentration*pressure_delta)*air_out.volume/(air_in2.temperature * R_IDEAL_GAS_EQUATION)
-
- var/air_in1_moles = air_in1.total_moles()
- var/air_in2_moles = air_in2.total_moles()
-
- if((air_in1_moles < transfer_moles1) || (air_in2_moles < transfer_moles2))
- if(!transfer_moles1 || !transfer_moles2) return
- var/ratio = min(air_in1_moles/transfer_moles1, air_in2_moles/transfer_moles2)
-
- transfer_moles1 *= ratio
- transfer_moles2 *= ratio
-
- //Actually transfer the gas
-
- if(transfer_moles1 > 0)
- var/datum/gas_mixture/removed1 = air_in1.remove(transfer_moles1)
- air_out.merge(removed1)
-
- if(transfer_moles2 > 0)
- var/datum/gas_mixture/removed2 = air_in2.remove(transfer_moles2)
- air_out.merge(removed2)
-
- if(network_in1 && transfer_moles1)
- network_in1.update = 1
-
- if(network_in2 && transfer_moles2)
- network_in2.update = 1
-
- if(network_out)
- network_out.update = 1
-
- return 1
-
-// Housekeeping and pipe network stuff below
- network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
- if(reference == node_in1)
- network_in1 = new_network
-
- else if(reference == node_in2)
- network_in2 = new_network
-
- else if(reference == node_out)
- network_out = new_network
-
- if(new_network.normal_members.Find(src))
- return 0
-
- new_network.normal_members += src
-
- return null
-
- Del()
- loc = null
-
- if(node_in1)
- node_in1.disconnect(src)
- del(network_in1)
-
- if(node_in2)
- node_in2.disconnect(src)
- del(network_in2)
-
- if(node_out)
- node_out.disconnect(src)
- del(network_out)
-
- node_in1 = null
- node_in2 = null
- node_out = null
-
- ..()
-
- initialize()
- if(node_in1 && node_out) return
-
- var/node_out_connect = dir
- var/node_in1_connect = turn(dir, -90)
- var/node_in2_connect = turn(dir, -180)
-
- for(var/obj/machinery/atmospherics/target in get_step(src,node_in1_connect))
- if(target.initialize_directions & get_dir(target,src))
- node_in1 = target
- break
-
- for(var/obj/machinery/atmospherics/target in get_step(src,node_in2_connect))
- if(target.initialize_directions & get_dir(target,src))
- node_in2 = target
- break
-
- for(var/obj/machinery/atmospherics/target in get_step(src,node_out_connect))
- if(target.initialize_directions & get_dir(target,src))
- node_out = target
- break
-
- update_icon()
-
- build_network()
- if(!network_in1 && node_in1)
- network_in1 = new /datum/pipe_network()
- network_in1.normal_members += src
- network_in1.build_network(node_in1, src)
-
- if(!network_in2 && node_in2)
- network_in2 = new /datum/pipe_network()
- network_in2.normal_members += src
- network_in2.build_network(node_in2, src)
-
- if(!network_out && node_out)
- network_out = new /datum/pipe_network()
- network_out.normal_members += src
- network_out.build_network(node_out, src)
-
-
- return_network(obj/machinery/atmospherics/reference)
- build_network()
-
- if(reference==node_in1)
- return network_in1
-
- if(reference==node_in2)
- return network_in2
-
- if(reference==node_out)
- return network_out
-
- return null
-
- reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network)
- if(network_in1 == old_network)
- network_in1 = new_network
-
- if(network_in2 == old_network)
- network_in2 = new_network
-
- if(network_out == old_network)
- network_out = new_network
-
- return 1
-
- return_network_air(datum/pipe_network/reference)
- var/list/results = list()
-
- if(network_in1 == reference)
- results += air_in1
-
- if(network_in2 == reference)
- results += air_in2
-
- if(network_out == reference)
- results += air_out
-
- return results
-
- disconnect(obj/machinery/atmospherics/reference)
- if(reference==node_in1)
- del(network_in1)
- node_in1 = null
-
- else if(reference==node_in2)
- del(network_in2)
- node_in2 = null
-
- else if(reference==node_out)
- del(network_out)
- node_out = null
-
- return null
-
-
- attack_hand(user as mob)
- if(..())
- return
- src.add_fingerprint(usr)
- if(!src.allowed(user))
- user << "\red Access denied."
- return
- usr.machine = src
- var/dat = {"Power: [on?"On":"Off"]
- Desirable output pressure:
- [target_pressure]kPa | Change
-
- Node 1 Concentration:
- -
- -
- [node1_concentration]([node1_concentration*100]%)
- +
- +
-
- Node 2 Concentration:
- -
- -
- [node2_concentration]([node2_concentration*100]%)
- +
- +
- "}
-
- user << browse("[src.name] control[dat]", "window=atmo_mixer")
- onclose(user, "atmo_mixer")
- return
-
- Topic(href,href_list)
- if(href_list["power"])
- on = !on
- if(href_list["set_press"])
- var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num
- src.target_pressure = max(0, min(4500, new_pressure))
- if(href_list["node1_c"])
- var/value = text2num(href_list["node1_c"])
- src.node1_concentration = max(0, min(1, src.node1_concentration + value))
- src.node2_concentration = max(0, min(1, src.node2_concentration - value))
- if(href_list["node2_c"])
- var/value = text2num(href_list["node2_c"])
- src.node2_concentration = max(0, min(1, src.node2_concentration + value))
- src.node1_concentration = max(0, min(1, src.node1_concentration - value))
- src.update_icon()
- src.updateUsrDialog()
- return
diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
new file mode 100644
index 00000000000..6747230f453
--- /dev/null
+++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
@@ -0,0 +1,234 @@
+obj/machinery/atmospherics/trinary/filter
+ icon = 'filter.dmi'
+ icon_state = "intact_off"
+ density = 1
+
+ name = "Gas filter"
+
+ req_access = list(access_atmospherics)
+
+ var/on = 0
+ var/temp = null // -- TLE
+
+ var/target_pressure = ONE_ATMOSPHERE
+
+ var/filter_type = 0
+/*
+Filter types:
+-1: Nothing
+ 0: Carbon Molecules: Plasma Toxin, Oxygen Agent B
+ 1: Oxygen: Oxygen ONLY
+ 2: Nitrogen: Nitrogen ONLY
+ 3: Carbon Dioxide: Carbon Dioxide ONLY
+ 4: Sleeping Agent (N2O)
+*/
+
+ var/frequency = 0
+ var/datum/radio_frequency/radio_connection
+
+ proc
+ set_frequency(new_frequency)
+ radio_controller.remove_object(src, frequency)
+ frequency = new_frequency
+ if(frequency)
+ radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
+
+ New()
+ if(radio_controller)
+ initialize()
+ ..()
+
+ update_icon()
+ if(node2 && node3 && node1)
+ icon_state = "intact_[on?("on"):("off")]"
+ else
+ icon_state = "hintact_off"
+ on = 0
+
+ return
+
+ New()
+ ..()
+
+ process()
+ ..()
+ if(!on)
+ return 0
+
+ var/output_starting_pressure = air3.return_pressure()
+
+ if(output_starting_pressure >= target_pressure)
+ //No need to mix if target is already full!
+ return 1
+
+ //Calculate necessary moles to transfer using PV=nRT
+
+ var/pressure_delta = target_pressure - output_starting_pressure
+ var/transfer_moles
+
+ if(air1.temperature > 0)
+ transfer_moles = pressure_delta*air3.volume/(air1.temperature * R_IDEAL_GAS_EQUATION)
+
+ //Actually transfer the gas
+
+ if(transfer_moles > 0)
+ var/datum/gas_mixture/removed = air1.remove(transfer_moles)
+
+ if(!removed)
+ return
+ var/datum/gas_mixture/filtered_out = new
+ filtered_out.temperature = removed.temperature
+
+ switch(filter_type)
+ if(0) //removing hydrocarbons
+ filtered_out.toxins = removed.toxins
+ removed.toxins = 0
+
+ if(removed.trace_gases.len>0)
+ for(var/datum/gas/trace_gas in removed.trace_gases)
+ if(istype(trace_gas, /datum/gas/oxygen_agent_b))
+ removed.trace_gases -= trace_gas
+ filtered_out.trace_gases += trace_gas
+
+ if(1) //removing O2
+ filtered_out.oxygen = removed.oxygen
+ removed.oxygen = 0
+
+ if(2) //removing N2
+ filtered_out.nitrogen = removed.nitrogen
+ removed.nitrogen = 0
+
+ if(3) //removing CO2
+ filtered_out.carbon_dioxide = removed.carbon_dioxide
+ removed.carbon_dioxide = 0
+
+ if(4)//removing N2O
+ if(removed.trace_gases.len>0)
+ for(var/datum/gas/trace_gas in removed.trace_gases)
+ if(istype(trace_gas, /datum/gas/sleeping_agent))
+ removed.trace_gases -= trace_gas
+ filtered_out.trace_gases += trace_gas
+
+ else
+ filtered_out = null
+
+
+ air2.merge(filtered_out)
+ air3.merge(removed)
+
+ if(network2)
+ network2.update = 1
+
+ if(network3)
+ network3.update = 1
+
+ if(network1)
+ network1.update = 1
+
+ return 1
+
+ initialize()
+ set_frequency(frequency)
+ ..()
+
+ attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+ if (!istype(W, /obj/item/weapon/wrench))
+ return ..()
+ var/turf/T = src.loc
+ if (level==1 && isturf(T) && T.intact)
+ user << "\red You must remove the plating first."
+ return 1
+ var/datum/gas_mixture/int_air = return_air()
+ var/datum/gas_mixture/env_air = loc.return_air()
+ if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
+ user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
+ add_fingerprint(user)
+ return 1
+ playsound(src.loc, 'Ratchet.ogg', 50, 1)
+ user << "\blue You begin to unfasten \the [src]..."
+ if (do_after(user, 40))
+ user.visible_message( \
+ "[user] unfastens \the [src].", \
+ "\blue You have unfastened \the [src].", \
+ "You hear ratchet.")
+ new /obj/item/pipe(loc, make_from=src)
+ del(src)
+
+
+obj/machinery/atmospherics/trinary/filter/attack_hand(user as mob) // -- TLE
+ if(..())
+ return
+
+ if(!src.allowed(user))
+ user << "\red Access denied."
+ return
+
+ var/dat
+ var/current_filter_type
+ switch(filter_type)
+ if(0)
+ current_filter_type = "Carbon Molecules"
+ if(1)
+ current_filter_type = "Oxygen"
+ if(2)
+ current_filter_type = "Nitrogen"
+ if(3)
+ current_filter_type = "Carbon Dioxide"
+ if(4)
+ current_filter_type = "Nitrous Oxide"
+ if(-1)
+ current_filter_type = "Nothing"
+ else
+ current_filter_type = "ERROR - Report this bug to the admin, please!"
+
+ dat += {"
+ Power: [on?"On":"Off"]
+ Filtering: [current_filter_type]
+ Set Filter Type:
+ Carbon Molecules
+ Oxygen
+ Nitrogen
+ Carbon Dioxide
+ Nitrous Oxide
+ Nothing
+
Desirable output pressure:
+ [src.target_pressure] | Change
+ "}
+/*
+ user << browse("[src.name] control[dat]","window=atmo_filter")
+ onclose(user, "atmo_filter")
+ return
+
+ if (src.temp)
+ dat = text("[]
Clear Screen", src.temp, src)
+ //else
+ // src.on != src.on
+*/
+ user << browse("[src.name] control[dat]", "window=atmo_filter")
+ onclose(user, "atmo_filter")
+ return
+
+obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE
+ if(..())
+ return
+ usr.machine = src
+ src.add_fingerprint(usr)
+ if(href_list["filterset"])
+ src.filter_type = text2num(href_list["filterset"])
+ if (href_list["temp"])
+ src.temp = null
+ if(href_list["set_press"])
+ var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num
+ src.target_pressure = max(0, min(4500, new_pressure))
+ if(href_list["power"])
+ on=!on
+ src.update_icon()
+ src.updateUsrDialog()
+/*
+ for(var/mob/M in viewers(1, src))
+ if ((M.client && M.machine == src))
+ src.attack_hand(M)
+*/
+ return
+
+
diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
new file mode 100644
index 00000000000..801b8bf83fe
--- /dev/null
+++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
@@ -0,0 +1,155 @@
+obj/machinery/atmospherics/trinary/mixer
+ icon = 'mixer.dmi'
+ icon_state = "intact_off"
+ density = 1
+
+ name = "Gas mixer"
+
+ req_access = list(access_atmospherics)
+
+ var/on = 0
+
+ var/target_pressure = ONE_ATMOSPHERE
+ var/node1_concentration = 0.5
+ var/node2_concentration = 0.5
+
+ //node 3 is the outlet, nodes 1 & 2 are intakes
+
+ update_icon()
+ if(node2 && node3 && node1)
+ icon_state = "intact_[on?("on"):("off")]"
+ else
+ icon_state = "intact_off"
+ on = 0
+
+ return
+
+ New()
+ ..()
+ air3.volume = 300
+
+ process()
+ ..()
+ if(!on)
+ return 0
+
+ var/output_starting_pressure = air3.return_pressure()
+
+ if(output_starting_pressure >= target_pressure)
+ //No need to mix if target is already full!
+ return 1
+
+ //Calculate necessary moles to transfer using PV=nRT
+
+ var/pressure_delta = target_pressure - output_starting_pressure
+ var/transfer_moles1 = 0
+ var/transfer_moles2 = 0
+
+ if(air1.temperature > 0)
+ transfer_moles1 = (node1_concentration*pressure_delta)*air3.volume/(air1.temperature * R_IDEAL_GAS_EQUATION)
+
+ if(air2.temperature > 0)
+ transfer_moles2 = (node2_concentration*pressure_delta)*air3.volume/(air2.temperature * R_IDEAL_GAS_EQUATION)
+
+ var/air1_moles = air1.total_moles()
+ var/air2_moles = air2.total_moles()
+
+ if((air1_moles < transfer_moles1) || (air2_moles < transfer_moles2))
+ if(!transfer_moles1 || !transfer_moles2) return
+ var/ratio = min(air1_moles/transfer_moles1, air2_moles/transfer_moles2)
+
+ transfer_moles1 *= ratio
+ transfer_moles2 *= ratio
+
+ //Actually transfer the gas
+
+ if(transfer_moles1 > 0)
+ var/datum/gas_mixture/removed1 = air1.remove(transfer_moles1)
+ air3.merge(removed1)
+
+ if(transfer_moles2 > 0)
+ var/datum/gas_mixture/removed2 = air2.remove(transfer_moles2)
+ air3.merge(removed2)
+
+ if(network1 && transfer_moles1)
+ network1.update = 1
+
+ if(network2 && transfer_moles2)
+ network2.update = 1
+
+ if(network3)
+ network3.update = 1
+
+ return 1
+
+ attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+ if (!istype(W, /obj/item/weapon/wrench))
+ return ..()
+ var/turf/T = src.loc
+ if (level==1 && isturf(T) && T.intact)
+ user << "\red You must remove the plating first."
+ return 1
+ var/datum/gas_mixture/int_air = return_air()
+ var/datum/gas_mixture/env_air = loc.return_air()
+ if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
+ user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
+ add_fingerprint(user)
+ return 1
+ playsound(src.loc, 'Ratchet.ogg', 50, 1)
+ user << "\blue You begin to unfasten \the [src]..."
+ if (do_after(user, 40))
+ user.visible_message( \
+ "[user] unfastens \the [src].", \
+ "\blue You have unfastened \the [src].", \
+ "You hear ratchet.")
+ new /obj/item/pipe(loc, make_from=src)
+ del(src)
+
+ attack_hand(user as mob)
+ if(..())
+ return
+ src.add_fingerprint(usr)
+ if(!src.allowed(user))
+ user << "\red Access denied."
+ return
+ usr.machine = src
+ var/dat = {"Power: [on?"On":"Off"]
+ Desirable output pressure:
+ [target_pressure]kPa | Change
+
+ Node 1 Concentration:
+ -
+ -
+ [node1_concentration]([node1_concentration*100]%)
+ +
+ +
+
+ Node 2 Concentration:
+ -
+ -
+ [node2_concentration]([node2_concentration*100]%)
+ +
+ +
+ "}
+
+ user << browse("[src.name] control[dat]", "window=atmo_mixer")
+ onclose(user, "atmo_mixer")
+ return
+
+ Topic(href,href_list)
+ if(href_list["power"])
+ on = !on
+ if(href_list["set_press"])
+ var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num
+ src.target_pressure = max(0, min(4500, new_pressure))
+ if(href_list["node1_c"])
+ var/value = text2num(href_list["node1_c"])
+ src.node1_concentration = max(0, min(1, src.node1_concentration + value))
+ src.node2_concentration = max(0, min(1, src.node2_concentration - value))
+ if(href_list["node2_c"])
+ var/value = text2num(href_list["node2_c"])
+ src.node2_concentration = max(0, min(1, src.node2_concentration + value))
+ src.node1_concentration = max(0, min(1, src.node1_concentration - value))
+ src.update_icon()
+ src.updateUsrDialog()
+ return
diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
new file mode 100644
index 00000000000..e22208b071f
--- /dev/null
+++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
@@ -0,0 +1,163 @@
+obj/machinery/atmospherics/trinary
+ dir = SOUTH
+ initialize_directions = SOUTH|NORTH|WEST
+
+ var/datum/gas_mixture/air1
+ var/datum/gas_mixture/air2
+ var/datum/gas_mixture/air3
+
+ var/obj/machinery/atmospherics/node1
+ var/obj/machinery/atmospherics/node2
+ var/obj/machinery/atmospherics/node3
+
+ var/datum/pipe_network/network1
+ var/datum/pipe_network/network2
+ var/datum/pipe_network/network3
+
+ New()
+ ..()
+ switch(dir)
+ if(NORTH)
+ initialize_directions = EAST|NORTH|SOUTH
+ if(SOUTH)
+ initialize_directions = SOUTH|WEST|NORTH
+ if(EAST)
+ initialize_directions = EAST|WEST|SOUTH
+ if(WEST)
+ initialize_directions = WEST|NORTH|EAST
+ air1 = new
+ air2 = new
+ air3 = new
+
+ air1.volume = 200
+ air2.volume = 200
+ air3.volume = 200
+
+// Housekeeping and pipe network stuff below
+ network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
+ if(reference == node1)
+ network1 = new_network
+
+ else if(reference == node2)
+ network2 = new_network
+
+ else if (reference == node3)
+ network3 = new_network
+
+ if(new_network.normal_members.Find(src))
+ return 0
+
+ new_network.normal_members += src
+
+ return null
+
+ Del()
+ loc = null
+
+ if(node1)
+ node1.disconnect(src)
+ del(network1)
+ if(node2)
+ node2.disconnect(src)
+ del(network2)
+ if(node3)
+ node3.disconnect(src)
+ del(network3)
+
+ node1 = null
+ node2 = null
+ node3 = null
+
+ ..()
+
+ initialize()
+ if(node1 && node2 && node3) return
+
+ var/node1_connect = turn(dir, -180)
+ var/node2_connect = turn(dir, -90)
+ var/node3_connect = dir
+
+ for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
+ if(target.initialize_directions & get_dir(target,src))
+ node1 = target
+ break
+
+ for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
+ if(target.initialize_directions & get_dir(target,src))
+ node2 = target
+ break
+
+ for(var/obj/machinery/atmospherics/target in get_step(src,node3_connect))
+ if(target.initialize_directions & get_dir(target,src))
+ node3 = target
+ break
+
+ update_icon()
+
+ build_network()
+ if(!network1 && node1)
+ network1 = new /datum/pipe_network()
+ network1.normal_members += src
+ network1.build_network(node1, src)
+
+ if(!network2 && node2)
+ network2 = new /datum/pipe_network()
+ network2.normal_members += src
+ network2.build_network(node2, src)
+
+ if(!network3 && node3)
+ network3 = new /datum/pipe_network()
+ network3.normal_members += src
+ network3.build_network(node3, src)
+
+
+ return_network(obj/machinery/atmospherics/reference)
+ build_network()
+
+ if(reference==node1)
+ return network1
+
+ if(reference==node2)
+ return network2
+
+ if(reference==node3)
+ return network3
+
+ return null
+
+ reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network)
+ if(network1 == old_network)
+ network1 = new_network
+ if(network2 == old_network)
+ network2 = new_network
+ if(network3 == old_network)
+ network3 = new_network
+
+ return 1
+
+ return_network_air(datum/pipe_network/reference)
+ var/list/results = list()
+
+ if(network1 == reference)
+ results += air1
+ if(network2 == reference)
+ results += air2
+ if(network3 == reference)
+ results += air3
+
+ return results
+
+ disconnect(obj/machinery/atmospherics/reference)
+ if(reference==node1)
+ del(network1)
+ node1 = null
+
+ else if(reference==node2)
+ del(network2)
+ node2 = null
+
+ else if(reference==node3)
+ del(network3)
+ node3 = null
+
+ return null
\ No newline at end of file
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 6dc3344df4e..f3190658e99 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -15,6 +15,8 @@ Buildable meters
#define PIPE_SCRUBBER 10
#define PIPE_INSULATED_STRAIGHT 11
#define PIPE_INSULATED_BENT 12
+#define PIPE_GAS_FILTER 13
+#define PIPE_GAS_MIXER 14
/obj/item/pipe
name = "pipe"
@@ -57,6 +59,10 @@ Buildable meters
src.pipe_type = PIPE_MVALVE
else if(istype(make_from, /obj/machinery/atmospherics/binary/pump))
src.pipe_type = PIPE_PUMP
+ else if(istype(make_from, /obj/machinery/atmospherics/trinary/filter))
+ src.pipe_type = PIPE_GAS_FILTER
+ else if(istype(make_from, /obj/machinery/atmospherics/trinary/mixer))
+ src.pipe_type = PIPE_GAS_MIXER
else if(istype(make_from, /obj/machinery/atmospherics/unary/vent_scrubber))
src.pipe_type = PIPE_SCRUBBER
else
@@ -84,6 +90,8 @@ Buildable meters
"scrubber", \
"insulated pipe", \
"bent insulated pipe", \
+ "gas filter", \
+ "gas mixer", \
)
name = nlist[pipe_type+1] + " fitting"
var/list/islist = list( \
@@ -100,6 +108,8 @@ Buildable meters
"scrubber", \
"insulated", \
"insulated", \
+ "filter", \
+ "mixer", \
)
icon_state = islist[pipe_type + 1]
@@ -162,6 +172,8 @@ Buildable meters
return dir
if(PIPE_MANIFOLD)
return flip|cw|acw
+ if(PIPE_GAS_FILTER, PIPE_GAS_MIXER)
+ return dir|flip|cw
return 0
/obj/item/pipe/proc/get_pdir() //endpoints for regular pipes
@@ -366,6 +378,45 @@ Buildable meters
P.node2.initialize()
P.node2.build_network()
+ if(PIPE_GAS_FILTER) //gas filter
+ var/obj/machinery/atmospherics/trinary/filter/P = new(src.loc)
+ P.dir = dir
+ P.initialize_directions = pipe_dir
+ if (pipename)
+ P.name = pipename
+ var/turf/T = P.loc
+ P.level = T.intact ? 2 : 1
+ P.initialize()
+ P.build_network()
+ if (P.node1)
+ P.node1.initialize()
+ P.node1.build_network()
+ if (P.node2)
+ P.node2.initialize()
+ P.node2.build_network()
+ if (P.node3)
+ P.node3.initialize()
+ P.node3.build_network()
+
+ if(PIPE_GAS_MIXER) //gas filter
+ var/obj/machinery/atmospherics/trinary/mixer/P = new(src.loc)
+ P.dir = dir
+ P.initialize_directions = pipe_dir
+ if (pipename)
+ P.name = pipename
+ var/turf/T = P.loc
+ P.level = T.intact ? 2 : 1
+ P.initialize()
+ P.build_network()
+ if (P.node1)
+ P.node1.initialize()
+ P.node1.build_network()
+ if (P.node2)
+ P.node2.initialize()
+ P.node2.build_network()
+ if (P.node3)
+ P.node3.initialize()
+ P.node3.build_network()
if(PIPE_SCRUBBER) //scrubber
var/obj/machinery/atmospherics/unary/vent_scrubber/S = new(src.loc)
@@ -448,3 +499,5 @@ Buildable meters
#undef PIPE_SCRUBBER
#undef PIPE_INSULATED_STRAIGHT
#undef PIPE_INSULATED_BENT
+#undef PIPE_GAS_FILTER
+#undef PIPE_GAS_MIXER
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index 372c7d86d17..25de2c5138b 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -24,6 +24,8 @@
Gas Pump
Scrubber
Meter
+Gas Filter
+Gas Mixer
Heat exchange:
Pipe
Bent Pipe
diff --git a/icons/obj/pipe-item.dmi b/icons/obj/pipe-item.dmi
index d973bd0df6d..459b7e52cc8 100644
Binary files a/icons/obj/pipe-item.dmi and b/icons/obj/pipe-item.dmi differ
diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm
index 8aeb3f0bf4a..6de015e5e82 100644
--- a/maps/tgstation.2.0.8.dmm
+++ b/maps/tgstation.2.0.8.dmm
@@ -4253,7 +4253,7 @@
"bDO" = (/turf/simulated/floor,/area/atmos)
"bDP" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b"; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
"bDQ" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor,/area/atmos)
-"bDR" = (/obj/machinery/atmospherics/filter{dir = 4},/turf/simulated/floor,/area/atmos)
+"bDR" = (/obj/machinery/atmospherics/trinary/filter{dir = 4},/turf/simulated/floor,/area/atmos)
"bDS" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor,/area/atmos)
"bDT" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/atmos)
"bDU" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/atmos)
@@ -4651,7 +4651,7 @@
"bLw" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 6; icon_state = "intact-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
"bLx" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 9; icon_state = "intact-y"; level = 2},/turf/simulated/floor,/area/atmos)
"bLy" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
-"bLz" = (/obj/machinery/atmospherics/filter{dir = 1; filter_type = 4; icon_state = "intact_on"; name = "Gas filter (N2O tank)"; on = 1},/turf/simulated/floor,/area/atmos)
+"bLz" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; filter_type = 4; icon_state = "intact_on"; name = "Gas filter (N2O tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"bLA" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/obj/machinery/meter,/turf/simulated/floor{icon_state = "escape"; dir = 5},/area/atmos)
"bLB" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; initialize_directions = 12; level = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"},/turf/simulated/floor/plating,/area/atmos)
"bLC" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "n2o_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine/n20,/area/atmos)
@@ -4818,7 +4818,7 @@
"bOH" = (/obj/structure/closet/extinguisher{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{icon_state = "caution"; dir = 5},/area/hallway/primary/aft)
"bOI" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/atmos)
"bOJ" = (/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_on"; on = 1},/turf/simulated/floor,/area/atmos)
-"bOK" = (/obj/machinery/atmospherics/filter{dir = 1; icon_state = "intact_on"; name = "Gas filter (Toxins tank)"; on = 1},/turf/simulated/floor,/area/atmos)
+"bOK" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; icon_state = "intact_on"; name = "Gas filter (Toxins tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"bOL" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/obj/machinery/meter,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/atmos)
"bOM" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "tox_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos)
"bON" = (/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos)
@@ -4975,7 +4975,7 @@
"bRI" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; icon_state = "intact-y"; level = 2},/turf/simulated/floor,/area/atmos)
"bRJ" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "N2 to Pure"; on = 0},/turf/simulated/floor,/area/atmos)
"bRK" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r"; level = 2},/obj/item/weapon/cigbutt,/turf/simulated/floor,/area/atmos)
-"bRL" = (/obj/machinery/atmospherics/filter{dir = 1; filter_type = 3; icon_state = "intact_on"; name = "Gas filter (CO2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
+"bRL" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; filter_type = 3; icon_state = "intact_on"; name = "Gas filter (CO2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"bRM" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/obj/machinery/meter,/turf/simulated/floor{dir = 5; icon_state = "yellow"},/area/atmos)
"bRN" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "co2_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos)
"bRO" = (/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos)
@@ -5044,7 +5044,7 @@
"bSZ" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bTa" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 8; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos)
"bTb" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; name = "O2 to Air"; on = 1},/turf/simulated/floor,/area/atmos)
-"bTc" = (/obj/machinery/atmospherics/mixer{icon_state = "intact_on"; name = "Gas mixer (N2/O2)"; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 1; target_pressure = 4500},/turf/simulated/floor,/area/atmos)
+"bTc" = (/obj/machinery/atmospherics/trinary/mixer{icon_state = "intact_on"; name = "Gas mixer (N2/O2)"; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 1; target_pressure = 4500},/turf/simulated/floor,/area/atmos)
"bTd" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 5; icon_state = "intact-y"; level = 2},/turf/simulated/floor,/area/atmos)
"bTe" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "CO2 to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bTf" = (/obj/machinery/atmospherics/valve/digital{color = "yellow"; dir = 4; name = "CO2 Outlet Valve"},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/atmos)
@@ -5087,10 +5087,10 @@
"bTQ" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = "SS13"},/obj/machinery/portable_atmospherics/pump,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor,/area/atmos)
"bTR" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor,/area/atmos)
"bTS" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "N2 Out"; on = 1},/turf/simulated/floor,/area/atmos)
-"bTT" = (/obj/machinery/atmospherics/filter{dir = 4; filter_type = 2; icon_state = "intact_on"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
+"bTT" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 2; icon_state = "intact_on"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"bTU" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bTV" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "O2 Out"; on = 1},/turf/simulated/floor,/area/atmos)
-"bTW" = (/obj/machinery/atmospherics/filter{dir = 4; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
+"bTW" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"bTX" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; initialize_directions = 12; level = 2},/turf/simulated/floor,/area/atmos)
"bTY" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 9; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bTZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 9; icon_state = "intact-c"; level = 2},/turf/simulated/floor/plating,/area/atmos)
@@ -5612,23 +5612,23 @@
"cdV" = (/mob/living/silicon/decoy{icon_state = "ai-malf"; name = "GLaDOS"},/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/syndicate_mothership)
"cdW" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; freerange = 1; frequency = 1337; listening = 1; name = "Syndicate Ops Intercom"; pixel_y = 0},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "circuit"},/area/syndicate_mothership)
"cdX" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "plasma3"},/area/alien)
-"cdY" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien)
+"cdY" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien)
"cdZ" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "plasma1"},/area/alien)
"cea" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
"ceb" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
"cec" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"ced" = (/obj/item/weapon/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien)
-"cee" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien)
+"ced" = (/obj/item/weapon/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien)
+"cee" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien)
"cef" = (/turf/space,/area/syndicate_mothership/elite_squad)
"ceg" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership/elite_squad)
-"ceh" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
-"cei" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; freerange = 1; frequency = 1337; listening = 0; name = "Syndicate Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
-"cej" = (/obj/effect/landmark{name = "Syndicate-Commando"; tag = "Commando"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
-"cek" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
-"cel" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
-"cem" = (/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership)
-"cen" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership)
-"ceo" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien)
+"ceh" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
+"cei" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; freerange = 1; frequency = 1337; listening = 0; name = "Syndicate Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
+"cej" = (/obj/effect/landmark{name = "Syndicate-Commando"; tag = "Commando"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
+"cek" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
+"cel" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
+"cem" = (/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership)
+"cen" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership)
+"ceo" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien)
"cep" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "plasma2"},/area/alien)
"ceq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad)
"cer" = (/turf/space,/area/shuttle/alien/base)
@@ -5638,8 +5638,8 @@
"cev" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "syndicate_elite"; name = "Side Hull Door"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
"cew" = (/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad)
"cex" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad)
-"cey" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
-"cez" = (/obj/structure/stool/bed/alien,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien)
+"cey" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_mothership/elite_squad)
+"cez" = (/obj/structure/stool/bed/alien,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor5"},/area/alien)
"ceA" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
"ceB" = (/obj/machinery/computer/syndicate_elite_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
"ceC" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
@@ -5651,35 +5651,35 @@
"ceI" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start)
"ceJ" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start)
"ceK" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"ceL" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"ceM" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"ceN" = (/obj/structure/table,/obj/machinery/light/lamp{pixel_x = 4; pixel_y = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"ceO" = (/obj/machinery/computer/syndicate_station,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"ceP" = (/obj/structure/table,/obj/item/weapon/pen/sleepypen,/obj/item/weapon/paper,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"ceQ" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"ceR" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"ceS" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"ceT" = (/obj/structure/table,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"ceU" = (/obj/effect/landmark{name = "Syndicate-Gear-Closet"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceL" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceM" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceN" = (/obj/structure/table,/obj/machinery/light/lamp{pixel_x = 4; pixel_y = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceO" = (/obj/machinery/computer/syndicate_station,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceP" = (/obj/structure/table,/obj/item/weapon/pen/sleepypen,/obj/item/weapon/paper,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceQ" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceR" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceS" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceT" = (/obj/structure/table,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceU" = (/obj/effect/landmark{name = "Syndicate-Gear-Closet"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"ceV" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"ceW" = (/obj/machinery/door/window,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceW" = (/obj/machinery/door/window,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"ceX" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"ceY" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"ceY" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"ceZ" = (/turf/unsimulated/wall,/area/centcom)
-"cfa" = (/obj/effect/landmark{name = "Nuclear-Closet"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cfa" = (/obj/effect/landmark{name = "Nuclear-Closet"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cfb" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon = 'rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "External Airlock"},/area)
"cfc" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon = 'rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom)
"cfd" = (/turf/unsimulated/floor{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/centcom)
"cfe" = (/turf/unsimulated/floor{name = "plating"},/area/centcom)
-"cff" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cff" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cfg" = (/obj/effect/securearea{name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start)
-"cfh" = (/obj/machinery/door/poddoor{id = "syndicate"; name = "Outer Airlock"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cfh" = (/obj/machinery/door/poddoor{id = "syndicate"; name = "Outer Airlock"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cfi" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom)
"cfj" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom)
"cfk" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
"cfl" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom)
-"cfm" = (/obj/structure/table,/obj/item/device/aicard,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cfn" = (/obj/structure/table,/obj/machinery/computer/pod/old/syndicate{id = "syndicate"; pixel_x = -3; pixel_y = 8},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cfm" = (/obj/structure/table,/obj/item/device/aicard,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cfn" = (/obj/structure/table,/obj/machinery/computer/pod/old/syndicate{id = "syndicate"; pixel_x = -3; pixel_y = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cfo" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom)
"cfp" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
"cfq" = (/obj/machinery/vending/cigarette,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
@@ -5687,16 +5687,16 @@
"cfs" = (/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
"cft" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/device/multitool,/obj/item/weapon/cleaner,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
"cfu" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"cfv" = (/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cfw" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cfv" = (/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cfw" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cfx" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
"cfy" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
"cfz" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
"cfA" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
"cfB" = (/turf/unsimulated/wall,/area/centcom/living)
-"cfC" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cfC" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cfD" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/syndicate_station/start)
-"cfE" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cfE" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cfF" = (/obj/machinery/door/window/northright,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
"cfG" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
"cfH" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/zippo,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
@@ -5729,16 +5729,16 @@
"cgi" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/suppy)
"cgj" = (/turf/unsimulated/floor{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/centcom/suppy)
"cgk" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon = 'rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy)
-"cgl" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
-"cgm" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
-"cgn" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
-"cgo" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
-"cgp" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
-"cgq" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgr" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgs" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/infra,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgt" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgu" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgl" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"cgm" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"cgn" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"cgo" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"cgp" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"cgq" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgr" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgs" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/infra,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgt" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgu" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cgv" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (EAST)"; icon_state = "propulsion_r"; dir = 4},/turf/space,/area/shuttle/administration/centcom)
"cgw" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom)
"cgx" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/living)
@@ -5750,26 +5750,26 @@
"cgD" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/supply/dock)
"cgE" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/supply/dock)
"cgF" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/supply/dock)
-"cgG" = (/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
-"cgH" = (/obj/machinery/door/window/westright,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgI" = (/obj/structure/crate/internals,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgG" = (/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"cgH" = (/obj/machinery/door/window/westright,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgI" = (/obj/structure/crate/internals,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cgJ" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/administration/centcom)
"cgK" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
"cgL" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
"cgM" = (/turf/unsimulated/floor{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/centcom)
"cgN" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/supply/dock)
"cgO" = (/obj/effect/marker/supplymarker,/turf/simulated/shuttle/floor,/area/supply/dock)
-"cgP" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
-"cgQ" = (/obj/machinery/door/window{icon = 'windoor.dmi'; dir = 8},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgR" = (/obj/structure/table,/obj/effect/landmark{name = "Syndicate-Bomb"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgP" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"cgQ" = (/obj/machinery/door/window{icon = 'windoor.dmi'; dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgR" = (/obj/structure/table,/obj/effect/landmark{name = "Syndicate-Bomb"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cgS" = (/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/living)
"cgT" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/supply/dock)
-"cgU" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
-"cgV" = (/obj/item/weapon/weldingtool,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgW" = (/obj/machinery/door/window{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgX" = (/obj/item/weapon/crowbar,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgY" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"cgZ" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgU" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"cgV" = (/obj/item/weapon/weldingtool,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgW" = (/obj/machinery/door/window{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgX" = (/obj/item/weapon/crowbar,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgY" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"cgZ" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cha" = (/obj/machinery/dna_scannernew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
"chb" = (/obj/machinery/computer/cloning,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
"chc" = (/obj/machinery/clonepod,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
@@ -5782,17 +5782,17 @@
"chj" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living)
"chk" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living)
"chl" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living)
-"chm" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
-"chn" = (/obj/item/clothing/head/helmet/welding,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"chm" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"chn" = (/obj/item/clothing/head/helmet/welding,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"cho" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
"chp" = (/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/obj/structure/table,/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/living)
"chq" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/living)
"chr" = (/obj/structure/secure_closet/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living)
"chs" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living)
-"cht" = (/obj/structure/crate/medical,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
-"chu" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"cht" = (/obj/structure/crate/medical,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
+"chu" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_station/start)
"chv" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_station/start)
-"chw" = (/obj/item/weapon/extinguisher,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
+"chw" = (/obj/item/weapon/extinguisher,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start)
"chx" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
"chy" = (/obj/structure/table/reinforced,/obj/machinery/librarycomp,/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/shuttle/administration/centcom)
"chz" = (/obj/structure/bookcase,/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/shuttle/administration/centcom)
@@ -6062,7 +6062,7 @@
"cmD" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "NTrasen"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"cmE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom)
"cmF" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control)
-"cmG" = (/obj/structure/table,/obj/item/assembly/shock_kit{icon = 'icons/obj/assemblies.dmi'},/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control)
+"cmG" = (/obj/structure/table,/obj/item/assembly/shock_kit{icon = 'assemblies.dmi'},/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control)
"cmH" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/specops/centcom)
"cmI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/unsimulated/floor,/area/shuttle/specops/centcom)
"cmJ" = (/obj/effect/landmark{name = "Commando-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
@@ -6106,12 +6106,12 @@
"cnv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
"cnw" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/machinery/door/window/southleft{name = "Security"; req_access_txt = ""},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
"cnx" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
-"cny" = (/obj{anchored = 1; icon = 'shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom)
+"cny" = (/obj{anchored = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom)
"cnz" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"cnA" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
"cnB" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
"cnC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cnD" = (/obj{anchored = 1; icon = 'shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom)
+"cnD" = (/obj{anchored = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom)
"cnE" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control)
"cnF" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom)
"cnG" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
@@ -6197,7 +6197,7 @@
"cpi" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
"cpj" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
"cpk" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
-"cpl" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/centcom/holding)
+"cpl" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/holding)
"cpm" = (/turf/unsimulated/floor{icon = 'beach.dmi'; icon_state = "sand"; name = "sand"},/area/centcom/holding)
"cpn" = (/obj/effect/overlay{anchored = 1; icon = 'icons/misc/beach2.dmi'; icon_state = "palm2"; layer = 10; name = "palm tree"},/obj/effect/overlay{anchored = 1; icon = 'beach.dmi'; icon_state = "coconuts"; name = "coconuts"},/turf/unsimulated/floor{icon = 'beach.dmi'; icon_state = "sand"; name = "sand"},/area/centcom/holding)
"cpo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
@@ -6236,7 +6236,7 @@
"cpV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
"cpW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
"cpX" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cpY" = (/obj{anchored = 1; icon = 'shuttle.dmi'; icon_state = "floor"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape/centcom)
+"cpY" = (/obj{anchored = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape/centcom)
"cpZ" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"cqa" = (/obj/structure/rack,/obj/item/toy/crayonbox,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
"cqb" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
@@ -6465,69 +6465,69 @@
"cuq" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/derelict/ship)
"cur" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/derelict/ship)
"cus" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/derelict/ship)
-"cut" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/derelict/ship)
-"cuu" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cuv" = (/obj/machinery/sleeper,/obj/machinery/light{dir = 1},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cuw" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cux" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/derelict/ship)
+"cut" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/derelict/ship)
+"cuu" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuv" = (/obj/machinery/sleeper,/obj/machinery/light{dir = 1},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuw" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cux" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/derelict/ship)
"cuy" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area/derelict/ship)
"cuz" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_r (WEST)"; icon_state = "burst_r"; dir = 8},/turf/space,/area/derelict/ship)
"cuA" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/derelict/ship)
-"cuB" = (/obj/machinery/computer/med_data,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cuC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuB" = (/obj/machinery/computer/med_data,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cuD" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"; dir = 2},/area/derelict/ship)
"cuE" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/derelict/ship)
"cuF" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
"cuG" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/space,/area/derelict/ship)
-"cuH" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/derelict/ship)
-"cuI" = (/obj/item/weapon/scalpel,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuH" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/derelict/ship)
+"cuI" = (/obj/item/weapon/scalpel,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cuJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area/derelict/ship)
"cuK" = (/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
-"cuL" = (/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuL" = (/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cuM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
"cuN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
"cuO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
"cuP" = (/obj/machinery/door/airlock/glass{name = "Hibernation Pods"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"cuQ" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cuR" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuQ" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuR" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cuS" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/derelict/ship)
-"cuT" = (/obj/item/device/multitool,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cuU" = (/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuT" = (/obj/item/device/multitool,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuU" = (/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cuV" = (/obj/machinery/door/unpowered/shuttle,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
"cuW" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/derelict/ship)
"cuX" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (WEST)"; icon_state = "burst_l"; dir = 8},/turf/space,/area/derelict/ship)
"cuY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
-"cuZ" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/derelict/ship)
-"cva" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvb" = (/obj/machinery/light_switch{pixel_x = 27},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvc" = (/obj/machinery/portable_atmospherics/scrubber,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cuZ" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/derelict/ship)
+"cva" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvb" = (/obj/machinery/light_switch{pixel_x = 27},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvc" = (/obj/machinery/portable_atmospherics/scrubber,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cvd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
-"cve" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvf" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvg" = (/obj/machinery/door/window,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvh" = (/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cve" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvf" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvg" = (/obj/machinery/door/window,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvh" = (/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cvi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
-"cvj" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvk" = (/obj/structure/table,/obj/item/weapon/tank/oxygen,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvj" = (/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvk" = (/obj/structure/table,/obj/item/weapon/tank/oxygen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cvl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
"cvm" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area)
"cvn" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area)
"cvo" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area)
"cvp" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area)
-"cvq" = (/obj/structure/table,/obj/item/device/analyzer,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvr" = (/obj/structure/stool/chair{dir = 8},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvs" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvq" = (/obj/structure/table,/obj/item/device/analyzer,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvr" = (/obj/structure/stool/chair{dir = 8},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvs" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cvt" = (/obj/machinery/door/airlock/glass{name = "Living Module"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"cvu" = (/obj/machinery/door/unpowered/shuttle,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvu" = (/obj/machinery/door/unpowered/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cvv" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area)
"cvw" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area)
"cvx" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area)
"cvy" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area)
"cvz" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area)
-"cvA" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvB" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvC" = (/obj/machinery/light,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvD" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvA" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvB" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvC" = (/obj/machinery/light,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvD" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cvE" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area)
"cvF" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/derelict/ship)
"cvG" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/derelict/ship)
@@ -6538,27 +6538,27 @@
"cvL" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area)
"cvM" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area)
"cvN" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area)
-"cvO" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvP" = (/obj/item/weapon/shard,/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvQ" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvR" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvS" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/obj/item/weapon/cable_coil/cut,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvT" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvU" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/item/clothing/mask/breath,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvV" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/syndicate,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cvW" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvO" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvP" = (/obj/item/weapon/shard,/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvQ" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvR" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvS" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/obj/item/weapon/cable_coil/cut,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvT" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvU" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/item/clothing/mask/breath,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvV" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/syndicate,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cvW" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cvX" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/derelict/ship)
"cvY" = (/obj/item/weapon/card/data/clown,/turf/space,/area)
"cvZ" = (/obj/machinery/door/poddoor{id = "oldship_gun"; name = "Pod Bay Door"},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
"cwa" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "oldship_gun"},/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
"cwb" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship)
-"cwc" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cwd" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cwc" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cwd" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cwe" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/derelict/ship)
-"cwf" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cwg" = (/obj/machinery/light/small,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cwh" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
-"cwi" = (/obj/structure/table,/obj/item/device/radio,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cwf" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cwg" = (/obj/machinery/light/small,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cwh" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
+"cwi" = (/obj/structure/table,/obj/item/device/radio,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship)
"cwj" = (/obj/machinery/power/solar/fake,/turf/simulated/floor{icon_state = "solarpanel"},/area)
"cwk" = (/turf/space,/area/turret_protected/AIsatextFP)
"cwl" = (/turf/space,/area/turret_protected/AIsatextFS)
diff --git a/tgstation.dme b/tgstation.dme
index 3766ffa7567..ae447ec7a0c 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -9,6 +9,7 @@
#define FILE_DIR "code/ATMOSPHERICS"
#define FILE_DIR "code/ATMOSPHERICS/components"
#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices"
+#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices"
#define FILE_DIR "code/ATMOSPHERICS/components/unary"
#define FILE_DIR "code/datums"
#define FILE_DIR "code/datums/diseases"
@@ -154,6 +155,7 @@
#define FILE_DIR "icons/turf"
#define FILE_DIR "interface"
#define FILE_DIR "maps"
+#define FILE_DIR "maps/backup"
#define FILE_DIR "sound"
#define FILE_DIR "sound/ambience"
#define FILE_DIR "sound/announcer"
@@ -179,8 +181,6 @@
#include "code\ATMOSPHERICS\datum_pipeline.dm"
#include "code\ATMOSPHERICS\he_pipes.dm"
#include "code\ATMOSPHERICS\pipes.dm"
-#include "code\ATMOSPHERICS\components\filter.dm"
-#include "code\ATMOSPHERICS\components\mixer.dm"
#include "code\ATMOSPHERICS\components\portables_connector.dm"
#include "code\ATMOSPHERICS\components\valve.dm"
#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm"
@@ -189,6 +189,9 @@
#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm"
#include "code\ATMOSPHERICS\components\binary_devices\pump.dm"
#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm"
+#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm"
+#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm"
+#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm"
#include "code\ATMOSPHERICS\components\unary\cold_sink.dm"
#include "code\ATMOSPHERICS\components\unary\generator_input.dm"
#include "code\ATMOSPHERICS\components\unary\heat_exchanger.dm"