diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm
index c28ec5172f8..83e61cd5c85 100644
--- a/_maps/map_files/generic/z2.dmm
+++ b/_maps/map_files/generic/z2.dmm
@@ -193,7 +193,7 @@
"dK" = (/obj/structure/filingcabinet,/turf/simulated/shuttle/floor,/area/centcom/evac)
"dL" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/centcom/evac)
"dM" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/simulated/shuttle/plating,/area/space)
-"dN" = (/turf/unsimulated/wall/fakedoor,/area/centcom/suppy)
+"dN" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/evac)
"dO" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/simulated/shuttle/floor,/area/centcom/evac)
"dP" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/centcom/evac)
"dQ" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/centcom/evac)
@@ -271,14 +271,14 @@
"fk" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
"fl" = (/turf/unsimulated/floor{tag = "icon-yellowsiding (WEST)"; icon_state = "yellowsiding"; dir = 8},/area/centcom/evac)
"fm" = (/obj/structure/stool/bed/chair/office/dark,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
-"fn" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/evac)
+"fn" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac)
"fo" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/space)
"fp" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"fq" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"fr" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"fs" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"ft" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"fu" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply"; req_access_txt = "106"},/turf/unsimulated/floor{tag = "icon-brown"; icon_state = "brown"},/area/centcom/suppy)
+"fu" = (/obj/structure/flora/kirbyplants,/turf/unsimulated/floor{tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9},/area/centcom/evac)
"fv" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/suppy)
"fw" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/suppy)
"fx" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/evac)
@@ -290,7 +290,7 @@
"fD" = (/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
"fE" = (/turf/unsimulated/wall/fakeglass,/area/centcom/suppy)
"fF" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"fG" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage"; req_access_txt = "106"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/suppy)
+"fG" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac)
"fH" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control)
"fI" = (/obj/machinery/vending/autodrobe,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
"fJ" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
@@ -302,7 +302,7 @@
"fP" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"fQ" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"fR" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"fS" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"fS" = (/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac)
"fT" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
"fU" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
"fV" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control)
@@ -314,7 +314,7 @@
"gb" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
"gc" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry)
"gd" = (/obj/effect/landmark{name = "Deathsquad"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"ge" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"ge" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac)
"gf" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control)
"gg" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control)
"gh" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
@@ -330,20 +330,20 @@
"gr" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space)
"gs" = (/turf/unsimulated/floor{name = "plating"},/area/space)
"gt" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/ferry)
-"gu" = (/obj/structure/flora/kirbyplants,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac)
+"gu" = (/obj/machinery/door/airlock/external{name = "Supply Shuttle"; req_access_txt = "106"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/suppy)
"gv" = (/turf/unsimulated/wall/fakeglass,/area/centcom/control)
"gw" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"gx" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"gy" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"gz" = (/turf/unsimulated/wall,/area/syndicate_mothership)
-"gA" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry)
+"gA" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply"; req_access_txt = "106"},/turf/unsimulated/floor{tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4},/area/centcom/suppy)
"gB" = (/turf/unsimulated/wall/fakedoor,/area/centcom/ferry)
"gC" = (/turf/unsimulated/floor{icon_state = "stairs-r"},/area/syndicate_mothership)
"gD" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/space)
"gE" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/space)
"gF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry)
"gG" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (SOUTHEAST)"; icon_state = "fakewindows"; dir = 6},/area/centcom/ferry)
-"gH" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"gH" = (/turf/unsimulated/floor{tag = "icon-brown (WEST)"; icon_state = "brown"; dir = 8},/area/centcom/control)
"gI" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
"gJ" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
"gK" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
@@ -356,8 +356,8 @@
"gR" = (/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/weapon/surgical_drapes,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
"gS" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "small"},/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/unsimulated/floor/plating,/area/wizard_station)
"gT" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; travelDir = 180; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; turf_type = /turf/unsimulated/floor; width = 5},/turf/simulated/shuttle/floor,/area/space)
-"gU" = (/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
-"gV" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"gU" = (/turf/unsimulated/floor{tag = "icon-redcorner (NORTH)"; icon_state = "redcorner"; dir = 1},/area/centcom/evac)
+"gV" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
"gW" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac)
"gX" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall,/area/centcom/evac)
"gY" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/unsimulated/floor/plating,/area/wizard_station)
@@ -369,7 +369,7 @@
"he" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/unsimulated/floor/plating,/area/wizard_station)
"hf" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "medium"},/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/unsimulated/floor/plating,/area/wizard_station)
"hg" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor/plating,/area/wizard_station)
-"hh" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"hh" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
"hi" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space)
"hj" = (/turf/unsimulated/floor{tag = "icon-warndark (EAST)"; icon_state = "warndark"; dir = 4},/area/centcom/evac)
"hk" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/evac)
@@ -392,7 +392,7 @@
"hB" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry)
"hC" = (/obj/structure/closet/secure_closet/cargotech,/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/suppy)
"hD" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/suppy)
-"hE" = (/obj/machinery/door/airlock/centcom{name = "Supply Shuttle"; req_access_txt = "106"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/suppy)
+"hE" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{tag = "icon-red (SOUTHEAST)"; icon_state = "red"; dir = 6},/area/centcom/evac)
"hF" = (/obj/machinery/computer/supplycomp,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/suppy)
"hG" = (/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/unsimulated/floor/plating,/area/wizard_station)
"hH" = (/turf/unsimulated/floor{name = "plating"},/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space)
@@ -405,8 +405,8 @@
"hO" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space)
"hP" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space)
"hQ" = (/turf/unsimulated/floor{name = "plating"},/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space)
-"hR" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
-"hS" = (/obj/machinery/door/airlock/centcom{name = "briefing room"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"hR" = (/obj/structure/showcase/fakesec,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/centcom/ferry)
+"hS" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/unsimulated/wall/fakeglass,/area/centcom/ferry)
"hT" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/unsimulated/floor{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/area/centcom/control)
"hU" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
"hV" = (/obj/structure/dresser,/obj/structure/mirror{pixel_x = 0; pixel_y = 30},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
@@ -414,11 +414,11 @@
"hX" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
"hY" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/ferry)
"hZ" = (/turf/unsimulated/wall,/area/tdome/tdomeobserve)
-"ia" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/tdome/tdomeobserve)
+"ia" = (/obj/structure/reagent_dispensers/water_cooler,/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/centcom/ferry)
"ib" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve)
"ic" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
"id" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve)
-"ie" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/tdome/tdomeobserve)
+"ie" = (/obj/structure/filingcabinet,/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/centcom/ferry)
"if" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
"ig" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
"ih" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
@@ -435,7 +435,7 @@
"is" = (/obj/structure/closet/secure_closet/ertMed,/turf/unsimulated/floor{tag = "icon-darkblue (EAST)"; icon_state = "darkblue"; dir = 4},/area/centcom/ferry)
"it" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
"iu" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"iv" = (/turf/unsimulated/wall/fakeglass,/area/tdome/tdomeobserve)
+"iv" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{tag = "icon-darkgreen"; icon_state = "darkgreen"; dir = 2},/area/centcom/ferry)
"iw" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve)
"ix" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
"iy" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome/tdomeobserve)
@@ -460,9 +460,9 @@
"iR" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
"iS" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
"iT" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"iU" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"iV" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"iW" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"iU" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"iV" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/ferry)
+"iW" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/centcom/ferry)
"iX" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
"iY" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
"iZ" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
@@ -501,14 +501,14 @@
"jG" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
"jH" = (/obj/structure/closet/secure_closet/ertMed,/turf/unsimulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; dir = 2},/area/centcom/ferry)
"jI" = (/obj/structure/closet/secure_closet/ertSec,/turf/unsimulated/floor{tag = "icon-darkred"; icon_state = "darkred"; dir = 2},/area/centcom/ferry)
-"jJ" = (/obj/structure/closet/secure_closet/ertEngi,/obj/structure/extinguisher_cabinet{pixel_y = -28},/turf/unsimulated/floor{tag = "icon-darkbrown"; icon_state = "darkbrown"; dir = 2},/area/centcom/ferry)
+"jJ" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry)
"jK" = (/turf/unsimulated/floor{tag = "icon-yellowcornersiding (WEST)"; icon_state = "yellowcornersiding"; dir = 8},/area/centcom/evac)
"jL" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
"jM" = (/turf/unsimulated/floor{tag = "icon-yellowsiding"; icon_state = "yellowsiding"},/area/centcom/evac)
"jN" = (/turf/unsimulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/centcom/evac)
"jO" = (/turf/unsimulated/floor{tag = "icon-darkgreencorners"; icon_state = "darkgreencorners"},/area/centcom/ferry)
"jP" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve)
-"jQ" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve)
+"jQ" = (/obj/machinery/door_control{id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26},/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/centcom/ferry)
"jR" = (/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/evac)
"jS" = (/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
"jT" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac)
@@ -527,8 +527,8 @@
"kg" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHWEST)"; icon_state = "podhatch"; dir = 9},/area/syndicate_mothership)
"kh" = (/obj/structure/dresser,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
"ki" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"kj" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/evac)
-"kk" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
+"kj" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/centcom/ferry)
+"kk" = (/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/centcom/ferry)
"kl" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/tdome/tdomeobserve)
"km" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/tdome/tdomeobserve)
"kn" = (/turf/unsimulated/floor{icon_state = "green"},/area/tdome/tdomeobserve)
@@ -545,8 +545,8 @@
"ky" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"kz" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"kA" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership)
-"kB" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
-"kC" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac)
+"kB" = (/obj/machinery/door/airlock/centcom{name = "briefing room"; opacity = 1; req_access_txt = "103"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"kC" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/centcom/ferry)
"kD" = (/turf/unsimulated/floor{tag = "icon-yellowcornersiding (NORTH)"; icon_state = "yellowcornersiding"; dir = 1},/area/centcom/evac)
"kE" = (/turf/unsimulated/floor{tag = "icon-yellowsiding (NORTH)"; icon_state = "yellowsiding"; dir = 1},/area/centcom/evac)
"kF" = (/turf/unsimulated/floor{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/centcom/evac)
@@ -648,7 +648,7 @@
"mx" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
"my" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
"mz" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"mA" = (/obj/structure/table/reinforced,/obj/item/toy/AI,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/evac)
+"mA" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
"mB" = (/turf/unsimulated/wall,/area/tdome/arena)
"mC" = (/obj/machinery/igniter,/turf/simulated/floor/plasteel,/area/tdome/arena)
"mD" = (/turf/simulated/floor/plasteel,/area/tdome/arena)
@@ -656,7 +656,7 @@
"mF" = (/obj/structure/stool/bed/chair/wood/wings,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"mG" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"mH" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mI" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5},/area/centcom/evac)
+"mI" = (/obj/structure/stool/bed/chair/office/dark,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
"mJ" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"mK" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/hardsuit/wizard,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"mL" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
@@ -671,8 +671,8 @@
"mU" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
"mV" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
"mW" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"mX" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac)
-"mY" = (/turf/unsimulated/floor{tag = "icon-redcorner (WEST)"; icon_state = "redcorner"; dir = 8},/area/centcom/evac)
+"mX" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry)
+"mY" = (/obj/structure/closet/secure_closet/ertEngi,/obj/structure/extinguisher_cabinet{pixel_y = 28},/turf/unsimulated/floor{tag = "icon-darkbrown"; icon_state = "darkbrown"; dir = 2},/area/centcom/ferry)
"mZ" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
"na" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
"nb" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
@@ -696,7 +696,7 @@
"nt" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
"nu" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station)
"nv" = (/obj/structure/bookcase,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"nw" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac)
+"nw" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/tdome/tdomeobserve)
"nx" = (/obj/structure/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"ny" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"nz" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
@@ -713,7 +713,7 @@
"nK" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
"nL" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
"nM" = (/turf/unsimulated/wall/fakeglass{color = "#008000"},/area/wizard_station)
-"nN" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
+"nN" = (/obj/structure/table/reinforced,/obj/item/toy/AI,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/evac)
"nO" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
"nP" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"nQ" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/wizard_station)
@@ -733,13 +733,13 @@
"oe" = (/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station)
"of" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
"og" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"oh" = (/obj/structure/flora/kirbyplants,/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/centcom/evac)
-"oi" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
+"oh" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{tag = "icon-green (NORTHEAST)"; icon_state = "green"; dir = 5},/area/centcom/evac)
+"oi" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/evac)
"oj" = (/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Corridor A"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"ok" = (/turf/unsimulated/wall/normal{tag = "icon-uranium15"; icon_state = "uranium15"},/area/wizard_station)
"ol" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Corridor A"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"om" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
-"on" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
+"om" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/control)
+"on" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/control)
"oo" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
"op" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/space)
"oq" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
@@ -837,13 +837,13 @@
"qe" = (/turf/unsimulated/wall/vault,/area/abductor_ship)
"qf" = (/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qg" = (/obj/effect/landmark/abductor/console,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
-"qh" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
+"qh" = (/obj/structure/stool/bed/alien,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qi" = (/obj/effect/landmark/abductor/scientist,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qj" = (/obj/structure/table,/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qk" = (/obj/effect/landmark/abductor/agent,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"ql" = (/obj/structure/optable,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qm" = (/obj/machinery/abductor/gland_dispenser,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
-"qn" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/surgical_drapes,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
+"qn" = (/obj/structure/rack,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qo" = (/obj/machinery/abductor/experiment{team = 1},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qp" = (/obj/effect/landmark/abductor/console{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qq" = (/obj/effect/landmark/abductor/console{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
@@ -858,12 +858,31 @@
"qz" = (/obj/machinery/abductor/experiment{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qA" = (/obj/machinery/abductor/pad{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qB" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
-"qC" = (/obj/structure/rack,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
-"qD" = (/obj/machinery/computer/security{name = "Human Observation Console"; network = list("SS13","Abductor")},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
+"qC" = (/obj/structure/closet/acloset,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
+"qD" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve)
"qE" = (/obj/machinery/abductor/experiment{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qF" = (/obj/machinery/abductor/pad{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qG" = (/obj/machinery/abductor/experiment{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
"qH" = (/obj/machinery/abductor/pad{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
+"qI" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve)
+"qJ" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage"; req_access_txt = "106"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/suppy)
+"qK" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome/tdomeobserve)
+"qL" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve)
+"qM" = (/obj/structure/table,/turf/unsimulated/floor{tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9},/area/tdome/tdomeobserve)
+"qN" = (/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/tdome/tdomeobserve)
+"qO" = (/obj/structure/table,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/tdome/tdomeobserve)
+"qP" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
+"qQ" = (/obj/structure/flora/kirbyplants,/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/evac)
+"qR" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
+"qS" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
+"qT" = (/obj/structure/table,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/tdome/tdomeobserve)
+"qU" = (/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/tdome/tdomeobserve)
+"qV" = (/obj/structure/table,/turf/unsimulated/floor{tag = "icon-green (NORTHEAST)"; icon_state = "green"; dir = 5},/area/tdome/tdomeobserve)
+"qW" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve)
+"qX" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve)
+"qY" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve)
+"qZ" = (/obj/machinery/computer/camera_advanced{name = "Human Observation Console"; networks = list("SS13","Abductor")},/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
+"ra" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/surgical_drapes,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/turf/unsimulated/floor/bluegrid,/area/abductor_ship)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeag
@@ -999,43 +1018,43 @@ abababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcWdsdsdsdsdscXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdwdwdwdwdwdwdwdwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdAdBdBdBdBdBdCdwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdGdwdwdwdwdwdwdwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdGdwlFhChthChrdwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdMhqfvetetetetdwabababababepepepepepepepepepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdThEfvetetetetdNabababababepeuepeuepeuepeuepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdUdGhqhFetetetetdwabababababepepepepepepepepepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdVhEfvetetetetdwabababababepeuepeuepeuepeuepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdWhDfvetetetetdwdwdwdwdwabepepepepepepepepepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdGfwfvetetetetdweIeIeIdwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdXeBdHdHdHeGeafEfvetetetetfGeIeIeIdwabepepepepepepepepepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwebecedededeceedwkQeyexeteYdweIeIeIdwabepeuepeuepeuepeuepabababababababababababdAezezezezezdCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdwefegegegehdwdwdwdwdwdwfudwdwdwdwdwabepepepepepepepepepabekekekekekekabababdAdZeCeDeEeDeFdYdCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdwdwdwdwdwdweifXfXfXfHhlfHfXfXfXeiabepeuepeuepeuepeuepabeklflglglCekabababdGeLeMdHdHdHeNeOdGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfhfhfhfheifXhpfXfVemfVfXhpfXeiabepepepepepepepepepabeAeJeJeJeJekabababdGeSeTeUeVdHeNeWdGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhftfFfWfIfhfXfXfXgvemgvfXfXfXeiabababababababababababekeJkTfbfcekababdAfddBdBfedBfffgdBfddCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfYhhfFfFfheQeieQeiemeieQeieQeiabababekekekekekekekekekfklelcldekababdGfofofoezfpdHfqfrfsezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfFfFfFelfhfJfHgfemememggeQfJeiabababekgugegegegUgHgVgWeJeJeJhjfxfyfzdGfAfBfBfCdHdHdHdHfqdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfUfhfhfJfVevemememeseieQeieieieiekghgigigigigigihkeJeJeJhjfKfLfKfMfBfNfNezfOfPfQdHfqezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhgbgbgbgbgbgbgbgbgbgbgbgbgbgcfahUeKfhfJfVevemememememenejePePeoekghgigigigigigieHfyfzfZfxfyfyfzdXdBdBdBgafQfQfQdHfqdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhgbhHdBdBgqdBdBdBezdBdBgrgsgtfagdeKfhfJfVevemememggeieQeieiePfiekghgigigigigifmfnflgigigjfKfLfKgkdHgldHdHdHdHdHdHgmdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzababababababababababababababababababababababababababababfhhHhIeNgDgEgEgEgEgEgEgEgqgFgGfagdeKfhfJgvevemememkreQfJeieReZfjekkjgigigigikkkBkCflgigigjfxfyfzdGfPdHgwgxdHgwgxdHgydGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgJgIgIgIgKgLgIgIgIgKgIgIgIgIgIgIgKgIgIgzababababababababababababababababababababababababababababfhgodHdHdHdHdHdHdHdHdHdHgTkHkGfagdkPfhgAfheremememeseieQeieQeqeQekkFgigigigikEkEkEkDgigigjekababezfPdHgwgxdHgwgxdHgyezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgJgIgIgIgIgIgIgIgIgIgIgIgKgIgIgIgIgIgKgIgIgIgIgIgzababababababababababababababababababababababababababababfhhQeBgMgMeDeDeDeDeDeDeDgqgFhafagdhUhRfSfSememememememenjaePeXePhTirgigigigigigigigigigigjgXababezfPdHgwgxdHgwgxdHgyezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIhcgIgIgIgIgIgJgIgIgLgKgIgIgKgIgIgKgLgIgKgIgzababababababababababababababababababababababababababababfhgbhQdBdBgqdBdBdBezdBdBhigsgtfagdjOfhgAfhgfemememggeieQeieieieiekjNgigigigijMjMjMjKgigigjekababezfPdHgwgxdHgwgxdHgyezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgJgIgIgKgLgIgIgKgIgLgzababababababababababababababababababababababababababababfhgbgbgbgbgbgbgbgbgbgbgbgbgbhmfahUeKfhfJfHevemememewfHfJeiabababekmYgigigiginwmXmIflgigigjfxfyfzdGfPdHgwgxdHgwgxdHgydGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgJgIgIgIgIgIgLgIgKgLgIgKgIgzababababababababababababababababababababababababababababfhfhfhfhfhfhfhhzhAhAhBfhfhfhfhfhhSfhfhfJfVevemememewfVfJeiabababekmkgigigigigiiYmAflgigigjfKfLfKhndHhodHdHdHdHdHdHgmdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIhyhyhyhyhyhyhygIgIgIgIgIgIgIgKgIgIhcgLgIgIgIgzabababababababababababababababababababababababababababababababfhhUhVhUhUhUhUhUhUhWhYhXhUhUhUfhfJgvevemememewgvfJeiabababekmkgigigigigiginAfyfzhufxfyfyfzdXdBdBhvdBhwezhxezezeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhMhNhOhOhOhOhOhNhPgIgIgIgIhcgIhygJhygJgIgKgIgKgzabababababababababababababababababababababababababababababababfhhUhUhUhUfDhUfDhUhUhUhUhUhUisfhhZhZiaibicidiehZhZhZabababekmkgigigigigigihkgigigigjfKfLfKhnhJhJhJhKdGfrfqfqhLezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhNigihiiijikililhNimgIgIhygzgziniogzgzhyipiqhygzabababababababababababababababababababababababababababababababfhiJhUhUiKiKiKiKfRhUhUhUhUhUiLfhitiuiviwixiyiviuiuhZabababekohoioioiomonnNnDgigigigjfxfyfzdGhJhJhJhJdGfqfqfqifdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhNiEihihiFihihihhNimgIiGgzgziHiIiIiHgzgzgzgzgzgzgzgzabababababababababababababababababababababababababababababfhiMhUfTiKiNiOiKhUhUhUhUhUhUiPfhiuiUiViwixiyiViWiuhZabababekekekekekekekekekgiiziAiBekababdGiCiCiDiDdGfrfqfqhLezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagSjbjcjdaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhNjeihihihjfihjghNimhciGgzjhjijijijijjjkjljmjnjojpgzabababababababababababababababababababababababababababababfhiQhUhUiKiKiKiKfRhUhUhUhUhUiRfhjriujriwixiyjriujrhZabababababababababababekgiiXiYiZekababebfeedededededededfeeeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajsaajtjujvjwjxaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIjyhNhNhNjzhNhNhNjAgIgIjBgzjCjijDjDjEjijijijFjGjGjGgzabababababababababababababababababababababababababababababfhiShUhUgnhUgnhUhUhUhUhUhUhUiTfhjPiuiuiwixiyiuiujQhZabababababababababababkpgigigigiekabababebegegegegegegegeeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajsjUjVjWjvjXjYaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIhNjZihkahNkbhyhyhykcgzjijDkdkejDjikfkgjmkhkigzgzabababababababababababababababababababababababababababababfhjqhUhUhUhUhUhUhUjHjJjIgpiTjLfhklkmkmiwixiyknknkohZabababababababababababekjRjSjSjTekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajYkqlGjXksktjYaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIhNkuihkvhNkwkxkxkxiogzjijDkykzjDjikfkAgzgzgzgzababababababababababababababababababababababababababababababfhfhfhfhfhgBfhfhfhfhfhfhfhfhfhfhhZhZhZhZixhZhZhZhZhZabababababababababababekekekekekekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajwjxkIkJkIkKkLaaaaaaaaaaaaaaaaaaaaababababababgzgIgIhMhNhNhNhNhNkuihkvhNkMkNkNkNkNkOjijijijijijikfkAgzgzgzgzabababababababababababababababababababababababababababababababababababababababababababababababababhZixhZabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfhfhfhfhgBfhfhfhfhfhfhfhfhfhfhababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhhUhVhUhUhUhUhUhUjHmYjIgpiTjLfhababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhhUhUhUhUfDhUfDhUhUhUhUhUhUiRfhababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhiJhUhUiKiKiKiKfRhUhUhUhUhUiTfhababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhiMhUfTiKiNiOiKhUhUhUhUhUhUiPfhababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhiQhUhUiKiKiKiKfRhUhUhUhUhUiLfhfhfhfhfhepepepepepepepepepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhiShUhUgnhUgnhUhUhUhUhUhUhUismXfFfFfFfhepeuepeuepeuepeuepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhjqhUhUhUhUhUhUhUhWhYhXhUhUeKmAfFmIfFfhepepepepepepepepepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfhfhfhfhfhfhhzhAhAhBfhfhfhfhfhkBfhfhkCkjkkfhepeuepeuepeuepeuepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhgbgbgbgbgbgbgbgbgbgbgbgbgbgcfahUeKjJjQiViWfhepepepepepepepepepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhgbhHdBdBgqdBdBdBezdBdBgrgsgtfagdeKhShRieiafhababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhhHhIeNgDgEgEgEgEgEgEgEgqgFgGfagdeKfhfhfhfhfhepepepepepepepepepabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhgodHdHdHdHdHdHdHdHdHdHgTkHkGfagdkPfhfWfFfIfhepeuepeuepeuepeuepabababababababababababdAezezezezezdCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhhQeBgMgMeDeDeDeDeDeDeDgqgFhafagdhUfUfFfFelfhepepepepepepepepepabekekekekekekabababdAdZeCeDeEeDeFdYdCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhgbhQdBdBgqdBdBdBezdBdBhigsgtfagdjOfhfFfFftfhepeuepeuepeuepeuepabeklflglglCekabababdGeLeMdHdHdHeNeOdGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhgbgbgbgbgbgbgbgbgbgbgbgbgbhmfahUeKfhfFiUfYfhepepepepepepepepepabeAeJeJeJeJekabababdGeSeTeUeVdHeNeWdGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhivfhfhfhfhfhfhababababababababababekeJkTfbfcekababdAfddBdBfedBfffgdBfddCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeifXhpfXfHhlfHfXhpfXeiabababekekekekekekekekekfklelcldekababdGfofofoezfpdHfqfrfsezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeifXfXfXgvemgvfXfXfXeiabababekfufnfnfnfSfGgegWeJeJeJhjfxfyfzdGfAfBfBfCdHdHdHdHfqdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdwdwdwdwdwdwdwdwabababababeieQeieQeiemeieQeieQeieieieiekmkgigigigigigihkeJeJeJhjfKfLfKfMfBfNfNezfOfPfQdHfqezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdAdBdBdBdBdBdCdwabababababeifJfHevemememememenejePePeoekmkgigigigigigieHfyfzfZfxfyfyfzdXdBdBdBgafQfQfQdHfqdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdGdwdwdwdwdwdwdwfJfVevemememggeieQeieiePfiekmkgigigigigifmdNflgigigjfKfLfKgkdHgldHdHdHdHdHdHgmdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdGdwlFhChthChrdwfJgvevemememkreQfJeieReZfjekgUgigigigigVhhhEflgigigjfxfyfzdGfPdHgwgxdHgwgxdHgydGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgJgIgIgIgKgLgIgIgIgKgIgIgIgIgIgIgKgIgIgzababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdMhqfvetetetetdweQeieremememeseieQeieQeqeQekkFgigigigikEkEkEkDgigigjekababezfPdHgwgxdHgwgxdHgyezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgJgIgIgIgIgIgIgIgIgIgIgIgKgIgIgIgIgIgKgIgIgIgIgIgzababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdTgufvetetetetgAgHemememememememenjaePeXePhTirgigigigigigigigigigigjgXababezfPdHgwgxdHgwgxdHgyezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIhcgIgIgIgIgIgJgIgIgLgKgIgIgKgIgIgKgLgIgKgIgzababababababababababababababababababababababababababababababababdwdGdHdHdHdHdUdGhqhFetetetetdweQeigfemememggeieQeieieieiekjNgigigigijMjMjMjKgigigjekababezfPdHgwgxdHgwgxdHgyezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgJgIgIgKgLgIgIgKgIgLgzababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdVgufvetetetetdwfJfHevemememewfHfJeiabababekoigigigigiiBiAohflgigigjfxfyfzdGfPdHgwgxdHgwgxdHgydGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgJgIgIgIgIgIgLgIgKgLgIgKgIgzababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdWhDfvetetetetdwfJfVevemememewfVfJeiabababekghgigigigigiiYnNflgigigjfKfLfKhndHhodHdHdHdHdHdHgmdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIhyhyhyhyhyhyhygIgIgIgIgIgIgIgKgIgIhcgLgIgIgIgzababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdGfwfvetetetetdwfJgvomgfemggongvfJeiabababekghgigigigigiginAfyfzhufxfyfyfzdXdBdBhvdBhwezhxezezeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhMhNhOhOhOhOhOhNhPgIgIgIgIhcgIhygJhygJgIgKgIgKgzababababababababababababababababababababababababababababababababdwdXeBdHdHdHeGeafEfvetetetetdwhZhZidibicidibhZhZhZabababekghgigigigigigihkgigigigjfKfLfKhnhJhJhJhKdGfrfqfqhLezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhNigihiiijikililhNimgIgIhygzgziniogzgzhyipiqhygzababababababababababababababababababababababababababababababababdwebecedededeceedwkQeyexeteYdwqMqNqOqDixqKqTqUqVhZabababekqQqRqRqRjSqSqPnDgigigigjfxfyfzdGhJhJhJhJdGfqfqfqifdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhNiEihihiFihihihhNimgIiGgzgziHiIiIiHgzgzgzgzgzgzgzgzababababababababababababababababababababababababababababababdwdwefegegegehdwdwdwdwdwqJdwdwqIiuitqDixqKitiuqLhZabababekekekekekekekekekgiiziAiBekababdGiCiCiDiDdGfrfqfqhLezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagSjbjcjdaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhNjeihihihjfihjghNimhciGgzjhjijijijijjjkjljmjnjojpgzabababababababababababababababababababababababababababababababdwdwdwdwdwdwdwababdweIeIeIdwqXiuitqDixqKitiuqYhZabababababababababababekgiiXiYiZekababebfeedededededededfeeeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajsaajtjujvjwjxaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIjyhNhNhNjzhNhNhNjAgIgIjBgzjCjijDjDjEjijijijFjGjGjGgzababababababababababababababababababababababababababababababababababababababababdweIeIeIdwjPiuitqDixqKitiuqWhZabababababababababababkpgigigigiekabababebegegegegegegegeeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajsjUjVjWjvjXjYaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIhNjZihkahNkbhyhyhykcgzjijDkdkejDjikfkgjmkhkigzgzababababababababababababababababababababababababababababababababababababababababdweIeIeIdwklkmkmiwixiyknknkohZabababababababababababekjRjSjSjTekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajYkqlGjXksktjYaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIhNkuihkvhNkwkxkxkxiogzjijDkykzjDjikfkAgzgzgzgzabababababababababababababababababababababababababababababababababababababababababdwdwdwdwdwidmpibhZixhZidmpibhZabababababababababababekekekekekekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajwjxkIkJkIkKkLaaaaaaaaaaaaaaaaaaaaababababababgzgIgIhMhNhNhNhNhNkuihkvhNkMkNkNkNkNkOjijijijijijikfkAgzgzgzgzabababababababababababababababababababababababababababababababababababababababababababababhZnwnwnwjrixjrnwnwnwhZabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajsjskLkRkSjvjwaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIhNkUihihkVhNkuihkvhNkWkXinkxiogzkYjDjDjDjijikfkZgzlalbgzgzabababababababababababababababababababababababababababababababababababababababababhZhZhZhZhZhZhZhZichZhZhZhZhZhZhZhZababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababaaaaaaaaaaaaaaaaaaaaaalhliljlklllmjvlnjsaaaaaaaaaaaaaaaaaaaaababababababgzgIgIhNkUihlolphNkuihkvhNhNnrlrhPlsgzltlulvlulujijijilwlxlxlygzabababababababababababababababababababababababababababababababababababababababababhZlzlAlAlAlAlAlzlzlzlAlAlAlAlAlzhZababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababaaaaaaaaaaaaaaaaaaaalBgYlDlEgZlljvlGlHlIjsjsaaaaaaaaaaaaaaaaababababababgzlJgIhNkUihihlKhNihihihhNihihihhNjBgzlLlMlLlLlNjijijigzlOlPlygzababababababababababababababababababababababababababababababababababababababababablQlzlzlzlRlzlzlzlzlzlzlzlRlzlzlzlQababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
@@ -1089,22 +1108,19 @@ abababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeabababqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeqoqgqyqeqeabqeqeqzqvqAqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqBqCqeqfqfqfqfqhqeabqeqhqfqfqfqfqeqBqCqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqfqfqeqmqiqDqkqjqeabqeqjqwqDqxqmqeqfqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqfqfqfqfqfqfqfqnqeabqeqnqfqfqfqfqfqfqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeqfqlqfqeqeabqeqeqfqlqfqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqoqgqyqeqeabqeqeqzqvqAqeqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqZqfqfqfqCqeabqeqZqfqfqfqCqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqjqiqlqkqBqeabqeqjqwqlqxqBqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeraqfqfqfqCqeabqeraqfqfqfqCqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqmqnqhqeqeabqeqeqmqnqhqeqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeabababqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeabababqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqEqpqFqeqeabqeqeqGqqqHqeqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqhqfqfqfqfqeabqeqhqfqfqfqfqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqjqrqDqsqmqeabqeqjqtqDquqmqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqnqfqfqfqfqeabqeqnqfqfqfqfqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqfqlqfqeqeabqeqeqfqlqfqeqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqfqeabababqeqeqeqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqBqfqfqeabababqeqBqfqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqCqfqfqeabababqeqCqfqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqZqfqfqfqCqeabqeqZqfqfqfqCqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqjqrqlqsqBqeabqeqjqtqlquqBqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeraqfqfqfqCqeabqeraqfqfqfqCqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqmqnqhqeqeabqeqeqmqnqhqeqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeabababqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
@@ -1121,5 +1137,8 @@ abababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
"}
diff --git a/code/game/communications.dm b/code/game/communications.dm
index 895d36813ce..fe92b777815 100644
--- a/code/game/communications.dm
+++ b/code/game/communications.dm
@@ -97,7 +97,7 @@ Radio:
1355 - Medical
1357 - Engineering
1359 - Security
-1441 - death squad
+1337 - death squad
1443 - Confession Intercom
1349 - Miners
1347 - Cargo techs
@@ -130,7 +130,7 @@ var/list/radiochannels = list(
"Medical" = 1355,
"Engineering" = 1357,
"Security" = 1359,
- "Centcom" = 1441,
+ "Centcom" = 1337,
"Syndicate" = 1213,
"Supply" = 1347,
"Service" = 1349,
@@ -144,7 +144,7 @@ var/list/radiochannelsreverse = list(
"1355" = "Medical",
"1357" = "Engineering",
"1359" = "Security",
- "1441" = "Centcom",
+ "1337" = "Centcom",
"1213" = "Syndicate",
"1347" = "Supply",
"1349" = "Service",
@@ -160,7 +160,7 @@ var/const/COMM_FREQ = 1353 //command, colored gold in chat window
var/const/MED_FREQ = 1355 //medical, coloured blue in chat window
var/const/ENG_FREQ = 1357 //engineering, coloured orange in chat window
var/const/SEC_FREQ = 1359 //security, coloured red in chat window
-var/const/CENTCOM_FREQ = 1441 //centcom frequency, coloured grey in chat window
+var/const/CENTCOM_FREQ = 1337 //centcom frequency, coloured grey in chat window
var/const/AIPRIV_FREQ = 1447 //AI private, colored magenta in chat window
#define TRANSMISSION_WIRE 0
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index afd98a9ab5d..a863c31c8bd 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -164,6 +164,7 @@
var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate/alt(synd_mob)
R.set_frequency(radio_freq)
+ R.freqlock = 1
synd_mob.equip_to_slot_or_del(R, slot_ears)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(synd_mob), slot_w_uniform)
diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm
index 1cbffbab51d..00bbda4014e 100644
--- a/code/game/jobs/access.dm
+++ b/code/game/jobs/access.dm
@@ -194,13 +194,13 @@
if("Centcom Commander")
return get_all_centcom_access()
if("Emergency Response Team Commander")
- return list(access_cent_general)
+ return get_ert_access("commander")
if("Security Response Officer")
- return list(access_cent_general)
+ return get_ert_access("sec")
if("Engineer Response Officer")
- return list(access_cent_general)
+ return get_ert_access("eng")
if("Medical Response Officer")
- return list(access_cent_general)
+ return get_ert_access("med")
/proc/get_all_accesses()
return list(access_security, access_sec_doors, access_brig, access_armory, access_forensics_lockers, access_court,
@@ -223,11 +223,11 @@
if("commander")
return get_all_centcom_access()
if("sec")
- return list(access_cent_general, access_cent_specops)
+ return list(access_cent_general, access_cent_specops, access_cent_living)
if("eng")
- return list(access_cent_general, access_cent_storage)
+ return list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)
if("med")
- return list(access_cent_general, access_cent_medical)
+ return list(access_cent_general, access_cent_specops, access_cent_medical, access_cent_living)
/proc/get_all_syndicate_access()
return list(access_syndicate, access_syndicate)
diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm
index 27f39329e7c..1fc7a5bf311 100644
--- a/code/game/machinery/telecomms/broadcaster.dm
+++ b/code/game/machinery/telecomms/broadcaster.dm
@@ -244,7 +244,20 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
else if(data == 2)
for(var/obj/item/device/radio/R in all_radios["[freq]"])
- if(istype(R, /obj/item/device/radio/headset))
+ if(R.subspace_transmission)
+ continue
+
+ if(R.receive_range(freq, level) > -1)
+ radios += R
+
+ // --- This space left blank for Syndicate data ---
+
+ // --- Centcom radio, yo. ---
+
+ else if(data == 4)
+
+ for(var/obj/item/device/radio/R in all_radios["[freq]"])
+ if(!R.centcom)
continue
if(R.receive_range(freq, level) > -1)
@@ -337,8 +350,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
else if(data == 2)
for (var/obj/item/device/radio/R in connection.devices["[RADIO_CHAT]"])
-
- if(istype(R, /obj/item/device/radio/headset))
+ if(R.subspace_transmission)
continue
var/turf/position = get_turf(R)
if(position && position.z == level)
@@ -355,6 +367,13 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
if(position && position.z == level)
receive |= R.send_hear(SYND_FREQ)
+ // --- Centcom radio, yo. ---
+
+ else if(data == 4)
+
+ for(var/obj/item/device/radio/R in all_radios["[RADIO_CHAT]"])
+ if(R.centcom)
+ receive |= R.send_hear(CENTCOM_FREQ)
// --- Broadcast to ALL radio devices ---
diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm
index 7d2a8f32019..fe48a7cb3f7 100644
--- a/code/game/machinery/telecomms/presets.dm
+++ b/code/game/machinery/telecomms/presets.dm
@@ -41,7 +41,7 @@
id = "Receiver A"
network = "tcommsat"
autolinkers = list("receiverA") // link to relay
- freq_listening = list(1351, 1355, 1347, 1349) // science, medical, supply, service
+ freq_listening = list(SCI_FREQ, MED_FREQ, SUPP_FREQ, SERV_FREQ) // science, medical, supply, service
//--PRESET RIGHT--//
@@ -50,7 +50,7 @@
id = "Receiver B"
network = "tcommsat"
autolinkers = list("receiverB") // link to relay
- freq_listening = list(1353, 1357, 1359) //command, engineering, security
+ freq_listening = list(COMM_FREQ, ENG_FREQ, SEC_FREQ) //command, engineering, security
//Common and other radio frequencies for people to freely use
New()
@@ -64,25 +64,25 @@
/obj/machinery/telecomms/bus/preset_one
id = "Bus 1"
network = "tcommsat"
- freq_listening = list(1351, 1355)
+ freq_listening = list(SCI_FREQ, MED_FREQ)
autolinkers = list("processor1", "science", "medical")
/obj/machinery/telecomms/bus/preset_two
id = "Bus 2"
network = "tcommsat"
- freq_listening = list(1347,1349)
+ freq_listening = list(SUPP_FREQ,SERV_FREQ)
autolinkers = list("processor2", "supply", "service")
/obj/machinery/telecomms/bus/preset_three
id = "Bus 3"
network = "tcommsat"
- freq_listening = list(1359, 1353)
+ freq_listening = list(SEC_FREQ, COMM_FREQ)
autolinkers = list("processor3", "security", "command")
/obj/machinery/telecomms/bus/preset_four
id = "Bus 4"
network = "tcommsat"
- freq_listening = list(1357)
+ freq_listening = list(ENG_FREQ)
autolinkers = list("processor4", "engineering", "common")
/obj/machinery/telecomms/bus/preset_four/New()
@@ -124,22 +124,22 @@
/obj/machinery/telecomms/server/presets/science
id = "Science Server"
- freq_listening = list(1351)
+ freq_listening = list(SCI_FREQ)
autolinkers = list("science")
/obj/machinery/telecomms/server/presets/medical
id = "Medical Server"
- freq_listening = list(1355)
+ freq_listening = list(MED_FREQ)
autolinkers = list("medical")
/obj/machinery/telecomms/server/presets/supply
id = "Supply Server"
- freq_listening = list(1347)
+ freq_listening = list(SUPP_FREQ)
autolinkers = list("supply")
/obj/machinery/telecomms/server/presets/service
id = "Service Server"
- freq_listening = list(1349)
+ freq_listening = list(SERV_FREQ)
autolinkers = list("service")
/obj/machinery/telecomms/server/presets/common
@@ -156,17 +156,17 @@
/obj/machinery/telecomms/server/presets/command
id = "Command Server"
- freq_listening = list(1353)
+ freq_listening = list(COMM_FREQ)
autolinkers = list("command")
/obj/machinery/telecomms/server/presets/engineering
id = "Engineering Server"
- freq_listening = list(1357)
+ freq_listening = list(ENG_FREQ)
autolinkers = list("engineering")
/obj/machinery/telecomms/server/presets/security
id = "Security Server"
- freq_listening = list(1359)
+ freq_listening = list(SEC_FREQ)
autolinkers = list("security")
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index ceec8b34cf9..55fa4cd6179 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -8,6 +8,7 @@
var/translate_binary = 0
var/translate_hive = 0
var/syndie = 0
+ var/centcom = 0
var/list/channels = list()
@@ -118,5 +119,12 @@
icon_state = "srv_cypherkey"
channels = list("Service" = 1)
+/obj/item/device/encryptionkey/headset_cent
+ name = "centcom radio encryption key"
+ desc = "An encryption key for a radio headset. To access the centcom channel, use :y."
+ icon_state = "cent_cypherkey"
+ centcom = 1
+ channels = list("Centcom" = 1)
+
/obj/item/device/encryptionkey/ai //ported from NT, this goes 'inside' the AI.
channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1)
\ No newline at end of file
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index c054a5de007..86fce610ab3 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -188,17 +188,18 @@
/obj/item/device/radio/headset/headset_cent
name = "\improper Centcom headset"
- desc = "A headset used by the upper echelons of Nanotrasen. \nTo access the command channel, use :c."
+ desc = "A headset used by the upper echelons of Nanotrasen. \nTo access the centcom channel, use :y."
icon_state = "cent_headset"
item_state = "headset"
keyslot = new /obj/item/device/encryptionkey/headset_com
+ keyslot2 = new /obj/item/device/encryptionkey/headset_cent
/obj/item/device/radio/headset/headset_cent/commander
keyslot = new /obj/item/device/encryptionkey/heads/captain
/obj/item/device/radio/headset/headset_cent/alt
name = "\improper Centcom bowman headset"
- desc = "A headset especially for emergency response personnel. Protects ears from flashbangs."
+ desc = "A headset especially for emergency response personnel. Protects ears from flashbangs. \nTo access the centcom channel, use :y."
flags = EARBANGPROTECT
icon_state = "cent_headset_alt"
item_state = "cent_headset_alt"
@@ -285,6 +286,9 @@
if(keyslot2.syndie)
src.syndie = 1
+ if (keyslot2.centcom)
+ centcom = 1
+
for(var/ch_name in channels)
secure_radio_connections[ch_name] = add_radio(src, radiochannels[ch_name])
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 816c0f37b0a..c7283a15f29 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -23,7 +23,9 @@
var/obj/item/device/encryptionkey/keyslot //To allow the radio to accept encryption keys.
var/subspace_transmission = 0
var/syndie = 0//Holder to see if it's a syndicate encrpyed radio
+ var/centcom = 0//Bleh, more dirty booleans
var/maxf = 1499
+ var/freqlock = 0 //Frequency lock to stop the user from untuning specialist radios.
var/emped = 0 //Highjacked to track the number of consecutive EMPs on the radio, allowing consecutive EMP's to stack properly.
// "Example" = FREQ_LISTENING|FREQ_BROADCASTING
flags = CONDUCT | HEAR
@@ -58,6 +60,7 @@
translate_binary = 0
translate_hive = 0
syndie = 0
+ centcom = 0
if(keyslot)
for(var/ch_name in keyslot.channels)
@@ -75,6 +78,9 @@
if(keyslot.syndie)
syndie = 1
+ if (keyslot.centcom)
+ centcom = 1
+
for(var/ch_name in channels)
secure_radio_connections[ch_name] = add_radio(src, radiochannels[ch_name])
@@ -132,14 +138,17 @@
"}
else //Headsets dont get a mic button, speaker controls both
dat += "Power: [listening ? "Engaged" : "Disengaged"]
"
- dat += {"
- Frequency:
- -
- -
- [format_frequency(frequency)]
- +
- +
- "}
+ if (freqlock)
+ dat += "Frequency: LOCKED
"
+ else
+ dat += {"
+ Frequency:
+ -
+ -
+ [format_frequency(frequency)]
+ +
+ +
+ "}
for (var/ch_name in channels)
dat+=text_sec_channel(ch_name, channels[ch_name])
@@ -198,14 +207,15 @@
return
else if (href_list["freq"])
- var/new_frequency = (frequency + text2num(href_list["freq"]))
- if (!freerange || (frequency < 1200 || frequency > 1600))
- new_frequency = sanitize_frequency(new_frequency, maxf)
- set_frequency(new_frequency)
- if(hidden_uplink)
- if(hidden_uplink.check_trigger(usr, frequency, traitor_frequency))
- usr << browse(null, "window=radio")
- return
+ if (!freqlock)
+ var/new_frequency = (frequency + text2num(href_list["freq"]))
+ if (!freerange || (frequency < 1200 || frequency > 1600))
+ new_frequency = sanitize_frequency(new_frequency, maxf)
+ set_frequency(new_frequency)
+ if(hidden_uplink)
+ if(hidden_uplink.check_trigger(usr, frequency, traitor_frequency))
+ usr << browse(null, "window=radio")
+ return
else if (href_list["talk"])
broadcasting = text2num(href_list["talk"])
@@ -273,6 +283,7 @@
freq = frequency
channel = null
+ var/freqnum = text2num(freq) //Why should we call text2num three times when we can just do it here?
var/turf/position = get_turf(src)
//#### Tagging the signal with all appropriate identity values ####//
@@ -328,6 +339,43 @@
else
jobname = "Unknown"
+ /* ###### Centcom channel bypasses all comms relays. ###### */
+
+ if (freqnum == CENTCOM_FREQ && centcom)
+ var/datum/signal/signal = new
+ signal.transmission_method = 2
+ signal.data = list(
+ "mob" = M, // store a reference to the mob
+ "mobtype" = M.type, // the mob's type
+ "realname" = real_name, // the mob's real name
+ "name" = voice, // the mob's voice name
+ "job" = jobname, // the mob's job
+ "key" = mobkey, // the mob's key
+ "vmask" = voicemask, // 1 if the mob is using a voice gas mas
+
+ "compression" = 0, // uncompressed radio signal
+ "message" = message, // the actual sent message
+ "radio" = src, // stores the radio used for transmission
+ "slow" = 0,
+ "traffic" = 0,
+ "type" = 0,
+ "server" = null,
+ "reject" = 0,
+ "level" = 0,
+ "languages" = languages,
+ "spans" = spans,
+ "verb_say" = M.verb_say,
+ "verb_ask" = M.verb_ask,
+ "verb_exclaim" = M.verb_exclaim,
+ "verb_yell" = M.verb_yell
+ )
+ signal.frequency = freqnum // Quick frequency set
+ Broadcast_Message(M, voicemask,
+ src, message, voice, jobname, real_name,
+ 4, signal.data["compression"], list(position.z, 0), freq, spans,
+ verb_say, verb_ask, verb_exclaim, verb_yell)
+ return
+
/* ###### Radio headsets can only broadcast through subspace ###### */
if(subspace_transmission)
@@ -416,7 +464,7 @@
"verb_exclaim" = M.verb_exclaim,
"verb_yell" = M.verb_yell
)
- signal.frequency = text2num(freq) // Quick frequency set
+ signal.frequency = freqnum // Quick frequency set
for(var/obj/machinery/telecomms/receiver/R in telecomms_list)
R.receive_signal(signal)
@@ -469,6 +517,9 @@
if(freq == SYND_FREQ)
if(!(src.syndie)) //Checks to see if it's allowed on that frequency, based on the encryption keys
return -1
+ if(freq == CENTCOM_FREQ)
+ if (!(src.centcom))
+ return -1
if (!on)
return -1
if (!freq) //received on main frequency
diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
index d68d9555c05..1cabfc03243 100644
--- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm
+++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
@@ -48,8 +48,8 @@
new /obj/item/clothing/mask/gas/sechailer/swat(src)
new /obj/item/clothing/shoes/combat/swat(src)
new /obj/item/clothing/shoes/combat/swat(src)
- new /obj/item/clothing/suit/space/deathsquad(src)
- new /obj/item/clothing/suit/space/deathsquad(src)
+ new /obj/item/clothing/suit/space/hardsuit/deathsquad(src)
+ new /obj/item/clothing/suit/space/hardsuit/deathsquad(src)
new /obj/item/clothing/under/syndicate/tacticool(src)
new /obj/item/clothing/under/syndicate/tacticool(src)
diff --git a/code/game/say.dm b/code/game/say.dm
index 040f26c8d84..5d6d0eb6d65 100644
--- a/code/game/say.dm
+++ b/code/game/say.dm
@@ -13,7 +13,7 @@ var/list/freqtospan = list(
"1353" = "comradio",
"1447" = "aiprivradio",
"1213" = "syndradio",
- "1441" = "centcomradio"
+ "1337" = "centcomradio"
)
/atom/movable/proc/say(message)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 22f84bea4d8..af5e35c3ff7 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -856,14 +856,14 @@ var/global/list/g_fancy_list_of_types = null
equip_deathsquad(M)
if("emergency response officer")
- switch(input("Which class?") in list("Commander","Security","Engineer","Medical"))
+ switch(input("Which class?") in list("Commander","Security","Engineer","Medic"))
if("Commander")
equip_emergencyresponsesquad(M, "commander")
if("Security")
equip_emergencyresponsesquad(M, "sec")
if("Engineer")
equip_emergencyresponsesquad(M, "eng")
- if("Medical")
+ if("Medic")
equip_emergencyresponsesquad(M, "med")
if("centcom official")
@@ -919,16 +919,17 @@ var/global/list/g_fancy_list_of_types = null
if("special ops officer")
var/obj/item/device/radio/headset/R = new /obj/item/device/radio/headset/headset_cent/commander(M)
- R.set_frequency(1441)
+ R.set_frequency(CENTCOM_FREQ)
+ R.freqlock = 1
M.equip_to_slot_or_del(R, slot_ears)
M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform)
- M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/deathsquad/officer(M), slot_wear_suit)
+ M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/officer(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask)
- M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head)
+ M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/m1911(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/lighter/zippo(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
@@ -1106,26 +1107,27 @@ var/global/list/g_fancy_list_of_types = null
//Deathsquad
/proc/equip_deathsquad(var/mob/living/carbon/human/M, var/officer)
var/obj/item/device/radio/R = new /obj/item/device/radio/headset/headset_cent/alt(M)
- R.set_frequency(1441)
+ R.set_frequency(CENTCOM_FREQ)
+ R.freqlock = 1
M.equip_to_slot_or_del(R, slot_ears)
if(officer)
- M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head)
- else
- M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad(M), slot_head)
+ M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head)
+ //else
+ // M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad(M), slot_head)
- M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/deathsquad(M), slot_wear_suit)
+ M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/hardsuit/deathsquad(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/green(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_wear_mask)
- M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal(M), slot_glasses)
+ M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/toggle/thermal(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack)
- M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(M), slot_in_backpack)
+ M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/hypospray/combat/nanites(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/flashbangs(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
@@ -1157,7 +1159,8 @@ var/global/list/g_fancy_list_of_types = null
/proc/equip_emergencyresponsesquad(var/mob/living/carbon/human/M, var/ertrole)
var/obj/item/weapon/card/id/W = null
var/obj/item/device/radio/R = new /obj/item/device/radio/headset/headset_cent/alt(M)
- R.set_frequency(1441)
+ R.set_frequency(CENTCOM_FREQ)
+ R.freqlock = 1
M.equip_to_slot_or_del(R, slot_ears)
switch(ertrole)
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index 8b33acf73b3..c78793ac84a 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -314,6 +314,7 @@ client/proc/one_click_antag()
/datum/admins/proc/makeDeathsquad()
var/mission = input("Assign a mission to the deathsquad", "Assign Mission", "Leave no witnesses.")
var/list/mob/dead/observer/candidates = getCandidates("Do you wish to be considered for an elite Nanotrasen Strike Team?", "deathsquad", null)
+ var/squadSpawned = 0
if(candidates.len >= 2) //Minimum 2 to be considered a squad
//Pick the lucky players
@@ -366,11 +367,12 @@ client/proc/one_click_antag()
message_admins("The deathsquad has spawned with the mission: [mission].")
log_game("[key_name(Commando)] has been selected as a Death Commando")
numagents--
+ squadSpawned++
- if (numagents == candidates.len)
- return 0 // No one got spawned!
- else
+ if (squadSpawned)
return 1
+ else
+ return 0
return
@@ -411,6 +413,7 @@ client/proc/one_click_antag()
/datum/admins/proc/makeEmergencyresponseteam()
var/mission = input("Assign a mission to the Emergency Response Team", "Assign Mission", "Assist the station.")
var/list/mob/dead/observer/candidates = getCandidates("Do you wish to be considered for an elite Nanotrasen Emergency Response Team?", "deathsquad", null)
+ var/teamSpawned = 0
if(candidates.len >= 4) //Minimum 4 to be considered a squad
//Pick the (un)lucky players
@@ -480,11 +483,12 @@ client/proc/one_click_antag()
message_admins("The emergency response team has spawned with the mission: [mission].")
log_game("[key_name(ERTOperative)] has been selected as an Emergency Response Officer")
numagents--
+ teamSpawned++
- if (numagents == candidates.len)
- return 0 // No one got spawned!
- else
+ if (teamSpawned)
return 1
+ else
+ return 0
return
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 3367901fc15..51f560c29f9 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -178,8 +178,8 @@
emp_act(severity)
if(istype(src.loc, /mob/living/carbon/human))
var/mob/living/carbon/human/M = src.loc
- M << "The Optical Thermal Scanner overloads and blinds you!"
if(M.glasses == src)
+ M << "The Optical Thermal Scanner overloads and blinds you!"
M.eye_blind = 3
M.eye_blurry = 5
M.disabilities |= NEARSIGHT
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index 709f923534c..6cbd4620382 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -6,12 +6,12 @@
var/hud_type = null
/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot)
- if(slot == slot_glasses)
+ if(hud_type && slot == slot_glasses)
var/datum/atom_hud/H = huds[hud_type]
H.add_hud_to(user)
/obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user)
- if(istype(user) && user.glasses == src)
+ if(hud_type && istype(user) && user.glasses == src)
var/datum/atom_hud/H = huds[hud_type]
H.remove_hud_from(user)
@@ -82,4 +82,62 @@
icon_state = "supergars"
item_state = "garb"
force = 12
- throwforce = 12
\ No newline at end of file
+ throwforce = 12
+
+/obj/item/clothing/glasses/hud/toggle
+ name = "Toggle Hud"
+ desc = "A hud with multiple functions."
+ action_button_name = "Switch HUD"
+
+/obj/item/clothing/glasses/hud/toggle/attack_self(mob/user)
+ if(!ishuman(user))
+ return
+ var/mob/living/carbon/human/wearer = user
+ if (wearer.glasses != src)
+ return
+
+ if (hud_type)
+ var/datum/atom_hud/H = huds[hud_type]
+ H.remove_hud_from(user)
+
+ if (hud_type == DATA_HUD_MEDICAL_ADVANCED)
+ hud_type = null
+ else if (hud_type == DATA_HUD_SECURITY_ADVANCED)
+ hud_type = DATA_HUD_MEDICAL_ADVANCED
+ else
+ hud_type = DATA_HUD_SECURITY_ADVANCED
+
+ if (hud_type)
+ var/datum/atom_hud/H = huds[hud_type]
+ H.add_hud_to(user)
+
+/obj/item/clothing/glasses/hud/toggle/thermal
+ name = "Thermal HUD Scanner"
+ desc = "Thermal imaging HUD in the shape of glasses."
+ icon_state = "thermal"
+ hud_type = DATA_HUD_SECURITY_ADVANCED
+ vision_flags = SEE_MOBS
+ invis_view = 2
+
+/obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user)
+ ..()
+ switch (hud_type)
+ if (DATA_HUD_MEDICAL_ADVANCED)
+ icon_state = "meson"
+ if (DATA_HUD_SECURITY_ADVANCED)
+ icon_state = "thermal"
+ else
+ icon_state = "purple"
+ user.update_inv_glasses()
+
+/obj/item/clothing/glasses/hud/toggle/thermal/emp_act(severity)
+ if(istype(src.loc, /mob/living/carbon/human))
+ var/mob/living/carbon/human/M = src.loc
+ if(M.glasses == src)
+ M << "The [src] overloads and blinds you!"
+ M.eye_blind = 3
+ M.eye_blurry = 5
+ M.disabilities |= NEARSIGHT
+ spawn(100)
+ M.disabilities &= ~NEARSIGHT
+ ..()
\ No newline at end of file
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index 9dfdee6ef9e..cf8a9d9e5a6 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -20,7 +20,7 @@
//Death squad armored space suits, not hardsuits!
-/obj/item/clothing/head/helmet/space/deathsquad
+/obj/item/clothing/head/helmet/space/hardsuit/deathsquad
name = "deathsquad helmet"
desc = "That's not red paint. That's real blood."
icon_state = "deathsquad"
@@ -29,8 +29,12 @@
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
+ action_button_name = null
-/obj/item/clothing/suit/space/deathsquad
+/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user)
+ return
+
+/obj/item/clothing/suit/space/hardsuit/deathsquad
name = "deathsquad suit"
desc = "A heavily armored, advanced space suit that protects against most forms of damage."
icon_state = "deathsquad"
@@ -41,15 +45,20 @@
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
+ helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad
-/obj/item/clothing/head/helmet/space/deathsquad/beret
+/obj/item/clothing/head/helmet/space/beret
name = "officer's beret"
desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space."
icon_state = "beret_badge"
flags = STOPSPRESSUREDMAGE
flags_inv = 0
+ armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
+ strip_delay = 130
+ max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
+ unacidable = 1
-/obj/item/clothing/suit/space/deathsquad/officer
+/obj/item/clothing/suit/space/officer
name = "officer's jacket"
desc = "An armored, space-proof jacket used in special operations."
icon_state = "detective"
@@ -58,6 +67,12 @@
slowdown = 0
flags_inv = 0
w_class = 3
+ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
+ armor = list(melee = 80, bullet = 80, laser = 50,energy = 50, bomb = 100, bio = 100, rad = 100)
+ slowdown = 1
+ strip_delay = 130
+ max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
+ unacidable = 1
//NASA Voidsuit
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index c7a13f69e26..e5986aa8589 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -16,6 +16,7 @@ var/list/department_radio_keys = list(
":v" = "Service", "#v" = "Service", ".v" = "Service",
":o" = "AI Private", "#o" = "AI Private", ".o" = "AI Private",
":g" = "changeling", "#g" = "changeling", ".g" = "changeling",
+ ":y" = "Centcom", "#y" = "Centcom", ".y" = "Centcom",
":R" = "right hand", "#R" = "right hand", ".R" = "right hand",
":L" = "left hand", "#L" = "left hand", ".L" = "left hand",
@@ -34,6 +35,7 @@ var/list/department_radio_keys = list(
":V" = "Service", "#V" = "Service", ".V" = "Service",
":O" = "AI Private", "#O" = "AI Private", ".O" = "AI Private",
":G" = "changeling", "#G" = "changeling", ".G" = "changeling",
+ ":Y" = "Centcom", "#Y" = "Centcom", ".Y" = "Centcom",
//kinda localization -- rastaf0
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm
index f2d1af3912a..2df1cb53100 100644
--- a/code/modules/mob/living/simple_animal/friendly/corgi.dm
+++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm
@@ -209,7 +209,7 @@
//The objects that corgis can wear on their backs.
var/list/allowed_types = list(
/obj/item/clothing/suit/armor/vest,
- /obj/item/clothing/suit/space/deathsquad,
+ /obj/item/clothing/suit/space/hardsuit/deathsquad,
/obj/item/device/radio,
/obj/item/device/radio/off,
/obj/item/clothing/suit/cardborg,
@@ -385,7 +385,7 @@
desc = "Can actually be trusted to not run off on his own."
valid = 1
- if(/obj/item/clothing/head/helmet/space/deathsquad)
+ if(/obj/item/clothing/head/helmet/space/hardsuit/deathsquad)
name = "Trooper [real_name]"
desc = "That's not red paint. That's real corgi blood."
valid = 1
diff --git a/config/admins.txt b/config/admins.txt
index e420f765d0e..7ee8062dcb0 100644
--- a/config/admins.txt
+++ b/config/admins.txt
@@ -81,3 +81,4 @@ lo6a4evskiy = Game Master
vekter = Game Master
Ahammer18 = Game Master
ACCount12 = Game Master
+fayrik = Game Master
diff --git a/html/changelogs/Fayrik-CentcomExpansion.yml b/html/changelogs/Fayrik-CentcomExpansion.yml
new file mode 100644
index 00000000000..51c65827d62
--- /dev/null
+++ b/html/changelogs/Fayrik-CentcomExpansion.yml
@@ -0,0 +1,11 @@
+author: Fayrik
+
+delete-after: True
+
+changes:
+ - rscadd: "Abductors now get advanced camera consoles."
+ - tweak: "Redesigned Centcom again. There's a bar at the thunderdome now."
+ - rscadd: "Headsets can now be locked to a spesific frequency, this only occurs for nuke ops and deathsquads."
+ - rscadd: "The Centcom channel is now available over all z-levels, regardless of telecomms status."
+ - tweak: "The Deathsquad space suits have been upgraded to hardsuits."
+ - rscadd: "The Deathsquad now have thermal imaging huds, which can swap which hud they display on the fly."
\ No newline at end of file