diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index dee755a4a9..940412d12f 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -1024,7 +1024,10 @@
/area/shuttle/arrival)
"abX" = (
/obj/structure/table/reinforced,
-/obj/item/device/analyzer,
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
/turf/open/floor/plasteel/yellow/side{
dir = 8
},
@@ -1111,6 +1114,7 @@
/area/shuttle/arrival)
"abZ" = (
/obj/effect/turf_decal/delivery,
+/obj/structure/closet/wardrobe/mixed,
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"aca" = (
@@ -2162,15 +2166,18 @@
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"aej" = (
+/obj/structure/closet/wardrobe/black,
/turf/open/floor/plasteel/neutral/side,
/area/shuttle/arrival)
"aek" = (
+/obj/structure/closet/wardrobe/grey,
/turf/open/floor/plasteel/blue/corner,
/area/shuttle/arrival)
"ael" = (
/turf/open/floor/plasteel/blue/side,
/area/shuttle/arrival)
"aem" = (
+/obj/structure/closet/wardrobe/yellow,
/turf/open/floor/plasteel/blue/corner{
tag = "icon-bluecorner (WEST)";
icon_state = "bluecorner";
@@ -4859,7 +4866,9 @@
/turf/open/space,
/area/solar/auxport)
"ajK" = (
-/obj/structure/reflector/single,
+/obj/structure/reflector/single{
+ anchored = 1
+ },
/turf/open/floor/plasteel/vault{
dir = 8
},
@@ -4875,9 +4884,10 @@
})
"ajM" = (
/obj/structure/reflector/box{
- tag = "icon-reflector_box (EAST)";
+ anchored = 1;
+ dir = 4;
icon_state = "reflector_box";
- dir = 4
+ tag = "icon-reflector_box (EAST)"
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -4908,9 +4918,10 @@
})
"ajP" = (
/obj/structure/reflector/single{
- tag = "icon-reflector (WEST)";
+ anchored = 1;
+ dir = 8;
icon_state = "reflector";
- dir = 8
+ tag = "icon-reflector (WEST)"
},
/turf/open/floor/plasteel/vault{
dir = 8
@@ -5346,7 +5357,9 @@
name = "Atmospherics Engine"
})
"akQ" = (
-/obj/structure/reflector/double,
+/obj/structure/reflector/double{
+ anchored = 1
+ },
/turf/open/floor/plasteel/vault{
dir = 5
},
@@ -5355,9 +5368,10 @@
})
"akR" = (
/obj/structure/reflector/double{
- tag = "icon-reflector_double (NORTH)";
+ anchored = 1;
+ dir = 1;
icon_state = "reflector_double";
- dir = 1
+ tag = "icon-reflector_double (NORTH)"
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -5831,9 +5845,10 @@
/area/solar/auxport)
"alP" = (
/obj/structure/reflector/double{
- tag = "icon-reflector_double (EAST)";
+ anchored = 1;
+ dir = 4;
icon_state = "reflector_double";
- dir = 4
+ tag = "icon-reflector_double (EAST)"
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -6445,7 +6460,9 @@
name = "Atmospherics Engine"
})
"anb" = (
-/obj/structure/reflector/box,
+/obj/structure/reflector/box{
+ anchored = 1
+ },
/turf/open/floor/plasteel/vault{
dir = 5
},
@@ -6972,9 +6989,10 @@
/area/solar/auxport)
"aoa" = (
/obj/structure/reflector/single{
- tag = "icon-reflector (NORTH)";
+ anchored = 1;
+ dir = 1;
icon_state = "reflector";
- dir = 1
+ tag = "icon-reflector (NORTH)"
},
/turf/open/floor/plasteel/vault{
dir = 8
@@ -8601,10 +8619,22 @@
/area/solar/auxport)
"aqY" = (
/obj/structure/table/reinforced,
-/obj/item/device/analyzer,
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/bot,
+/obj/item/clothing/glasses/meson{
+ pixel_y = 1
+ },
+/obj/item/clothing/glasses/meson{
+ pixel_y = 1
+ },
+/obj/item/clothing/glasses/meson{
+ pixel_y = 1
+ },
/turf/open/floor/plasteel,
/area/engine/gravity_generator{
name = "Atmospherics Engine"
@@ -9466,7 +9496,7 @@
"asq" = (
/obj/machinery/atmospherics/components/trinary/filter{
dir = 4;
- filter_type = "n2";
+ filter_type = "o2";
on = 1
},
/turf/open/floor/plasteel/yellow,
@@ -14436,6 +14466,7 @@
})
"aBt" = (
/obj/machinery/door/airlock{
+ id_tag = "AuxCabinA";
name = "Cabin A";
req_access_txt = "25"
},
@@ -15048,6 +15079,15 @@
"aCz" = (
/obj/structure/table/wood,
/obj/item/device/flashlight/lamp,
+/obj/machinery/button/door{
+ id = "AuxCabinA";
+ name = "Dormitory Door Lock";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ pixel_y = 7;
+ req_access_txt = "0";
+ specialfunctions = 4
+ },
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/sleep{
name = "Service Hall"
@@ -15061,6 +15101,7 @@
})
"aCB" = (
/obj/machinery/light,
+/obj/structure/closet/wardrobe/mixed,
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/sleep{
name = "Service Hall"
@@ -17627,11 +17668,6 @@
/obj/structure/extinguisher_cabinet{
pixel_x = 26
},
-/obj/item/device/radio/intercom{
- name = "Station Intercom";
- pixel_x = 0;
- pixel_y = -24
- },
/obj/machinery/power/terminal,
/obj/structure/cable{
d2 = 8;
@@ -17705,6 +17741,7 @@
})
"aGO" = (
/obj/machinery/door/airlock{
+ id_tag = "AuxCabinB";
name = "Cabin B"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -18369,6 +18406,11 @@
tag = "icon-0-8";
icon_state = "0-8"
},
+/obj/item/device/radio/intercom{
+ name = "Station Intercom";
+ pixel_x = 0;
+ pixel_y = -24
+ },
/turf/open/floor/plasteel/vault,
/area/engine/gravity_generator{
name = "Atmospherics Engine"
@@ -18390,6 +18432,15 @@
"aHY" = (
/obj/structure/table/wood,
/obj/item/weapon/paper_bin,
+/obj/machinery/button/door{
+ id = "AuxCabinB";
+ name = "Dormitory Door Lock";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ pixel_y = 7;
+ req_access_txt = "0";
+ specialfunctions = 4
+ },
/turf/open/floor/wood,
/area/crew_quarters/sleep{
name = "Service Hall"
@@ -18409,6 +18460,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/structure/closet/wardrobe/mixed,
/turf/open/floor/wood,
/area/crew_quarters/sleep{
name = "Service Hall"
@@ -29150,7 +29202,10 @@
/area/atmos)
"baM" = (
/obj/structure/table/reinforced,
-/obj/item/device/analyzer,
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
/obj/effect/turf_decal/stripes/line{
dir = 8
},
@@ -34586,10 +34641,7 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"bkK" = (
-/obj/structure/table/reinforced,
-/obj/item/weapon/paper_bin,
-/obj/item/weapon/pen,
-/obj/effect/turf_decal/bot,
+/obj/machinery/smartfridge/disks,
/turf/open/floor/plasteel,
/area/hydroponics)
"bkL" = (
@@ -39839,7 +39891,10 @@
/obj/structure/table/reinforced,
/obj/item/weapon/crowbar/red,
/obj/item/weapon/wrench,
-/obj/item/device/analyzer,
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
/obj/machinery/newscaster{
pixel_x = -32
},
@@ -41839,8 +41894,14 @@
/area/storage/tech)
"bxj" = (
/obj/structure/table/reinforced,
-/obj/item/device/analyzer,
-/obj/item/device/analyzer,
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
/obj/item/device/assembly/signaler,
/obj/item/device/assembly/signaler,
/obj/effect/turf_decal/bot,
@@ -42982,8 +43043,14 @@
/area/storage/primary)
"bzj" = (
/obj/structure/table/reinforced,
-/obj/item/device/analyzer,
-/obj/item/device/analyzer,
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
/obj/item/device/assembly/signaler,
/obj/item/device/assembly/signaler,
/obj/machinery/light{
@@ -66829,6 +66896,9 @@
icon_state = "intact";
dir = 9
},
+/obj/item/weapon/storage/pod{
+ pixel_x = 32
+ },
/turf/open/floor/plasteel/neutral/corner{
dir = 4
},
@@ -69213,9 +69283,6 @@
/turf/open/floor/plasteel/neutral,
/area/crew_quarters/locker)
"csI" = (
-/obj/structure/table,
-/obj/item/weapon/paper_bin,
-/obj/item/weapon/pen,
/obj/machinery/light{
dir = 4;
icon_state = "tube1"
@@ -69225,6 +69292,7 @@
icon_state = "intact";
dir = 10
},
+/obj/structure/closet/wardrobe/black,
/turf/open/floor/plasteel/neutral/corner,
/area/crew_quarters/locker)
"csJ" = (
@@ -70243,12 +70311,11 @@
/turf/open/floor/plasteel/neutral,
/area/crew_quarters/locker)
"cur" = (
-/obj/structure/table,
-/obj/item/weapon/storage/firstaid/regular,
/obj/machinery/status_display{
pixel_x = 32
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/grey,
/turf/open/floor/plasteel/neutral/corner,
/area/crew_quarters/locker)
"cus" = (
@@ -71034,10 +71101,8 @@
/turf/open/floor/plasteel/neutral,
/area/crew_quarters/locker)
"cvO" = (
-/obj/structure/table,
-/obj/item/weapon/folder,
-/obj/item/weapon/pen,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/green,
/turf/open/floor/plasteel/neutral/corner,
/area/crew_quarters/locker)
"cvP" = (
@@ -71897,6 +71962,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
+/obj/structure/closet/wardrobe/pjs,
/turf/open/floor/plasteel/neutral/corner{
dir = 8;
heat_capacity = 1e+006
@@ -72006,6 +72072,7 @@
icon_state = "manifold";
dir = 4
},
+/obj/structure/closet/wardrobe/pink,
/turf/open/floor/plasteel/neutral/corner,
/area/crew_quarters/locker)
"cxt" = (
@@ -72943,6 +73010,7 @@
tag = "icon-1-2";
icon_state = "1-2"
},
+/obj/structure/closet/wardrobe/white,
/turf/open/floor/plasteel/neutral/corner{
dir = 8;
heat_capacity = 1e+006
@@ -72957,10 +73025,8 @@
/turf/open/floor/plasteel/neutral,
/area/crew_quarters/locker)
"cyS" = (
-/obj/item/weapon/storage/pod{
- pixel_x = 32
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/mixed,
/turf/open/floor/plasteel/neutral/corner,
/area/crew_quarters/locker)
"cyT" = (
@@ -74048,6 +74114,7 @@
dir = 2;
icon_state = "pipe-c"
},
+/obj/structure/closet/wardrobe/yellow,
/turf/open/floor/plasteel/neutral/corner,
/area/crew_quarters/locker)
"cAK" = (
@@ -74808,6 +74875,15 @@
/obj/structure/table/wood,
/obj/item/weapon/folder/blue,
/obj/item/weapon/lighter,
+/obj/machinery/button/door{
+ id = "Dorm1";
+ name = "Dormitory Door Lock";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ pixel_y = 7;
+ req_access_txt = "0";
+ specialfunctions = 4
+ },
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/sleep)
"cCf" = (
@@ -74829,6 +74905,15 @@
"cCi" = (
/obj/structure/table/wood,
/obj/item/weapon/paper_bin,
+/obj/machinery/button/door{
+ id = "Dorm3";
+ name = "Dormitory Door Lock";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ pixel_y = 7;
+ req_access_txt = "0";
+ specialfunctions = 4
+ },
/turf/open/floor/carpet,
/area/crew_quarters/sleep)
"cCj" = (
@@ -75496,6 +75581,7 @@
"cDp" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock{
+ id_tag = "Dorm1";
name = "Cabin 1"
},
/turf/open/floor/plasteel/grimy,
@@ -75503,6 +75589,7 @@
"cDq" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock{
+ id_tag = "Dorm2";
name = "Cabin 2"
},
/turf/open/floor/wood,
@@ -75510,6 +75597,7 @@
"cDr" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock{
+ id_tag = "Dorm3";
name = "Cabin 3"
},
/turf/open/floor/carpet,
@@ -78584,6 +78672,7 @@
"cIM" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock{
+ id_tag = "Dorm4";
name = "Cabin 4"
},
/turf/open/floor/wood,
@@ -78591,6 +78680,7 @@
"cIN" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock{
+ id_tag = "Dorm5";
name = "Cabin 5"
},
/turf/open/floor/carpet,
@@ -78598,6 +78688,7 @@
"cIO" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock{
+ id_tag = "Dorm6";
name = "Cabin 6"
},
/turf/open/floor/plasteel/grimy,
@@ -79687,8 +79778,15 @@
/turf/open/floor/wood,
/area/crew_quarters/sleep)
"cKL" = (
-/obj/structure/table/wood,
-/obj/item/device/flashlight/lamp/green,
+/obj/machinery/button/door{
+ id = "Dorm5";
+ name = "Dormitory Door Lock";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ pixel_y = 7;
+ req_access_txt = "0";
+ specialfunctions = 4
+ },
/turf/open/floor/carpet,
/area/crew_quarters/sleep)
"cKM" = (
@@ -79707,6 +79805,15 @@
/obj/structure/table/wood,
/obj/item/weapon/folder/blue,
/obj/item/weapon/pen/blue,
+/obj/machinery/button/door{
+ id = "Dorm6";
+ name = "Dormitory Door Lock";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ pixel_y = 7;
+ req_access_txt = "0";
+ specialfunctions = 4
+ },
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/sleep)
"cKO" = (
@@ -81540,7 +81647,10 @@
/area/maintenance/electrical)
"cOi" = (
/obj/structure/table/reinforced,
-/obj/item/device/analyzer,
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/maintenance/electrical)
@@ -95336,7 +95446,7 @@
},
/area/medical/genetics_cloning)
"dmX" = (
-/obj/machinery/limbgrower,
+/obj/structure/closet/crate/freezer/surplus_limbs,
/turf/open/floor/plasteel/whitepurple/corner{
dir = 8
},
@@ -97136,7 +97246,10 @@
/area/hallway/secondary/construction)
"dqo" = (
/obj/structure/table,
-/obj/item/device/analyzer,
+/obj/item/device/analyzer{
+ pixel_x = 7;
+ pixel_y = 3
+ },
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
@@ -107765,6 +107878,15 @@
pixel_y = 3
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/doorButtons/access_button{
+ dir = 1;
+ idDoor = "virology_airlock_exterior";
+ idSelf = "virology_airlock_control";
+ name = "Virology Access Button";
+ pixel_x = 0;
+ pixel_y = -24;
+ req_access_txt = "39"
+ },
/turf/open/floor/plasteel/whitegreen/corner{
dir = 8
},
@@ -108056,13 +108178,18 @@
tag = "icon-1-2";
icon_state = "1-2"
},
-/obj/machinery/door/airlock/virology{
- name = "Virology Access";
- req_access_txt = "39"
- },
/obj/effect/turf_decal/stripes/line{
dir = 2
},
+/obj/machinery/door/airlock/virology{
+ autoclose = 0;
+ frequency = 1449;
+ icon_state = "door_locked";
+ id_tag = "virology_airlock_exterior";
+ locked = 1;
+ name = "Virology Exterior Airlock";
+ req_access_txt = "39"
+ },
/turf/open/floor/plasteel{
tag = "icon-plasteel_warn_side (EAST)"
},
@@ -108929,13 +109056,18 @@
tag = "icon-4-8";
icon_state = "4-8"
},
-/obj/machinery/door/airlock/virology{
- name = "Virology Access";
- req_access_txt = "39"
- },
/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/machinery/door/airlock/virology{
+ autoclose = 0;
+ frequency = 1449;
+ icon_state = "door_locked";
+ id_tag = "virology_airlock_interior";
+ locked = 1;
+ name = "Virology Interior Airlock";
+ req_access_txt = "39"
+ },
/turf/open/floor/plasteel,
/area/medical/virology)
"dKZ" = (
@@ -118368,6 +118500,102 @@
/obj/machinery/deepfryer,
/turf/open/floor/plasteel/red,
/area/crew_quarters/kitchen)
+"ecc" = (
+/obj/structure/closet/wardrobe/green,
+/turf/open/floor/plasteel/neutral/side,
+/area/shuttle/arrival)
+"ecd" = (
+/obj/machinery/doorButtons/access_button{
+ dir = 4;
+ idDoor = "virology_airlock_interior";
+ idSelf = "virology_airlock_control";
+ name = "Virology Access Button";
+ pixel_x = -10;
+ pixel_y = 0;
+ req_access_txt = "39"
+ },
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"ece" = (
+/obj/structure/cable/white{
+ d2 = 2;
+ icon_state = "0-2";
+ tag = "icon-0-2"
+ },
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"ecf" = (
+/obj/structure/cable/white{
+ tag = "icon-4-8";
+ icon_state = "4-8"
+ },
+/obj/structure/cable/white{
+ tag = "icon-2-4";
+ icon_state = "2-4"
+ },
+/obj/structure/cable/white{
+ tag = "icon-1-4";
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 2
+ },
+/obj/machinery/doorButtons/airlock_controller{
+ idExterior = "virology_airlock_exterior";
+ idInterior = "virology_airlock_interior";
+ idSelf = "virology_airlock_control";
+ name = "Virology Access Console";
+ pixel_x = 0;
+ pixel_y = 22;
+ req_access_txt = "39"
+ },
+/turf/open/floor/plasteel{
+ tag = "icon-plasteel_warn_side (WEST)"
+ },
+/area/medical/virology)
+"ecg" = (
+/obj/structure/cable/white,
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"ech" = (
+/obj/machinery/button/door{
+ id = "Dorm2";
+ name = "Dormitory Door Lock";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ pixel_y = 7;
+ req_access_txt = "0";
+ specialfunctions = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/sleep)
+"eci" = (
+/obj/machinery/button/door{
+ id = "Dorm4";
+ name = "Dormitory Door Lock";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ pixel_y = 7;
+ req_access_txt = "0";
+ specialfunctions = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/sleep)
+"ecj" = (
+/obj/item/weapon/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -8;
+ pixel_y = 5
+ },
+/obj/item/weapon/reagent_containers/food/condiment/peppermill{
+ pixel_x = -8
+ },
+/obj/structure/table/wood,
+/obj/item/clothing/head/hardhat/cakehat{
+ pixel_x = 4;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/redyellow,
+/area/crew_quarters/bar/atrium)
(1,1,1) = {"
aaa
@@ -155985,7 +156213,7 @@ aJA
aLb
aMK
aGY
-aLa
+ecj
aRH
aGY
aGY
@@ -157746,7 +157974,7 @@ acn
acn
acn
acn
-aej
+ecc
abV
abV
abW
@@ -165077,7 +165305,7 @@ dGR
cKs
cKs
dJl
-dJp
+ecd
dKY
dJp
dJp
@@ -165334,9 +165562,9 @@ dGS
cDe
aaa
aaa
-dJq
-dKZ
-dMh
+ece
+ecf
+ecg
aaa
aaa
dJp
@@ -168639,7 +168867,7 @@ cGb
cHs
cvP
cCg
-cyX
+eci
cNS
cxw
cvP
@@ -169659,8 +169887,8 @@ cuu
cvP
cxw
cyV
-cyX
cCg
+ech
cvP
cEq
cGc
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index e4d3fae392..2c13eb0c12 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -62597,7 +62597,7 @@
network = list("SS13","Medbay")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/limbgrower,
+/obj/structure/closet/crate/freezer/surplus_limbs,
/obj/item/weapon/reagent_containers/glass/beaker/synthflesh,
/turf/open/floor/plasteel/whiteblue/side{
dir = 4
diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm
index 032ee25d95..5c13a120a1 100644
--- a/_maps/map_files/OmegaStation/OmegaStation.dmm
+++ b/_maps/map_files/OmegaStation/OmegaStation.dmm
@@ -29857,7 +29857,7 @@
pixel_x = -24;
pixel_y = -24
},
-/obj/machinery/limbgrower,
+/obj/structure/closet/crate/freezer/surplus_limbs,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/turf/open/floor/plasteel/whiteblue/corner{
dir = 8
@@ -37488,8 +37488,10 @@
/turf/open/floor/plasteel/grimy,
/area/chapel/main)
"biK" = (
-/obj/structure/chair/office/dark,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump{
+ dir = 1;
+ on = 1
+ },
/turf/open/floor/plasteel/grimy,
/area/chapel/main)
"biL" = (
@@ -37533,8 +37535,10 @@
tag = "icon-4-8";
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ tag = "icon-manifold (NORTH)";
+ icon_state = "manifold";
+ dir = 1
},
/turf/open/floor/plasteel/black,
/area/chapel/main)
@@ -37543,7 +37547,9 @@
tag = "icon-4-8";
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel/vault{
dir = 5
},
@@ -39132,6 +39138,7 @@
name = "Mass Driver Room";
req_access_txt = "27"
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/vault{
dir = 5
},
@@ -39152,16 +39159,14 @@
name = "Mass Driver";
req_access_txt = "22"
},
-/obj/machinery/airalarm{
- dir = 8;
- icon_state = "alarm0";
- pixel_x = 24
- },
/obj/machinery/atmospherics/components/unary/vent_pump{
- dir = 4;
- external_pressure_bound = 140;
- on = 1;
- pressure_checks = 0
+ dir = 1;
+ on = 1
+ },
+/obj/machinery/airalarm{
+ icon_state = "alarm0";
+ dir = 8;
+ pixel_x = 25
},
/turf/open/floor/plasteel/vault{
dir = 5
@@ -39175,12 +39180,7 @@
/turf/closed/wall,
/area/chapel/main)
"blF" = (
-/obj/machinery/atmospherics/components/unary/vent_pump{
- dir = 4;
- external_pressure_bound = 140;
- on = 1;
- pressure_checks = 0
- },
+/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/chapel/main)
"blG" = (
@@ -39204,9 +39204,6 @@
pixel_x = 24;
pixel_y = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
/turf/open/floor/plasteel/vault{
dir = 5
},
@@ -76910,9 +76907,9 @@ bgH
bht
bii
biO
-blB
-blE
-blH
+bfu
+bfu
+bfu
bfu
aaa
aaa
diff --git a/_maps/map_files/OmegaStation/job/removed_jobs.dm b/_maps/map_files/OmegaStation/job/removed_jobs.dm
index 8ce5bcb7d4..447f4ebd76 100644
--- a/_maps/map_files/OmegaStation/job/removed_jobs.dm
+++ b/_maps/map_files/OmegaStation/job/removed_jobs.dm
@@ -22,9 +22,6 @@
/datum/job/rd/config_check()
return 0
-/datum/job/chaplain/config_check()
- return 0
-
/datum/job/warden/config_check()
return 0
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index 19187c49c5..49ac9e5279 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -39521,7 +39521,7 @@
},
/area/medical/medbay)
"bAd" = (
-/obj/machinery/limbgrower,
+/obj/structure/closet/crate/freezer/surplus_limbs,
/obj/item/weapon/reagent_containers/glass/beaker/synthflesh,
/obj/machinery/newscaster/security_unit{
pixel_y = 32
diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
index 9264be651f..9e53cc1570 100644
--- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm
+++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
@@ -38749,7 +38749,7 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bGS" = (
-/obj/machinery/limbgrower,
+/obj/structure/closet/crate/freezer/surplus_limbs,
/obj/item/weapon/reagent_containers/glass/beaker/synthflesh,
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm
index 8ac9b2eda0..31500bb16f 100644
--- a/code/_globalvars/lists/mobs.dm
+++ b/code/_globalvars/lists/mobs.dm
@@ -3,7 +3,6 @@ var/list/admins = list() //all clients whom are admins
var/list/deadmins = list() //all clients who have used the de-admin verb.
var/list/directory = list() //all ckeys with associated client
var/list/stealthminID = list() //reference list with IDs that store ckeys, for stealthmins
-var/global/list/current_watchlist = list() //stores players that are currently online and in the watchlist
//Since it didn't really belong in any other category, I'm putting this here
//This is for procs to replace all the goddamn 'in world's that are chilling around the code
diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm
index d5b17438de..26dfbfee0a 100644
--- a/code/controllers/subsystem/garbage.dm
+++ b/code/controllers/subsystem/garbage.dm
@@ -92,6 +92,10 @@ var/datum/subsystem/garbage_collector/SSgarbage
var/datum/A
A = locate(refID)
if (A && A.gc_destroyed == GCd_at_time) // So if something else coincidently gets the same ref, it's not deleted by mistake
+ #ifdef GC_FAILURE_HARD_LOOKUP
+ A.find_references()
+ #endif
+
// Something's still referring to the qdel'd object. Kill it.
var/type = A.type
testing("GC: -- \ref[A] | [type] was unable to be GC'd and was deleted --")
@@ -220,7 +224,8 @@ var/datum/subsystem/garbage_collector/SSgarbage
/datum/var/gc_destroyed //Time when this object was destroyed.
#ifdef TESTING
-/datum/var/running_find_references
+/datum/var/running_find_references
+/datum/var/last_find_references = 0
/datum/verb/find_refs()
set category = "Debug"
@@ -254,17 +259,10 @@ var/datum/subsystem/garbage_collector/SSgarbage
usr.client.running_find_references = type
testing("Beginning search for references to a [type].")
+ last_find_references = world.time
find_references_in_globals()
for(var/datum/thing in world)
- if(usr && usr.client && !usr.client.running_find_references) return
- for(var/varname in thing.vars)
- var/variable = thing.vars[varname]
- if(variable == src)
- testing("Found [src.type] \ref[src] in [thing.type]'s [varname] var.")
- else if(islist(variable))
- if(src in variable)
- testing("Found [src.type] \ref[src] in [thing.type]'s [varname] list var.")
- CHECK_TICK
+ DoSearchVar(thing, "WorldRef: [thing]")
testing("Completed search for references to a [type].")
if(usr && usr.client)
usr.client.running_find_references = null
@@ -312,22 +310,38 @@ var/datum/subsystem/garbage_collector/SSgarbage
usr << browse(dat, "window=qdeletedlog")
-#define SearchVar(X) DoSearchVar(X, #X)
+#define SearchVar(X) DoSearchVar(X, "Global: " + #X)
/datum/proc/DoSearchVar(X, Xname)
- if(islist(X))
- if(src in X)
- testing("Found [src.type] \ref[src] in global list [Xname].")
- else if(istype(X, /datum))
+ if(usr && usr.client && !usr.client.running_find_references) return
+ if(istype(X, /datum))
var/datum/D = X
+ if(D.last_find_references == last_find_references)
+ return
+ D.last_find_references = last_find_references
for(var/V in D.vars)
for(var/varname in D.vars)
var/variable = D.vars[varname]
if(variable == src)
- testing("Found [src.type] \ref[src] in [D.type]'s [varname] var. Global: [Xname]")
- else if(islist(variable) && src in variable)
- testing("Found [src.type] \ref[src] in [D.type]'s [varname] list var. Global: [Xname]")
+ testing("Found [src.type] \ref[src] in [D.type]'s [varname] var. [Xname]")
+ else if(islist(variable))
+ if(src in variable)
+ testing("Found [src.type] \ref[src] in [D.type]'s [varname] list var. Global: [Xname]")
+#ifdef GC_FAILURE_HARD_LOOKUP
+ for(var/I in variable)
+ DoSearchVar(I, TRUE)
+ else
+ DoSearchVar(variable, "[Xname]: [varname]")
+#endif
+ else if(islist(X))
+ if(src in X)
+ testing("Found [src.type] \ref[src] in list [Xname].")
+#ifdef GC_FAILURE_HARD_LOOKUP
+ for(var/I in X)
+ DoSearchVar(I, Xname + ": list")
+#else
CHECK_TICK
+#endif
//if find_references isn't working for some datum
//update this list using tools/DMTreeToGlobalsList
@@ -553,7 +567,6 @@ var/datum/subsystem/garbage_collector/SSgarbage
SearchVar(deadmins)
SearchVar(directory)
SearchVar(stealthminID)
- SearchVar(current_watchlist)
SearchVar(player_list)
SearchVar(mob_list)
SearchVar(living_mob_list)
diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm
index 11b1c680c4..802eb0e516 100644
--- a/code/controllers/subsystem/jobs.dm
+++ b/code/controllers/subsystem/jobs.dm
@@ -2,7 +2,7 @@ var/datum/subsystem/job/SSjob
/datum/subsystem/job
name = "Jobs"
- init_order = 5
+ init_order = 14
flags = SS_NO_FIRE
var/list/occupations = list() //List of all jobs
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index 371c926c4f..ef2828f531 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -2,7 +2,7 @@ var/datum/subsystem/mapping/SSmapping
/datum/subsystem/mapping
name = "Mapping"
- init_order = 100000
+ init_order = 13
flags = SS_NO_FIRE
display_order = 50
diff --git a/code/controllers/subsystem/processing/objects.dm b/code/controllers/subsystem/processing/objects.dm
index d29819b294..01957e766f 100644
--- a/code/controllers/subsystem/processing/objects.dm
+++ b/code/controllers/subsystem/processing/objects.dm
@@ -29,10 +29,14 @@ var/datum/subsystem/objects/SSobj
return
initialized = INITIALIZATION_INNEW_MAPLOAD
if(objects)
- for(var/thing in objects)
- var/atom/A = thing
- A.Initialize(TRUE)
- CHECK_TICK
+ for(var/I in objects)
+ var/atom/A = I
+ if(!A.initialized) //this check is to make sure we don't call it twice on an object that was created in a previous Initialize call
+ var/start_tick = world.time
+ A.Initialize(TRUE)
+ if(start_tick != world.time)
+ WARNING("[A]: [A.type] slept during it's Initialize!")
+ CHECK_TICK
else
for(var/atom/A in world)
if(!A.initialized) //this check is to make sure we don't call it twice on an object that was created in a previous Initialize call
diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm
index 366a180cb1..68284d7c6e 100644
--- a/code/controllers/subsystem/shuttles.dm
+++ b/code/controllers/subsystem/shuttles.dm
@@ -23,6 +23,7 @@ var/datum/subsystem/shuttle/SSshuttle
var/emergencyDockTime = 1800 //time taken for emergency shuttle to leave again once it has docked (in deciseconds)
var/emergencyEscapeTime = 1200 //time taken for emergency shuttle to reach a safe distance after leaving station (in deciseconds)
var/area/emergencyLastCallLoc
+ var/emergencyCallAmount = 0 //how many times the escape shuttle was called
var/emergencyNoEscape
var/list/hostileEnvironments = list()
diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm
index d0a53a9cf1..028eed67ac 100644
--- a/code/modules/admin/secrets.dm
+++ b/code/modules/admin/secrets.dm
@@ -130,13 +130,6 @@
dat += "[ckey] - [D.rank.name]
"
usr << browse(dat, "window=showadmins;size=600x500")
- if("show_current_watchlist")
- var/dat = "Watchlist: