diff --git a/code/__DEFINES/global.dm b/code/__DEFINES/global.dm
index 4f3c913b040..9443eda8f86 100644
--- a/code/__DEFINES/global.dm
+++ b/code/__DEFINES/global.dm
@@ -65,6 +65,8 @@ GLOBAL_LIST_EMPTY(reg_dna)
GLOBAL_DATUM(newplayer_start, /turf)
+GLOBAL_DATUM(lobby_mobs_location, /turf)
+
//Spawnpoints.
GLOBAL_LIST_EMPTY(latejoin)
GLOBAL_LIST_EMPTY(latejoin_gateway)
diff --git a/code/__DEFINES/subsystem-priority.dm b/code/__DEFINES/subsystem-priority.dm
index 25690cfd3aa..1e7ac02b016 100644
--- a/code/__DEFINES/subsystem-priority.dm
+++ b/code/__DEFINES/subsystem-priority.dm
@@ -4,37 +4,13 @@
THAT ARE PRESENT THERE
*/
-#define SS_INIT_PERSISTENT_CONFIG 26
-#define SS_INIT_MISC_FIRST 25
-#define SS_INIT_SEEDS 24 // Plant controller setup.
-#define SS_INIT_MAPLOAD 22 // DMM parsing and load. Unless you know what you're doing, make sure this remains first.
-#define SS_INIT_JOBS 21
-#define SS_INIT_MAPFINALIZE 20 // Asteroid generation.
-#define SS_INIT_PARALLAX 19 // Parallax image cache generation. Must run before ghosts are able to join
-#define SS_INIT_ATOMS 17 // World initialization. Will trigger lighting updates. Observers can join after this loads.
-#define SS_INIT_ASSETS 16 // Assets subsystem setup.
-#define SS_INIT_POWER 15 // Initial powernet build.
-#define SS_INIT_ECONOMY 14 // Cargo needs economy set up
#define SS_INIT_CARGO 13 // Random warehouse generation. Runs after SSatoms because it assumes objects are initialized when it runs.
#define SS_INIT_PIPENET 12 // Initial pipenet build.
-#define SS_INIT_MACHINERY 11 // Machinery prune and powernet build.
-#define SS_INIT_AIR 10 // Air setup and pre-bake.
#define SS_INIT_NIGHT 9 // Nightmode controller. Will trigger lighting updates.
-#define SS_INIT_SMOOTHING 8 // Object icon smoothing. Creates overlays.
-#define SS_INIT_ICON_UPDATE 7 // Icon update queue flush. Should run before overlays.
#define SS_INIT_AO 6 // Wall AO neighbour build.
-#define SS_INIT_OVERLAY 5 // Overlay flush.
-#define SS_INIT_AWAY_MAPS 4 // Note: away maps (ruins, exoplanets, ...) must initialize before ghost roles in order for their spawnpoints to work.
-#define SS_INIT_GHOSTROLES 3 // Ghost roles must initialize before SS_INIT_MISC due to some roles (matriarch drones) relying on the assumption that this SS is initialized.
-#define SS_INIT_MISC 2 // Subsystems without an explicitly set initialization order start here.
#define SS_INIT_SUNLIGHT 1 // Sunlight setup. Creates lots of lighting & SSzcopy updates.
-#define SS_INIT_LIGHTING 0 // Generation of lighting overlays and pre-bake. May cause openturf updates, should initialize before SSzcopy.
-#define SS_INIT_ZCOPY -1 // Z-mimic flush. Should run after SSoverlay & SSicon_smooth so it copies the smoothed sprites.
#define SS_INIT_XENOARCH -2 // Xenoarch is this far below because it can infinite loop if placed in SS_INIT_MISC as it was before, due to some subsystems spawning stuff there.
#define SS_INIT_HOLOMAP -4 // Minimap subsystem. Should be initialized after all maps, away sites, ships, planets, etc.
-#define SS_INIT_LOBBY -5 // Lobby timer starts here. The lobby timer won't actually start going down until the MC starts ticking, so you probably want this last
-#define SS_INIT_PING -6 // Pinger for the clients
-#define SS_INIT_CHAT -7 // To ensure chat remains smooth during init.
// Something to remember when setting priorities: SS_TICKER runs before Normal, which runs before SS_BACKGROUND.
// Each group has its own priority bracket.
@@ -58,14 +34,11 @@
#define SS_PRIORITY_TICKER 100 // Gameticker.
//#define FIRE_PRIORITY_DEFAULT 50 // This is defined somewhere else.
#define SS_PRIORITY_MOB 40 // Mob Life().
-#define SS_PRIORITY_ASSET 40 // Asset loading subsystem - not to be confused with SSassets.
#define SS_PRIORITY_AIR 40 // ZAS processing.
-#define SS_PRIORITY_CHAT 30 // Chat
#define SS_PRIORITY_STATPANELS 25 // Statpanels.
#define SS_PRIORITY_LIGHTING 25 // Queued lighting engine updates.
#define SS_PRIORITY_MACHINERY 25 // Machinery + powernet ticks.
#define SS_PRIORITY_NANOUI 25 // UI updates.
-#define SS_PRIORITY_VOTE 20
#define SS_PRIORITY_ELECTRONICS 20 // Integrated Electronics processing.
#define SS_PRIORITY_CALAMITY 20 // Singularity, Tesla, Nar'sie, blob, etc.
#define SS_PRIORITY_EVENT 20
@@ -77,7 +50,6 @@
#define SS_PRIORITY_CHEMISTRY 10 // Multi-tick chemical reactions.
#define SS_PRIORITY_SHUTTLE 10 // Shuttle movement.
#define SS_PRIORITY_AIRFLOW 10 // Handles object movement due to ZAS airflow.
-#define SS_PRIORITY_PING 10
#define SS_PRIORITY_ZCOPY 10 // Z-mimic icon generation/updates.
#define SS_PRIORITY_ARRIVALS 10 // Centcomm arrivals shuttle auto-launch. Usually asleep.
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 97b58df60e5..05dcce4f866 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -196,18 +196,47 @@
// Subsystems shutdown in the reverse of the order they initialize in
// The numbers just define the ordering, they are meaningless otherwise.
+#define INIT_ORDER_PERSISTENT_CONFIGURATION 101 //Aurora snowflake conflg handling
#define INIT_ORDER_PROFILER 101
#define INIT_ORDER_GARBAGE 99
+#define INIT_ORDER_DISCORD 78
+#define INIT_ORDER_JOBS 65 // Must init before atoms, to set up properly the dynamic job lists.
+#define INIT_ORDER_TICKER 55
+#define INIT_ORDER_SEEDS 52 // More aurora snowflake, needs to load before the atoms init as it generates images for seeds that are used
+#define INIT_ORDER_MISC_FIRST 51 //Another aurora snowflake system? Who would have guessed... Anyways, need to load before mapping or global HUDs are not ready when atoms request them
+#define INIT_ORDER_MAPPING 50 //This is the ATLAS subsystem
+#define INIT_ORDER_PARALLAX 49 // Parallax image cache generation. Must run before ghosts are able to join. Another aurora snowflake code, run after mapping or it runtimes
+#define INIT_ORDER_EARLY_ASSETS 48
#define INIT_ORDER_SPATIAL_GRID 43
+#define INIT_ORDER_ECONOMY 40
+#define INIT_ORDER_MAPFINALIZE 31 //Asteroid generation, another aurora snowflake, must run before the atoms init
+#define INIT_ORDER_ATOMS 30
+#define INIT_ORDER_MACHINES 20
+#define INIT_ORDER_DEFAULT 0
+#define INIT_ORDER_AIR -1
+#define INIT_ORDER_AWAY_MAPS -2 //Loading away sites and exoplanets, should start after air, must initialize before ghost roles in order for their spawnpoints to work
+#define INIT_ORDER_GHOSTROLES -2.1 //Ghost roles must initialize before SS_INIT_MISC due to some roles (matriarch drones) relying on the assumption that this SS is initialized.
+#define INIT_ORDER_MISC -2.2 //Aurora snowflake, Subsystems without an explicitly set initialization order start here
#define INIT_ORDER_CODEX -3 // Codex subsystem. Should be initialized after chemistry and cooking recipes.
+#define INIT_ORDER_VOTE -4
+#define INIT_ORDER_ASSETS -5
+#define INIT_ORDER_ICON_UPDATE -5.5 //Yet another aurora snowflake, Icon update queue flush. Should run before overlays, probably before smoothing the icon too
+#define INIT_ORDER_ICON_SMOOTHING -6
+#define INIT_ORDER_OVERLAY -7
+#define INIT_ORDER_LIGHTING -20
+#define INIT_ORDER_ZCOPY -21 //Aurora snowflake, Z-mimic flush. Should run after SSoverlay & SSicon_smooth so it copies the smoothed sprites.
#define INIT_ORDER_STATPANELS -97
+#define INIT_ORDER_CHAT -100 //Should be last to ensure chat remains smooth during init.
// Subsystem fire priority, from lowest to highest priority
// If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child)
+#define FIRE_PRIORITY_PING 10
#define FIRE_PRIORITY_GARBAGE 15
+#define FIRE_PRIORITY_ASSETS 20
#define FIRE_PRIORITY_DEFAULT 50
#define FIRE_PRIORITY_STATPANEL 390
+#define FIRE_PRIORITY_CHAT 400
/* AURORA SHIT */
diff --git a/code/_onclick/hud/borer_hud.dm b/code/_onclick/hud/borer_hud.dm
index 94dacd194e4..3ed2796680c 100644
--- a/code/_onclick/hud/borer_hud.dm
+++ b/code/_onclick/hud/borer_hud.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_animal/borer/instantiate_hud(var/datum/hud/HUD)
+/mob/living/simple_animal/borer/instantiate_hud(datum/hud/HUD)
HUD.borer_hud()
/datum/hud/proc/borer_hud()
diff --git a/code/_onclick/hud/captive_brain_hud.dm b/code/_onclick/hud/captive_brain_hud.dm
index 1f8922d74ce..60148589c21 100644
--- a/code/_onclick/hud/captive_brain_hud.dm
+++ b/code/_onclick/hud/captive_brain_hud.dm
@@ -1,4 +1,4 @@
-/mob/living/captive_brain/instantiate_hud(var/datum/hud/HUD)
+/mob/living/captive_brain/instantiate_hud(datum/hud/HUD)
HUD.captive_brain_hud()
/datum/hud/proc/captive_brain_hud()
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 64a20ad5629..1a2fc6eff37 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -119,12 +119,23 @@ var/list/global_huds
*/
/datum/hud
+ ///The mob that possesses the HUD
var/mob/mymob
- var/hud_shown = 1 //Used for the HUD toggle (F12)
- var/inventory_shown = 1 //the inventory
- var/show_intent_icons = 0
- var/hotkey_ui_hidden = 0 //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
+ ///Boolean, if the HUD is shown, used for the HUD toggle (F12)
+ var/hud_shown = TRUE
+
+ ///Boolean, if the inventory is shows
+ var/inventory_shown = TRUE
+
+ ///Boolean, if the intent icons are shown
+ var/show_intent_icons = FALSE
+
+ ///Boolean, this is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
+ var/hotkey_ui_hidden = FALSE
+
+ ///Boolean, if the action buttons are hidden
+ var/action_buttons_hidden = FALSE
var/obj/screen/lingchemdisplay
var/obj/screen/instability_display //Technomancer.
@@ -141,7 +152,6 @@ var/list/global_huds
var/list/obj/screen/hotkeybuttons
var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle
- var/action_buttons_hidden = 0
/datum/hud/New(mob/owner)
mymob = owner
@@ -169,7 +179,9 @@ var/list/global_huds
. = ..()
/datum/hud/proc/hidden_inventory_update()
- if(!mymob) return
+ if(!mymob)
+ return
+
if(ishuman(mymob))
var/mob/living/carbon/human/H = mymob
for(var/gear_slot in H.species.hud.gear)
@@ -289,16 +301,30 @@ var/list/global_huds
H.r_store.screen_loc = null
+/**
+ * Instantiate an HUD to the current mob that own is
+ */
/datum/hud/proc/instantiate()
- if(!ismob(mymob)) return 0
- if(!mymob.client) return 0
+ SHOULD_NOT_SLEEP(TRUE)
+ SHOULD_CALL_PARENT(FALSE)
+
+ if(!ismob(mymob))
+ stack_trace("HUD instantiation called on an HUD without a mob!")
+ return FALSE
+
+ if(!(mymob.client))
+ return FALSE
+
var/ui_style = ui_style2icon(mymob.client.prefs.UI_style)
var/ui_color = mymob.client.prefs.UI_style_color
var/ui_alpha = mymob.client.prefs.UI_style_alpha
mymob.instantiate_hud(src, ui_style, ui_color, ui_alpha)
-/mob/proc/instantiate_hud(var/datum/hud/HUD, var/ui_style, var/ui_color, var/ui_alpha)
+/mob/proc/instantiate_hud(datum/hud/HUD, ui_style, ui_color, ui_alpha)
+ SHOULD_NOT_SLEEP(TRUE)
+ SHOULD_CALL_PARENT(FALSE)
+
return
//Triggered when F12 is pressed (Unless someone changed something in the DMF)
@@ -307,16 +333,19 @@ var/list/global_huds
set hidden = 1
if(!hud_used)
- to_chat(usr, "This mob type does not use a HUD.")
+ to_chat(usr, SPAN_WARNING("This mob type does not use a HUD."))
return
if(!ishuman(src))
- to_chat(usr, "Inventory hiding is currently only supported for human mobs, sorry.")
+ to_chat(usr, SPAN_WARNING("Inventory hiding is currently only supported for human mobs."))
+ return
+
+ if(!client)
return
- if(!client) return
if(client.view != world.view)
return
+
if(hud_used.hud_shown)
hud_used.hud_shown = 0
if(src.hud_used.adding)
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index fc2bea2a221..864a28e0b63 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/human/instantiate_hud(var/datum/hud/HUD, var/ui_style, var/ui_color, var/ui_alpha)
+/mob/living/carbon/human/instantiate_hud(datum/hud/HUD, ui_style, ui_color, ui_alpha)
HUD.human_hud(ui_style, ui_color, ui_alpha, src)
/datum/hud/proc/human_hud(var/ui_style='icons/mob/screen/white.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255, var/mob/living/carbon/human/target)
diff --git a/code/_onclick/hud/morph.dm b/code/_onclick/hud/morph.dm
index 5575d74e6be..61203779f2a 100644
--- a/code/_onclick/hud/morph.dm
+++ b/code/_onclick/hud/morph.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_animal/hostile/morph/instantiate_hud(var/datum/hud/HUD)
+/mob/living/simple_animal/hostile/morph/instantiate_hud(datum/hud/HUD)
HUD.morph_hud()
/datum/hud/proc/morph_hud()
diff --git a/code/_onclick/hud/nymph_hud.dm b/code/_onclick/hud/nymph_hud.dm
index a45dd59e4a7..d2c97f00fc1 100644
--- a/code/_onclick/hud/nymph_hud.dm
+++ b/code/_onclick/hud/nymph_hud.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/alien/instantiate_hud(var/datum/hud/HUD)
+/mob/living/carbon/alien/instantiate_hud(datum/hud/HUD)
HUD.nymph_hud()
/datum/hud/proc/nymph_hud()
diff --git a/code/_onclick/hud/other_mobs.dm b/code/_onclick/hud/other_mobs.dm
index 78f53f47d43..ec8eb462ef6 100644
--- a/code/_onclick/hud/other_mobs.dm
+++ b/code/_onclick/hud/other_mobs.dm
@@ -2,16 +2,16 @@
/datum/hud/proc/unplayer_hud()
return
-/mob/abstract/observer/instantiate_hud(var/datum/hud/HUD)
+/mob/abstract/observer/instantiate_hud(datum/hud/HUD)
HUD.ghost_hud()
/datum/hud/proc/ghost_hud()
return
-/mob/living/carbon/brain/instantiate_hud(var/datum/hud/HUD)
+/mob/living/carbon/brain/instantiate_hud(datum/hud/HUD)
return
-/mob/living/silicon/ai/instantiate_hud(var/datum/hud/HUD)
+/mob/living/silicon/ai/instantiate_hud(datum/hud/HUD)
HUD.ai_hud()
/datum/hud/proc/blob_hud(ui_style = 'icons/mob/screen/midnight.dmi')
@@ -32,7 +32,7 @@
mymob.client.screen += list(blobpwrdisplay, blobhealthdisplay)
-/mob/living/carbon/slime/instantiate_hud(var/datum/hud/HUD)
+/mob/living/carbon/slime/instantiate_hud(datum/hud/HUD)
HUD.slime_hud()
/datum/hud/proc/slime_hud(ui_style = 'icons/mob/screen/midnight.dmi')
@@ -103,7 +103,7 @@
return
-/mob/living/simple_animal/construct/instantiate_hud(var/datum/hud/HUD)
+/mob/living/simple_animal/construct/instantiate_hud(datum/hud/HUD)
HUD.construct_hud()
/datum/hud/proc/construct_hud()
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index e2883576e04..c3eb5d39cba 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -1,6 +1,6 @@
var/obj/screen/robot_inventory
-/mob/living/silicon/robot/instantiate_hud(var/datum/hud/HUD)
+/mob/living/silicon/robot/instantiate_hud(datum/hud/HUD)
HUD.robot_hud()
/datum/hud/proc/robot_hud()
diff --git a/code/controllers/master/subsystem.dm b/code/controllers/master/subsystem.dm
index e51ab044d81..81251ef06ca 100644
--- a/code/controllers/master/subsystem.dm
+++ b/code/controllers/master/subsystem.dm
@@ -7,7 +7,7 @@
name = "fire coderbus"
/// Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.
- var/init_order = SS_INIT_MISC
+ var/init_order = INIT_ORDER_DEFAULT
/// Time to wait (in deciseconds) between each call to fire(). Must be a positive integer.
var/wait = 20
diff --git a/code/controllers/subsystems/air.dm b/code/controllers/subsystems/air.dm
index a362f2b6720..402b1e8371e 100644
--- a/code/controllers/subsystems/air.dm
+++ b/code/controllers/subsystems/air.dm
@@ -64,7 +64,7 @@ Class Procs:
SUBSYSTEM_DEF(air)
name = "Air"
priority = SS_PRIORITY_AIR
- init_order = SS_INIT_AIR
+ init_order = INIT_ORDER_AIR
flags = SS_POST_FIRE_TIMING
runlevels = RUNLEVELS_PLAYING
diff --git a/code/controllers/subsystems/alarm.dm b/code/controllers/subsystems/alarm.dm
index 5c510f64c57..fc267e44357 100644
--- a/code/controllers/subsystems/alarm.dm
+++ b/code/controllers/subsystems/alarm.dm
@@ -6,7 +6,7 @@
SUBSYSTEM_DEF(alarm)
name = "Alarms"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
priority = SS_PRIORITY_ALARMS
runlevels = RUNLEVELS_PLAYING
diff --git a/code/controllers/subsystems/asset_loading.dm b/code/controllers/subsystems/asset_loading.dm
index dc7e1ba3734..2d2939de4b2 100644
--- a/code/controllers/subsystems/asset_loading.dm
+++ b/code/controllers/subsystems/asset_loading.dm
@@ -3,7 +3,7 @@
/// So this just serves to remove the requirement to load assets fully during init
SUBSYSTEM_DEF(asset_loading)
name = "Asset Loading"
- priority = SS_PRIORITY_ASSET
+ priority = FIRE_PRIORITY_ASSETS
flags = SS_NO_INIT
runlevels = RUNLEVEL_LOBBY|RUNLEVELS_DEFAULT
var/list/datum/asset/generate_queue = list()
diff --git a/code/controllers/subsystems/assets.dm b/code/controllers/subsystems/assets.dm
index d8f6095a339..70c49640a90 100644
--- a/code/controllers/subsystems/assets.dm
+++ b/code/controllers/subsystems/assets.dm
@@ -1,27 +1,27 @@
SUBSYSTEM_DEF(assets)
name = "Assets"
- init_order = SS_INIT_ASSETS
+ init_order = INIT_ORDER_ASSETS
flags = SS_NO_FIRE
- runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
var/list/datum/asset_cache_item/cache = list()
var/list/preload = list()
var/datum/asset_transport/transport = new()
-/datum/controller/subsystem/assets/Initialize()
+/datum/controller/subsystem/assets/OnConfigLoad()
var/newtransporttype = /datum/asset_transport
switch (GLOB.config.asset_transport)
if ("webroot")
newtransporttype = /datum/asset_transport/webroot
if (newtransporttype == transport.type)
- return SS_INIT_SUCCESS
+ return
var/datum/asset_transport/newtransport = new newtransporttype ()
if (newtransport.validate_config())
transport = newtransport
-
transport.Load()
+
+/datum/controller/subsystem/assets/Initialize()
for(var/type in typesof(/datum/asset))
var/datum/asset/A = type
if (type != initial(A._abstract))
diff --git a/code/controllers/subsystems/battle_monsters.dm b/code/controllers/subsystems/battle_monsters.dm
index a8494b2860c..a9914ecae16 100644
--- a/code/controllers/subsystems/battle_monsters.dm
+++ b/code/controllers/subsystems/battle_monsters.dm
@@ -6,7 +6,7 @@
SUBSYSTEM_DEF(battle_monsters)
name = "Battle Monsters"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
var/list/monster_elements
diff --git a/code/controllers/subsystems/chat.dm b/code/controllers/subsystems/chat.dm
index f4219b98b1d..d76ce698d6f 100644
--- a/code/controllers/subsystems/chat.dm
+++ b/code/controllers/subsystems/chat.dm
@@ -9,8 +9,8 @@ SUBSYSTEM_DEF(chat)
name = "Chat"
flags = SS_TICKER | SS_NO_INIT
wait = 1
- priority = SS_PRIORITY_CHAT
- init_order = SS_INIT_CHAT
+ priority = FIRE_PRIORITY_CHAT
+ init_order = INIT_ORDER_CHAT
var/list/payload_by_client = list()
diff --git a/code/controllers/subsystems/chemistry.dm b/code/controllers/subsystems/chemistry.dm
index 4b347f09563..3dbcb08ff52 100644
--- a/code/controllers/subsystems/chemistry.dm
+++ b/code/controllers/subsystems/chemistry.dm
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(chemistry)
name = "Chemistry"
priority = SS_PRIORITY_CHEMISTRY
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
runlevels = RUNLEVELS_PLAYING
init_stage = INITSTAGE_EARLY
diff --git a/code/controllers/subsystems/discord.dm b/code/controllers/subsystems/discord.dm
index fe31ee3654b..2190767bc8f 100644
--- a/code/controllers/subsystems/discord.dm
+++ b/code/controllers/subsystems/discord.dm
@@ -16,7 +16,7 @@
SUBSYSTEM_DEF(discord)
name = "Discord"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_DISCORD
flags = SS_NO_FIRE | SS_NO_DISPLAY
var/list/channels_to_group = list() // Group flag -> list of channel datums map.
diff --git a/code/controllers/subsystems/documents.dm b/code/controllers/subsystems/documents.dm
index da497a10ed9..18892849291 100644
--- a/code/controllers/subsystems/documents.dm
+++ b/code/controllers/subsystems/documents.dm
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(docs)
name = "Documents"
wait = 30 SECONDS
flags = SS_NO_FIRE
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
var/total_docs = 0
var/list/docs = list()
diff --git a/code/controllers/subsystems/economy.dm b/code/controllers/subsystems/economy.dm
index 627af979c19..2b49f579e95 100644
--- a/code/controllers/subsystems/economy.dm
+++ b/code/controllers/subsystems/economy.dm
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(economy)
name = "Economy"
wait = 30 SECONDS
flags = SS_NO_FIRE
- init_order = SS_INIT_ECONOMY
+ init_order = INIT_ORDER_ECONOMY
var/datum/money_account/station_account
var/list/department_accounts = list()
var/list/all_money_accounts = list()
diff --git a/code/controllers/subsystems/fail2topic.dm b/code/controllers/subsystems/fail2topic.dm
index 32d13282bde..e1e0f9769fb 100644
--- a/code/controllers/subsystems/fail2topic.dm
+++ b/code/controllers/subsystems/fail2topic.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(fail2topic)
name = "Fail2Topic"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_BACKGROUND
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY | RUNLEVEL_INIT
diff --git a/code/controllers/subsystems/ghostroles.dm b/code/controllers/subsystems/ghostroles.dm
index 793d6b7d2cf..25258cce46f 100644
--- a/code/controllers/subsystems/ghostroles.dm
+++ b/code/controllers/subsystems/ghostroles.dm
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(ghostroles)
name = "Ghost Roles"
flags = SS_NO_FIRE
- init_order = SS_INIT_GHOSTROLES
+ init_order = INIT_ORDER_GHOSTROLES
var/list/spawnpoints = list() //List of the available spawnpoints by spawnpoint type
// -> type 1 -> spawnpoint 1
diff --git a/code/controllers/subsystems/icon_cache.dm b/code/controllers/subsystems/icon_cache.dm
index 8fc73db376f..e2289dcb4e2 100644
--- a/code/controllers/subsystems/icon_cache.dm
+++ b/code/controllers/subsystems/icon_cache.dm
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(icon_cache)
name = "Icon Cache"
flags = SS_NO_FIRE
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
// Cached bloody overlays, key is object type.
var/list/bloody_cache = list()
diff --git a/code/controllers/subsystems/icon_smooth.dm b/code/controllers/subsystems/icon_smooth.dm
index 43e2e3fc689..e548dba08cc 100644
--- a/code/controllers/subsystems/icon_smooth.dm
+++ b/code/controllers/subsystems/icon_smooth.dm
@@ -17,7 +17,7 @@
SUBSYSTEM_DEF(icon_smooth)
name = "Icon Smoothing"
- init_order = SS_INIT_SMOOTHING
+ init_order = INIT_ORDER_ICON_SMOOTHING
wait = 1
priority = SS_PRIORITY_SMOOTHING
flags = SS_TICKER
diff --git a/code/controllers/subsystems/icon_updates.dm b/code/controllers/subsystems/icon_updates.dm
index 8af3dbced20..6bc56161f48 100644
--- a/code/controllers/subsystems/icon_updates.dm
+++ b/code/controllers/subsystems/icon_updates.dm
@@ -3,7 +3,7 @@ SUBSYSTEM_DEF(icon_update)
wait = 1 // ticks
flags = SS_TICKER
priority = SS_PRIORITY_ICON_UPDATE
- init_order = SS_INIT_ICON_UPDATE
+ init_order = INIT_ORDER_ICON_UPDATE
/**
* Associative list of atoms -> callback params
diff --git a/code/controllers/subsystems/initialization/atlas.dm b/code/controllers/subsystems/initialization/atlas.dm
index 2e29c597a83..c6168221d2e 100644
--- a/code/controllers/subsystems/initialization/atlas.dm
+++ b/code/controllers/subsystems/initialization/atlas.dm
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(atlas)
name = "Atlas"
flags = SS_NO_FIRE
- init_order = SS_INIT_MAPLOAD
+ init_order = INIT_ORDER_MAPPING
init_stage = INITSTAGE_EARLY
// Whatever map is currently loaded. Null until SSatlas Initialize() starts.
diff --git a/code/controllers/subsystems/initialization/atoms.dm b/code/controllers/subsystems/initialization/atoms.dm
index 7ac876a252d..a3f8a0c2b45 100644
--- a/code/controllers/subsystems/initialization/atoms.dm
+++ b/code/controllers/subsystems/initialization/atoms.dm
@@ -1,7 +1,7 @@
#define SUBSYSTEM_INIT_SOURCE "subsystem init"
SUBSYSTEM_DEF(atoms)
name = "Atoms"
- init_order = SS_INIT_ATOMS
+ init_order = INIT_ORDER_ATOMS
flags = SS_NO_FIRE
/// A stack of list(source, desired initialized state)
diff --git a/code/controllers/subsystems/initialization/map_finalization.dm b/code/controllers/subsystems/initialization/map_finalization.dm
index c5c854ac138..619921acabf 100644
--- a/code/controllers/subsystems/initialization/map_finalization.dm
+++ b/code/controllers/subsystems/initialization/map_finalization.dm
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(finalize)
name = "Map Finalization"
flags = SS_NO_FIRE | SS_NO_DISPLAY
- init_order = SS_INIT_MAPFINALIZE
+ init_order = INIT_ORDER_MAPFINALIZE
var/dmm_suite/maploader
var/datum/away_mission/selected_mission
diff --git a/code/controllers/subsystems/initialization/misc_early.dm b/code/controllers/subsystems/initialization/misc_early.dm
index 37b524e67be..84af95b973a 100644
--- a/code/controllers/subsystems/initialization/misc_early.dm
+++ b/code/controllers/subsystems/initialization/misc_early.dm
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(misc_early)
name = "Early Miscellaneous Init"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE | SS_NO_DISPLAY
/datum/controller/subsystem/misc_early/Initialize(timeofday)
diff --git a/code/controllers/subsystems/initialization/misc_late.dm b/code/controllers/subsystems/initialization/misc_late.dm
index 3c4f51ff763..12e1a4fc810 100644
--- a/code/controllers/subsystems/initialization/misc_late.dm
+++ b/code/controllers/subsystems/initialization/misc_late.dm
@@ -2,7 +2,7 @@
SUBSYSTEM_DEF(misc_late)
name = "Late Miscellaneous Init"
- init_order = SS_INIT_MISC
+ init_order = INIT_ORDER_MISC
flags = SS_NO_FIRE | SS_NO_DISPLAY
/// this is a list of things that fire when late misc init is called
diff --git a/code/controllers/subsystems/initialization/persistent_configuration.dm b/code/controllers/subsystems/initialization/persistent_configuration.dm
index b331bab012a..7a9068690ac 100644
--- a/code/controllers/subsystems/initialization/persistent_configuration.dm
+++ b/code/controllers/subsystems/initialization/persistent_configuration.dm
@@ -1,6 +1,7 @@
SUBSYSTEM_DEF(persistent_configuration)
name = "Persistent Configuration"
- init_order = SS_INIT_PERSISTENT_CONFIG
+ init_order = INIT_ORDER_PERSISTENT_CONFIGURATION
+ init_stage = INITSTAGE_EARLY
flags = SS_NO_FIRE
// Config options go here. Make sure to give them sane default values!
diff --git a/code/controllers/subsystems/ipintel.dm b/code/controllers/subsystems/ipintel.dm
index 480f9931370..47b88153f48 100644
--- a/code/controllers/subsystems/ipintel.dm
+++ b/code/controllers/subsystems/ipintel.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(ipintel)
name = "XKeyScore"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
var/enabled = FALSE //disable at round start to avoid checking reconnects
var/throttle = 0
diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm
index a746e1b7d94..0676e7a3438 100644
--- a/code/controllers/subsystems/job.dm
+++ b/code/controllers/subsystems/job.dm
@@ -4,7 +4,7 @@ SUBSYSTEM_DEF(jobs)
// Subsystem stuff.
name = "Jobs"
flags = SS_NO_FIRE
- init_order = SS_INIT_JOBS
+ init_order = INIT_ORDER_JOBS
// Vars.
var/list/datum/job/occupations = list()
diff --git a/code/controllers/subsystems/lighting.dm b/code/controllers/subsystems/lighting.dm
index 42b462d64a6..f8aa2f73890 100644
--- a/code/controllers/subsystems/lighting.dm
+++ b/code/controllers/subsystems/lighting.dm
@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(lighting)
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
priority = SS_PRIORITY_LIGHTING
- init_order = SS_INIT_LIGHTING
+ init_order = INIT_ORDER_LIGHTING
var/total_lighting_overlays = 0
var/total_lighting_sources = 0
diff --git a/code/controllers/subsystems/machinery.dm b/code/controllers/subsystems/machinery.dm
index 9342f1c53ed..9ec5eeb53f8 100644
--- a/code/controllers/subsystems/machinery.dm
+++ b/code/controllers/subsystems/machinery.dm
@@ -36,7 +36,7 @@ if(Datum.isprocessing) {\
SUBSYSTEM_DEF(machinery)
name = "Machinery"
priority = SS_PRIORITY_MACHINERY
- init_order = SS_INIT_MACHINERY
+ init_order = INIT_ORDER_MACHINES
flags = SS_POST_FIRE_TIMING
wait = 2 SECONDS
diff --git a/code/controllers/subsystems/mapping.dm b/code/controllers/subsystems/mapping.dm
index 3caae18e45f..9a87b21fcf9 100644
--- a/code/controllers/subsystems/mapping.dm
+++ b/code/controllers/subsystems/mapping.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(mapping)
name = "Mapping"
- init_order = SS_INIT_AWAY_MAPS
+ init_order = INIT_ORDER_AWAY_MAPS
flags = SS_NO_FIRE
var/list/map_templates = list()
diff --git a/code/controllers/subsystems/materials.dm b/code/controllers/subsystems/materials.dm
index b4dc080ec32..aa6aabd1271 100644
--- a/code/controllers/subsystems/materials.dm
+++ b/code/controllers/subsystems/materials.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(materials)
name = "Materials"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
var/list/materials
diff --git a/code/controllers/subsystems/mob.dm b/code/controllers/subsystems/mob.dm
index 6a1e50e7a1e..8b016fcbb29 100644
--- a/code/controllers/subsystems/mob.dm
+++ b/code/controllers/subsystems/mob.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(mobs)
name = "Mobs - Life"
- init_order = SS_INIT_MISC // doesn't really matter when we init
+ init_order = INIT_ORDER_MISC // doesn't really matter when we init
priority = SS_PRIORITY_MOB
runlevels = RUNLEVELS_PLAYING
diff --git a/code/controllers/subsystems/overlays.dm b/code/controllers/subsystems/overlays.dm
index e7f605e0832..760861a1860 100644
--- a/code/controllers/subsystems/overlays.dm
+++ b/code/controllers/subsystems/overlays.dm
@@ -4,7 +4,7 @@ SUBSYSTEM_DEF(overlays)
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
wait = 1
priority = SS_PRIORITY_OVERLAY
- init_order = SS_INIT_OVERLAY
+ init_order = INIT_ORDER_OVERLAY
var/list/processing = list()
diff --git a/code/controllers/subsystems/pai.dm b/code/controllers/subsystems/pai.dm
index add006fd254..db7bf4f11bf 100644
--- a/code/controllers/subsystems/pai.dm
+++ b/code/controllers/subsystems/pai.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(pai)
name = "pAI"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE | SS_NO_INIT
var/list/pai_software_by_key
diff --git a/code/controllers/subsystems/ping.dm b/code/controllers/subsystems/ping.dm
index c4c3b56fd55..73db9940f2d 100644
--- a/code/controllers/subsystems/ping.dm
+++ b/code/controllers/subsystems/ping.dm
@@ -1,12 +1,10 @@
SUBSYSTEM_DEF(ping)
name = "Ping"
- priority = SS_PRIORITY_PING
- init_order = SS_INIT_PING
+ priority = FIRE_PRIORITY_PING
+ init_stage = INITSTAGE_EARLY
wait = 4 SECONDS
flags = SS_NO_INIT
- runlevels = RUNLEVEL_INIT | RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME
- init_stage = INITSTAGE_EARLY
-
+ runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/list/currentrun = list()
/datum/controller/subsystem/ping/stat_entry(msg)
diff --git a/code/controllers/subsystems/plants.dm b/code/controllers/subsystems/plants.dm
index 286fdb2e7ab..5642d2b221a 100644
--- a/code/controllers/subsystems/plants.dm
+++ b/code/controllers/subsystems/plants.dm
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(plants)
name = "Seeds & Plants"
flags = 0 // Override parent's flags.
wait = 75
- init_order = SS_INIT_SEEDS
+ init_order = INIT_ORDER_SEEDS
priority = SS_PRIORITY_PLANTS
runlevels = RUNLEVELS_PLAYING
diff --git a/code/controllers/subsystems/processing/electronics.dm b/code/controllers/subsystems/processing/electronics.dm
index 629d1f7394d..c09b0704d05 100644
--- a/code/controllers/subsystems/processing/electronics.dm
+++ b/code/controllers/subsystems/processing/electronics.dm
@@ -6,7 +6,7 @@ PROCESSING_SUBSYSTEM_DEF(electronics)
wait = 2 SECONDS
priority = SS_PRIORITY_ELECTRONICS
flags = SS_KEEP_TIMING
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
var/list/all_integrated_circuits = list()
var/list/printer_recipe_list = list()
diff --git a/code/controllers/subsystems/processing/ntsl2.dm b/code/controllers/subsystems/processing/ntsl2.dm
index a9f17ae11d5..7516c1d5e52 100644
--- a/code/controllers/subsystems/processing/ntsl2.dm
+++ b/code/controllers/subsystems/processing/ntsl2.dm
@@ -4,7 +4,7 @@ NTSL2 deamon management subsystem, responsible for handling events from deamon a
PROCESSING_SUBSYSTEM_DEF(ntsl2)
name = "NTSL2"
flags = 0
- init_order = SS_INIT_MISC
+ init_order = INIT_ORDER_MISC
// priority = SS_PRIORITY_PROCESSING
var/connected = FALSE
var/list/programs = list()
diff --git a/code/controllers/subsystems/processing/shuttle.dm b/code/controllers/subsystems/processing/shuttle.dm
index 65c879ed724..52f2d16ba84 100644
--- a/code/controllers/subsystems/processing/shuttle.dm
+++ b/code/controllers/subsystems/processing/shuttle.dm
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(shuttle)
name = "Shuttle"
wait = 2 SECONDS
priority = SS_PRIORITY_SHUTTLE
- init_order = SS_INIT_MISC //Should be initialized after all maploading is over and atoms are initialized, to ensure that landmarks have been initialized.
+ init_order = INIT_ORDER_MISC //Should be initialized after all maploading is over and atoms are initialized, to ensure that landmarks have been initialized.
var/overmap_halted = FALSE //Whether ships can move on the overmap; used for adminbus.
var/list/ships = list() //List of all ships.
diff --git a/code/controllers/subsystems/skybox.dm b/code/controllers/subsystems/skybox.dm
index 53380d2f025..16c5c7e6e1e 100644
--- a/code/controllers/subsystems/skybox.dm
+++ b/code/controllers/subsystems/skybox.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(skybox)
name = "Space skybox"
- init_order = SS_INIT_PARALLAX
+ init_order = INIT_ORDER_PARALLAX
flags = SS_NO_FIRE
var/background_color
var/skybox_icon = 'icons/skybox/skybox.dmi' //Path to our background. Lets us use anything we damn well please. Skyboxes need to be 736x736
diff --git a/code/controllers/subsystems/stickyban.dm b/code/controllers/subsystems/stickyban.dm
index 71ded5ce28e..82388bc0291 100644
--- a/code/controllers/subsystems/stickyban.dm
+++ b/code/controllers/subsystems/stickyban.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(stickyban)
name = "PRISM"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
var/list/cache = list()
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 170b868d1be..19952954b55 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -12,7 +12,7 @@ var/datum/controller/subsystem/ticker/SSticker
priority = SS_PRIORITY_TICKER
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
- init_order = SS_INIT_LOBBY
+ init_order = INIT_ORDER_TICKER
wait = 1 SECOND
diff --git a/code/controllers/subsystems/virtual_reality.dm b/code/controllers/subsystems/virtual_reality.dm
index 3d67be494d9..33dd447bbba 100644
--- a/code/controllers/subsystems/virtual_reality.dm
+++ b/code/controllers/subsystems/virtual_reality.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(virtualreality)
name = "Virtual Reality"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
// MECHA
diff --git a/code/controllers/subsystems/vote.dm b/code/controllers/subsystems/vote.dm
index 2aeab72dde9..7e460fb600b 100644
--- a/code/controllers/subsystems/vote.dm
+++ b/code/controllers/subsystems/vote.dm
@@ -1,9 +1,9 @@
SUBSYSTEM_DEF(vote)
name = "Voting"
wait = 1 SECOND
- flags = SS_KEEP_TIMING | SS_KEEP_TIMING
- runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
- priority = SS_PRIORITY_VOTE
+ flags = SS_KEEP_TIMING
+ init_order = INIT_ORDER_VOTE
+ runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/next_transfer_time
diff --git a/code/controllers/subsystems/zcopy.dm b/code/controllers/subsystems/zcopy.dm
index b2e242fceb4..3670eea3209 100644
--- a/code/controllers/subsystems/zcopy.dm
+++ b/code/controllers/subsystems/zcopy.dm
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(zcopy)
name = "Z-Copy"
wait = 1
- init_order = SS_INIT_ZCOPY
+ init_order = INIT_ORDER_ZCOPY
priority = SS_PRIORITY_ZCOPY
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index fe94701c8e9..92663795bee 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -108,6 +108,26 @@
return 1
+/obj/effect/landmark/lobby_mobs_location
+ name = "lobby_mobs_location"
+ anchored = TRUE
+ invisibility = 101
+
+INITIALIZE_IMMEDIATE(/obj/effect/landmark/lobby_mobs_location)
+
+/obj/effect/landmark/lobby_mobs_location/Initialize()
+ ..()
+
+ if(GLOB.lobby_mobs_location)
+ crash_with("There must be one, and only one, /obj/effect/landmark/lobby_mobs_location effect in any single server session!")
+
+ else
+ GLOB.lobby_mobs_location = get_turf(src)
+ ASSERT(istype(GLOB.lobby_mobs_location, /turf))
+
+ return INITIALIZE_HINT_QDEL
+
+
//Costume spawner landmarks
/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 7c8c0c554a3..c7b34dd7754 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -493,6 +493,8 @@ var/list/admin_verbs_cciaa = list(
)
/client/proc/add_admin_verbs()
+ SHOULD_NOT_SLEEP(TRUE)
+
if(holder)
add_verb(src, admin_verbs_default)
if(holder.rights & R_BUILDMODE) add_verb(src, /client/proc/togglebuildmodeself)
diff --git a/code/modules/admin/verbs/warning.dm b/code/modules/admin/verbs/warning.dm
index 498cc1316b1..64b8023ccb5 100644
--- a/code/modules/admin/verbs/warning.dm
+++ b/code/modules/admin/verbs/warning.dm
@@ -272,10 +272,12 @@
return data
-/*
+/**
* A proc used to gather if someone has Unacknowledged Warnings
*/
/client/proc/fetch_unacked_warning_count()
+ SHOULD_NOT_SLEEP(TRUE)
+
if (!GLOB.dbcon)
return
if (!establish_db_connection(GLOB.dbcon))
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 86bdd3ebd68..68dabd008b4 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -398,23 +398,32 @@ var/list/localhost_addresses = list(
src.InitPrefs()
mob.LateLogin()
- /// This spawn is the only thing keeping the stat panels and chat working. By removing this spawn, there will be black screens when loading the game.
- /// It seems to be affected by the order of statpanel init: if it happens before send_resources(), then the statpanels won't load, but the game won't
- /// blackscreen.
- spawn(0)
- // Initialize stat panel
- stat_panel.initialize(
- inline_html = file("html/statbrowser.html"),
- inline_js = file("html/statbrowser.js"),
- inline_css = file("html/statbrowser.css"),
- )
- addtimer(CALLBACK(src, PROC_REF(check_panel_loaded)), 30 SECONDS)
+ // Initialize stat panel
+ stat_panel.initialize(
+ inline_html = file("html/statbrowser.html"),
+ inline_js = file("html/statbrowser.js"),
+ inline_css = file("html/statbrowser.css"),
+ )
+ addtimer(CALLBACK(src, PROC_REF(check_panel_loaded)), 30 SECONDS)
// Initialize tgui panel
tgui_panel.initialize()
+
tgui_say.initialize()
+ // Forcibly enable hardware-accelerated graphics, as we need them for the lighting overlays.
+ winset(src, null, "command=\".configure graphics-hwmode on\"")
+
+ send_resources()
+
+ if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them.
+ to_chat(src, SPAN_WARNING("Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you."))
+
+ Master.UpdateTickRate()
+
/client/proc/InitPrefs()
+ SHOULD_NOT_SLEEP(TRUE)
+
//preferences datum - also holds some persistant data for the client (because we may as well keep these datums to a minimum)
prefs = preferences_datums[ckey]
if(!prefs)
@@ -432,7 +441,9 @@ var/list/localhost_addresses = list(
toggle_fullscreen(TRUE)
/client/proc/InitClient()
- to_chat(src, "If the title screen is black, resources are still downloading. Please be patient until the title screen appears.")
+ SHOULD_NOT_SLEEP(TRUE)
+
+ to_chat_immediate(src, SPAN_ALERT("If the title screen is black, resources are still downloading. Please be patient until the title screen appears."))
var/local_connection = (GLOB.config.auto_local_admin && !GLOB.config.use_forumuser_api && (isnull(address) || localhost_addresses[address]))
// Automatic admin rights for people connecting locally.
@@ -450,13 +461,13 @@ var/list/localhost_addresses = list(
log_client_to_db()
if (byond_version < GLOB.config.client_error_version)
- to_chat(src, "Your version of BYOND is too old!")
- to_chat(src, GLOB.config.client_error_message)
- to_chat(src, "Your version: [byond_version].")
- to_chat(src, "Required version: [GLOB.config.client_error_version] or later.")
- to_chat(src, "Visit http://www.byond.com/download/ to get the latest version of BYOND.")
+ to_chat_immediate(src, "Your version of BYOND is too old!")
+ to_chat_immediate(src, GLOB.config.client_error_message)
+ to_chat_immediate(src, "Your version: [byond_version].")
+ to_chat_immediate(src, "Required version: [GLOB.config.client_error_version] or later.")
+ to_chat_immediate(src, "Visit http://www.byond.com/download/ to get the latest version of BYOND.")
if (holder)
- to_chat(src, "Admins get a free pass. However, please update your BYOND as soon as possible. Certain things may cause crashes if you play with your present version.")
+ to_chat_immediate(src, "Admins get a free pass. However, please update your BYOND as soon as possible. Certain things may cause crashes if you play with your present version.")
else
log_access("Failed Login: [key] [computer_id] [address] - Outdated BYOND major version: [byond_version].")
del(src)
@@ -467,7 +478,7 @@ var/list/localhost_addresses = list(
if (GLOB.config.access_deny_new_players && player_age == -1)
log_access("Failed Login: [key] [computer_id] [address] - New player attempting connection during panic bunker.", ckey = ckey)
message_admins("Failed Login: [key] [computer_id] [address] - New player attempting connection during panic bunker.")
- to_chat(src, "Apologies, but the server is currently not accepting connections from never before seen players.")
+ to_chat_immediate(src, "Apologies, but the server is currently not accepting connections from never before seen players.")
del(src)
return 0
@@ -475,7 +486,7 @@ var/list/localhost_addresses = list(
if (GLOB.config.access_deny_new_accounts != -1 && account_age != -1 && account_age <= GLOB.config.access_deny_new_accounts)
log_access("Failed Login: [key] [computer_id] [address] - Account too young to play. [account_age] days.", ckey = ckey)
message_admins("Failed Login: [key] [computer_id] [address] - Account too young to play. [account_age] days.")
- to_chat(src, "Apologies, but the server is currently not accepting connections from BYOND accounts this young.")
+ to_chat_immediate(src, "Apologies, but the server is currently not accepting connections from BYOND accounts this young.")
del(src)
return 0
@@ -485,11 +496,6 @@ var/list/localhost_addresses = list(
if(holder)
add_admin_verbs()
- // Forcibly enable hardware-accelerated graphics, as we need them for the lighting overlays.
- winset(src, null, "command=\".configure graphics-hwmode on\"")
-
- send_resources()
-
check_ip_intel()
fetch_unacked_warning_count()
@@ -500,14 +506,30 @@ var/list/localhost_addresses = list(
//DISCONNECT//
//////////////
/client/Del()
+ if(!gc_destroyed)
+ gc_destroyed = world.time
+ if (!QDELING(src))
+ stack_trace("Client does not purport to be QDELING, this is going to cause bugs in other places!")
+
+ Destroy()
+ return ..()
+
+/client/Destroy(force)
GLOB.ticket_panels -= src
- if(holder)
- holder.owner = null
GLOB.staff -= src
GLOB.directory -= ckey
GLOB.clients -= src
- return ..()
+ if(holder)
+ holder.owner = null
+ GLOB.staff -= src
+ SSping.currentrun -= src
+
+ QDEL_NULL(tooltips)
+
+ Master.UpdateTickRate()
+ ..() //Even though we're going to be hard deleted there are still some things that want to know the destroy is happening
+ return QDEL_HINT_HARDDEL_NOW
// here because it's similar to below
@@ -526,6 +548,8 @@ var/list/localhost_addresses = list(
return -1
/client/proc/log_client_to_db()
+ set waitfor = FALSE
+
if (IsGuestKey(src.key))
return
diff --git a/code/modules/effects/map_effects/window_spawner.dm b/code/modules/effects/map_effects/window_spawner.dm
index f303a818ee5..049bf4a1345 100644
--- a/code/modules/effects/map_effects/window_spawner.dm
+++ b/code/modules/effects/map_effects/window_spawner.dm
@@ -13,6 +13,7 @@
var/spawn_grille = FALSE // For electrified windows.
var/spawn_firedoor = FALSE
var/activated
+ atmos_canpass = CANPASS_NEVER
/obj/effect/map_effect/window_spawner/CanPass() // Stops ZAS expanding zones past us, the windows will block the zone anyway.
return FALSE
diff --git a/code/modules/mob/abstract/new_player/login.dm b/code/modules/mob/abstract/new_player/login.dm
index 81727ed2686..e357ce8d237 100644
--- a/code/modules/mob/abstract/new_player/login.dm
+++ b/code/modules/mob/abstract/new_player/login.dm
@@ -13,10 +13,8 @@
mind.active = 1
mind.current = src
- loc = null
-
my_client = client
- set_sight(sight|SEE_TURFS)
+ set_sight(BLIND)
GLOB.player_list |= src
client.playtitlemusic()
diff --git a/code/modules/mob/abstract/new_player/menu.dm b/code/modules/mob/abstract/new_player/menu.dm
index d26c90929e3..5eba562c651 100644
--- a/code/modules/mob/abstract/new_player/menu.dm
+++ b/code/modules/mob/abstract/new_player/menu.dm
@@ -1,7 +1,7 @@
//MENU SYSTEM BY BIGRAGE, some awful code, some awful design, all as you love //Code edits/additions by AshtonFox
/mob/abstract/new_player/instantiate_hud(datum/hud/HUD, ui_style, ui_color, ui_alpha)
- HUD.new_player_hud(ui_style, ui_color, ui_alpha)
HUD.mymob = src
+ HUD.new_player_hud(ui_style, ui_color, ui_alpha)
/datum/hud/new_player
hud_shown = TRUE
@@ -9,6 +9,8 @@
hotkey_ui_hidden = FALSE
/datum/hud/proc/new_player_hud(var/ui_style='icons/mob/screen/white.dmi', var/ui_color = "#fffffe", var/ui_alpha = 255)
+ SHOULD_NOT_SLEEP(TRUE)
+
adding = list()
var/obj/screen/using
@@ -107,7 +109,9 @@
return
/obj/screen/new_player/title/proc/Update()
- if(QDELING(src))
+ SHOULD_NOT_SLEEP(TRUE)
+
+ if(QDELETED(src))
return
if(!SSatlas.current_map.lobby_transitions && SSatlas.current_sector.sector_lobby_transitions)
@@ -119,17 +123,13 @@
lobby_index = 1
animate(src, alpha = 0, time = 1 SECOND)
animate(alpha = 255, icon_state = SSatlas.current_map.lobby_screens[lobby_index], time = 1 SECOND)
- if(!MC_RUNNING())
- spawn(SSatlas.current_map.lobby_transitions)
- Update()
- else
- refresh_timer_id = addtimer(CALLBACK(src, PROC_REF(Update)), SSatlas.current_map.lobby_transitions, TIMER_UNIQUE | TIMER_CLIENT_TIME | TIMER_OVERRIDE | TIMER_STOPPABLE)
+ refresh_timer_id = addtimer(CALLBACK(src, PROC_REF(Update)), SSatlas.current_map.lobby_transitions, TIMER_UNIQUE | TIMER_CLIENT_TIME | TIMER_OVERRIDE | TIMER_STOPPABLE)
/obj/screen/new_player/selection
var/click_sound = 'sound/effects/menu_click.ogg'
var/hud_arrow
-/obj/screen/new_player/selection/New(var/datum/hud/H)
+/obj/screen/new_player/selection/New(datum/hud/H)
color = null
hud = H
..()
@@ -138,6 +138,10 @@
. = ..()
set_sector_things()
+/obj/screen/new_player/selection/Destroy(force)
+ hud = null
+ . = ..()
+
/obj/screen/new_player/selection/set_sector_things()
. = ..()
if(SSatlas.current_sector.sector_hud_menu_sound)
diff --git a/code/modules/mob/abstract/new_player/new_player.dm b/code/modules/mob/abstract/new_player/new_player.dm
index 134502266d8..3aec41f6baf 100644
--- a/code/modules/mob/abstract/new_player/new_player.dm
+++ b/code/modules/mob/abstract/new_player/new_player.dm
@@ -19,9 +19,23 @@
INITIALIZE_IMMEDIATE(/mob/abstract/new_player)
-/mob/abstract/new_player/Initialize()
+/mob/abstract/new_player/Initialize(mapload)
. = ..()
GLOB.dead_mob_list -= src
+ attempt_moving_new_player_on_marker_turf()
+
+/mob/abstract/new_player/proc/attempt_moving_new_player_on_marker_turf()
+ //If it's set, move the new_player mob to it, otherwise reschedule to check in a bit
+ if(istype(GLOB.lobby_mobs_location))
+ src.forceMove(GLOB.lobby_mobs_location)
+
+ else
+ //Atoms loading have finished supposedly, there should be a marker down for this, if not found throw a stack trace
+ if(SSATOMS_IS_PROBABLY_DONE)
+ stack_trace("The map is supposedly loaded, but GLOB.lobby_mobs_location is not set, unable to move the lobby mob!")
+ return
+
+ addtimer(CALLBACK(src, PROC_REF(attempt_moving_new_player_on_marker_turf)), 5 SECONDS)
/mob/abstract/new_player/Destroy()
QDEL_NULL(late_choices_ui)
diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm
index f78a2967969..1a9f6f3475f 100644
--- a/code/modules/mob/login.dm
+++ b/code/modules/mob/login.dm
@@ -54,6 +54,7 @@
* ckey.
*/
/mob/proc/LateLogin()
+ SHOULD_NOT_SLEEP(TRUE)
SHOULD_CALL_PARENT(TRUE)
SEND_SIGNAL(src, COMSIG_MOB_LOGIN)
@@ -103,7 +104,5 @@
// Check code/modules/admin/verbs/antag-ooc.dm for definition
client.add_aooc_if_necessary()
- if(client)
+ if(client && !istype(src, /mob/abstract/new_player)) //Do not update the skybox if it's a new player mob, they don't see it anyways and it can runtime
client.update_skybox(TRUE)
-
- addtimer(CALLBACK(client, TYPE_PROC_REF(/client, check_panel_loaded)), 30 SECONDS)
diff --git a/code/unit_tests/ss_test.dm b/code/unit_tests/ss_test.dm
index 0bfb3da93a9..2f7412b417b 100644
--- a/code/unit_tests/ss_test.dm
+++ b/code/unit_tests/ss_test.dm
@@ -14,7 +14,7 @@
SUBSYSTEM_DEF(unit_tests_config)
name = "Unit Test Config"
- init_order = SS_INIT_PERSISTENT_CONFIG
+ init_order = INIT_ORDER_PERSISTENT_CONFIGURATION
flags = SS_NO_FIRE
var/datum/unit_test/UT // Logging/output, use this to log things from outside where a specific unit_test is defined
diff --git a/html/changelogs/fluffyghost-attemptedblackscreenfix.yml b/html/changelogs/fluffyghost-attemptedblackscreenfix.yml
new file mode 100644
index 00000000000..6b2e116f411
--- /dev/null
+++ b/html/changelogs/fluffyghost-attemptedblackscreenfix.yml
@@ -0,0 +1,41 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: FluffyGhost
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - experiment: "Attempted fix for the blackscreen issues, to be TM'd."
diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm
index 96c227b8c8e..45556da560c 100644
--- a/maps/aurora/aurora-4_mainlevel.dmm
+++ b/maps/aurora/aurora-4_mainlevel.dmm
@@ -84,7 +84,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
name = "Medbay Maintance";
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -150,11 +149,6 @@
/obj/structure/lattice/catwalk/indoor/grate,
/turf/simulated/floor/plating,
/area/maintenance/security_starboard)
-"aas" = (
-/obj/effect/map_effect/airlock/s_to_n,
-/obj/effect/map_effect/window_spawner/reinforced/firedoor,
-/turf/simulated/floor/plating,
-/area/maintenance/security_starboard)
"aau" = (
/obj/effect/map_effect/window_spawner/reinforced/firedoor,
/turf/simulated/floor/plating,
@@ -206,7 +200,6 @@
"aay" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/visible,
/turf/simulated/floor/plating,
/area/maintenance/security_starboard)
"aaz" = (
@@ -265,8 +258,8 @@
/turf/simulated/floor/plating,
/area/maintenance/security_starboard)
"aaG" = (
-/obj/machinery/atmospherics/pipe/manifold/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 10
},
/turf/simulated/floor/plating,
/area/maintenance/security_starboard)
@@ -2843,7 +2836,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/turf/simulated/floor/tiled/freezer,
@@ -4437,7 +4429,6 @@
"ajb" = (
/obj/machinery/door/airlock/maintenance{
name = "Atmospherics Maintenance Access";
- req_access = null;
req_one_access = list(11,24);
dir = 4
},
@@ -5642,7 +5633,6 @@
"alq" = (
/obj/machinery/door/airlock/maintenance{
req_access = list(11);
- req_one_access = null;
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -11120,7 +11110,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Research Division Maintenance";
req_access = list(47);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -18335,7 +18324,6 @@
/obj/machinery/atmospherics/unary/outlet_injector{
dir = 8;
frequency = 1441;
- id = null;
pixel_y = 1;
use_power = 1
},
@@ -18662,7 +18650,6 @@
name = "Door Bolt Control";
pixel_x = 22;
pixel_y = 8;
- req_access = null;
specialfunctions = 4
},
/turf/simulated/floor/tiled/freezer,
@@ -20349,8 +20336,7 @@
/obj/machinery/disposal,
/obj/machinery/door/window/brigdoor/westleft{
dir = 1;
- name = "Brig Delivery Chute";
- req_one_access = null
+ name = "Brig Delivery Chute"
},
/obj/structure/window/reinforced{
dir = 8
@@ -22090,16 +22076,13 @@
/obj/machinery/door/firedoor,
/obj/structure/grille,
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -22595,8 +22578,7 @@
"aNM" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/window/westleft{
- name = "Server Room";
- req_access = null
+ name = "Server Room"
},
/obj/machinery/door/window/eastleft{
name = "Server Room"
@@ -23055,12 +23037,10 @@
/obj/machinery/door/firedoor,
/obj/structure/grille,
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -24032,12 +24012,10 @@
/obj/machinery/door/firedoor,
/obj/structure/grille,
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/obj/structure/window/reinforced/polarized,
/turf/simulated/floor/plating,
@@ -24358,7 +24336,6 @@
"aQS" = (
/obj/machinery/atmospherics/unary/outlet_injector{
dir = 1;
- id = null;
use_power = 1
},
/obj/structure/window/reinforced{
@@ -25816,16 +25793,13 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -26869,12 +26843,10 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -26894,8 +26866,7 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -26913,8 +26884,7 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -26927,12 +26897,10 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -27565,7 +27533,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_engineering{
name = "Engineering Hallway";
- req_one_access = null;
dir = 4
},
/turf/simulated/floor/tiled,
@@ -28989,7 +28956,6 @@
"aYK" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command{
- id_tag = null;
name = "Conference Room";
req_access = list(19);
dir = 4
@@ -29589,7 +29555,6 @@
/area/hallway/primary/starboard)
"aZO" = (
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -33969,7 +33934,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -35208,7 +35172,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "Intensive Care Unit";
req_access = list(66);
dir = 1
@@ -35740,8 +35703,7 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/multi_tile/glass{
name = "Kitchen";
- req_access = list(28);
- req_one_access = null
+ req_access = list(28)
},
/obj/effect/floor_decal/corner/grey/diagonal,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -37183,7 +37145,6 @@
"bod" = (
/obj/machinery/door/airlock/multi_tile/glass{
dir = 2;
- id_tag = null;
name = "Medical Reception";
req_access = list(5)
},
@@ -37980,7 +37941,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "General Treatment Room";
req_access = list(66);
dir = 1
@@ -38939,8 +38899,7 @@
/obj/machinery/button/remote/airlock{
id = "main_door";
name = "Main Exit Door Control";
- pixel_x = -26;
- req_access = null
+ pixel_x = -26
},
/obj/effect/floor_decal/corner_wide/lime{
dir = 8
@@ -38959,7 +38918,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "General Treatment Room";
req_access = list(66);
dir = 4
@@ -40145,8 +40103,7 @@
/obj/machinery/door/airlock/multi_tile/glass{
dir = 2;
id_tag = "CONS2door";
- name = "Medical Bay";
- req_access = null
+ name = "Medical Bay"
},
/obj/machinery/door/firedoor/multi_tile{
dir = 1
@@ -40428,7 +40385,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_medical{
name = "Custodial Closet";
- req_access = null;
req_one_access = list(26,66);
dir = 1
},
@@ -44658,7 +44614,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance_hatch{
name = "Transfusion Supplies";
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -44670,7 +44625,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -45328,7 +45282,6 @@
dir = 4
},
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -46201,7 +46154,6 @@
"bHA" = (
/obj/machinery/door/airlock/glass_medical{
name = "Pre/Post-OP";
- req_access = null;
dir = 1
},
/obj/structure/cable/green{
@@ -46247,7 +46199,6 @@
dir = 4
},
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -46352,7 +46303,6 @@
dir = 4
},
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -46627,7 +46577,6 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/glass_research{
name = "Telescience";
- req_access = null;
req_one_access = list(7,29);
dir = 1
},
@@ -47179,7 +47128,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/medical{
name = "Room 3";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -47670,7 +47618,6 @@
},
/obj/machinery/door/airlock/maintenance{
name = "Medbay Maintance";
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -47744,7 +47691,6 @@
"bLQ" = (
/obj/machinery/door/airlock/maintenance{
name = "Starboard Ward";
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -47815,7 +47761,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
req_access = list(12);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -47973,7 +47918,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
name = "Medbay Maintance";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -48020,7 +47964,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Research Division Maintenance";
req_access = list(47);
- req_one_access = null;
dir = 1
},
/obj/machinery/door/blast/regular{
@@ -49979,7 +49922,6 @@
"bRM" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -50271,7 +50213,6 @@
"bSD" = (
/obj/machinery/button/switch/crematorium{
_wifi_id = "chapel_crema";
- cremate_dir = null;
pixel_x = -32;
pixel_y = 25
},
@@ -50690,7 +50631,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/obj/machinery/light/small{
@@ -51223,7 +51163,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/obj/machinery/light/small{
@@ -51581,7 +51520,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/obj/machinery/light/small{
@@ -52953,7 +52891,6 @@
/obj/machinery/door/airlock/engineering{
name = "Supply (Main Level) Substation";
req_access = list(31,10);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -53234,7 +53171,6 @@
"bZM" = (
/obj/machinery/door/airlock/glass_mining{
name = "Cargo Bay";
- req_access = null;
req_one_access = list(31,48,26,67);
dir = 4
},
@@ -53703,7 +53639,6 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/glass_mining{
name = "Break Room";
- req_access = null;
req_one_access = list(31,48,26,67);
dir = 1
},
@@ -53800,7 +53735,6 @@
"caK" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,26);
dir = 4
},
@@ -54135,7 +54069,6 @@
},
/obj/machinery/door/airlock/maintenance{
name = "Cargo Maintenance";
- req_access = null;
req_one_access = list(31,48);
dir = 4
},
@@ -55310,7 +55243,6 @@
},
/obj/machinery/door/airlock/glass_mining{
name = "Break Room";
- req_access = null;
req_one_access = list(31,48,67);
dir = 1
},
@@ -55688,7 +55620,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/airlock/glass_mining{
name = "Mining";
- req_access = null;
req_one_access = list(31,48,67);
dir = 1
},
@@ -56317,7 +56248,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_mining{
name = "Mining";
- req_access = null;
req_one_access = list(48,67);
dir = 1
},
@@ -58439,7 +58369,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/turf/simulated/floor/tiled/freezer,
@@ -58696,7 +58625,6 @@
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -58744,8 +58672,7 @@
/area/maintenance/vault)
"eiB" = (
/obj/machinery/door/blast/shutters{
- dir = 2;
- name = "shutter"
+ dir = 2
},
/obj/machinery/conveyor{
icon_state = "conveyor-broken"
@@ -59751,7 +59678,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Research and Development Maintenance";
req_access = list(7);
- req_one_access = null;
dir = 1
},
/obj/machinery/door/blast/regular{
@@ -60122,7 +60048,6 @@
},
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,25,28,66);
dir = 1
},
@@ -61120,7 +61045,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,29);
dir = 1
},
@@ -61658,7 +61582,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "Intensive Care Unit";
req_access = list(66);
dir = 4
@@ -61750,7 +61673,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/medical{
name = "Room 1";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -61854,7 +61776,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "General Treatment Room";
req_access = list(66);
dir = 4
@@ -62608,7 +62529,6 @@
/obj/machinery/door/airlock/engineering{
name = "Medbay Substation";
req_access = list(5);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -62775,7 +62695,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Medbay Maintance";
req_access = list(12);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -63326,8 +63245,7 @@
id = "consular_office";
name = "consular door control";
pixel_x = -13;
- pixel_y = -25;
- req_access = null
+ pixel_y = -25
},
/obj/machinery/button/remote/airlock{
dir = 1;
@@ -63335,7 +63253,6 @@
name = "consular door bolts";
pixel_x = -13;
pixel_y = -34;
- req_access = null;
specialfunctions = 4
},
/obj/structure/bed/stool/chair/office/bridge/generic{
@@ -63949,7 +63866,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/medical{
name = "Room 2";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -64160,7 +64076,6 @@
"ovg" = (
/obj/machinery/door/airlock/maintenance{
name = "Starboard Ward";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -64910,7 +64825,6 @@
name = "representative door bolts";
pixel_x = -8;
pixel_y = 17;
- req_access = null;
specialfunctions = 4
},
/obj/machinery/button/remote/airlock{
@@ -64918,8 +64832,7 @@
id = "rep_office";
name = "representative door control";
pixel_x = 1;
- pixel_y = 17;
- req_access = null
+ pixel_y = 17
},
/obj/machinery/button/switch/windowtint{
id = "rep_inner";
@@ -65443,15 +65356,6 @@
},
/turf/simulated/floor/plating,
/area/maintenance/engineering)
-"qLn" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/maintenance{
- req_access = list(12);
- req_one_access = null;
- dir = 1
- },
-/turf/simulated/floor/plating,
-/area/maintenance/research_port)
"qLp" = (
/obj/structure/cable{
d1 = 4;
@@ -65919,7 +65823,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Autopsy Lab";
req_access = list(12);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -66136,7 +66039,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Test Range";
req_access = list(12);
- req_one_access = null;
dir = 4
},
/turf/simulated/floor/plating,
@@ -67751,7 +67653,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
name = "Physical Therapy";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -69388,7 +69289,6 @@
dir = 4
},
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -88037,7 +87937,7 @@ ahT
beG
bcY
bcY
-qLn
+bPt
beC
bcY
bcY
@@ -104913,7 +104813,7 @@ aab
aab
aau
aau
-aas
+aau
aad
aaF
aah
@@ -105168,7 +105068,7 @@ aab
aab
aab
aab
-aah
+aad
aaq
aah
aay
diff --git a/maps/runtime/runtime-1.dmm b/maps/runtime/runtime-1.dmm
index 86e8f8be029..745bafe0820 100644
--- a/maps/runtime/runtime-1.dmm
+++ b/maps/runtime/runtime-1.dmm
@@ -1622,6 +1622,10 @@
/obj/machinery/computer/ship/sensors/terminal,
/turf/simulated/floor/tiled,
/area/storage/primary)
+"sT" = (
+/obj/effect/landmark/lobby_mobs_location,
+/turf/unsimulated/floor,
+/area/template_noop)
"sU" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 9
@@ -1851,10 +1855,6 @@
/turf/simulated/floor/tiled,
/area/bridge)
"IQ" = (
-/obj/effect/map_effect/airlock/s_to_n/long/square/wide{
- name = "Deck 2 Starboard Aft Maintenance Airlock (2001)";
- radio_frequency = 2001
- },
/obj/effect/landmark{
name = "Observer-Start"
},
@@ -1933,6 +1933,9 @@
},
/turf/simulated/floor/plating,
/area/maintenance/maintcentral)
+"NF" = (
+/turf/unsimulated/wall/steel,
+/area/template_noop)
"Ot" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 8
@@ -11598,10 +11601,10 @@ aa
aa
aa
aa
+ac
ae
ae
-ae
-ae
+ac
Ft
fH
at
@@ -13931,8 +13934,8 @@ aa
aa
aa
aa
-aa
-aa
+NF
+NF
ac
Uf
Uf
@@ -14188,8 +14191,8 @@ aa
aa
aa
aa
-aa
-aa
+NF
+sT
ac
Uf
Uf
@@ -14445,8 +14448,8 @@ aa
aa
aa
aa
-aa
-aa
+NF
+NF
ac
ac
ac
diff --git a/maps/runtime/runtime-2.dmm b/maps/runtime/runtime-2.dmm
index c0a45c35afb..6e7ad7e8301 100644
--- a/maps/runtime/runtime-2.dmm
+++ b/maps/runtime/runtime-2.dmm
@@ -11,7 +11,7 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
-/turf/simulated/floor/airless,
+/turf/simulated/floor/tiled,
/area/construction/storage)
"aO" = (
/turf/simulated/floor/tiled,
@@ -242,7 +242,7 @@
},
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/zpipe/up/supply,
-/turf/simulated/floor/airless,
+/turf/simulated/floor/tiled,
/area/construction/storage)
"iR" = (
/turf/template_noop,
diff --git a/maps/runtime/runtime-3.dmm b/maps/runtime/runtime-3.dmm
index 4b5883723cb..0e5b98a1f70 100644
--- a/maps/runtime/runtime-3.dmm
+++ b/maps/runtime/runtime-3.dmm
@@ -443,7 +443,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
-/turf/simulated/floor/airless,
+/turf/simulated/floor/tiled,
/area/construction/hallway)
"iV" = (
/obj/effect/floor_decal/spline/fancy/wood/corner,
@@ -982,6 +982,12 @@
/obj/structure/grille/over/large,
/turf/simulated/floor/tiled/full,
/area/construction/hallway)
+"wH" = (
+/obj/effect/landmark{
+ name = "carpspawn"
+ },
+/turf/simulated/floor/airless,
+/area/template_noop)
"wL" = (
/obj/effect/floor_decal/spline/fancy/wood{
dir = 4
@@ -2114,6 +2120,10 @@
/obj/machinery/power/breakerbox,
/turf/simulated/floor,
/area/construction/supplyshuttle)
+"XA" = (
+/obj/structure/lattice,
+/turf/simulated/floor/airless,
+/area/template_noop)
"Yi" = (
/obj/machinery/atmospherics/binary/pump/on,
/obj/machinery/light/small{
@@ -13217,13 +13227,13 @@ nA
nA
nA
nA
-nA
-nA
-nA
-nA
-nA
-nA
-nA
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
@@ -13474,13 +13484,13 @@ pM
pM
pM
pM
-pM
-pM
-pM
-pM
-pM
-pM
-pM
+XA
+XA
+XA
+XA
+XA
+XA
+XA
pM
pM
pM
@@ -13731,13 +13741,13 @@ nA
nA
nA
nA
-nA
-nA
-nA
-nA
-nA
-nA
-nA
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
@@ -13988,13 +13998,13 @@ nA
nA
nA
nA
-nA
-nA
-nA
-nA
-nA
-nA
-nA
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
@@ -14245,13 +14255,13 @@ nA
nA
nA
nA
-nA
-nA
-nA
-nA
-nA
-nA
-nA
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
@@ -14502,13 +14512,13 @@ nA
nA
nA
nA
-nA
-Pu
-nA
-nA
-nA
-nA
-nA
+Bc
+wH
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
diff --git a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm
index 20e27443af7..6c80fded267 100644
--- a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm
+++ b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm
@@ -2724,9 +2724,6 @@
},
/turf/simulated/floor/plating,
/area/maintenance/engineering)
-"bSM" = (
-/turf/simulated/floor/airless,
-/area/hangar/intrepid)
"bUN" = (
/obj/structure/cable/green{
icon_state = "1-2"
@@ -5715,7 +5712,6 @@
dir = 10
},
/obj/machinery/button/remote/blast_door{
- dir = 2;
id = "miningbay";
name = "Mining Bay Entrance";
pixel_x = 22;
@@ -16810,9 +16806,7 @@
},
/obj/structure/table/standard,
/obj/item/device/suit_cooling_unit,
-/obj/item/storage/toolbox/mechanical{
- pixel_y = 0
- },
+/obj/item/storage/toolbox/mechanical,
/obj/item/storage/belt/utility,
/obj/item/stack/rods/full{
pixel_y = 4
@@ -29521,9 +29515,7 @@
},
/obj/structure/table/standard,
/obj/item/device/suit_cooling_unit,
-/obj/item/storage/toolbox/mechanical{
- pixel_y = 0
- },
+/obj/item/storage/toolbox/mechanical,
/obj/item/storage/belt/utility,
/obj/item/stack/rods/full{
pixel_y = 4
@@ -55864,7 +55856,7 @@ kyK
oSi
kaM
iRC
-bSM
+iRC
xsx
eSV
eSV
diff --git a/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm b/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm
index 6ac25cfaaa7..4759851dc4d 100644
--- a/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm
+++ b/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm
@@ -357,7 +357,6 @@
/obj/machinery/door/airlock/glass_centcom{
dir = 1;
name = "Sector Administration Copula";
- req_access = null;
req_one_access = list(109,108)
},
/turf/unsimulated/floor{
@@ -3491,8 +3490,7 @@
"ahN" = (
/obj/machinery/door/airlock/glass_centcom{
dir = 4;
- name = "To: NTCC Odin Mass Transit";
- req_access = null
+ name = "To: NTCC Odin Mass Transit"
},
/turf/unsimulated/floor,
/area/centcom/bar)
@@ -4091,7 +4089,6 @@
/obj/machinery/door/airlock/glass_centcom{
dir = 4;
name = "Sector Administration Copula";
- req_access = null;
req_one_access = list(109,108)
},
/turf/unsimulated/floor{
@@ -4284,8 +4281,7 @@
id = "corvette_exterior";
name = "aft blast door";
pixel_x = 32;
- pixel_y = 12;
- req_access = null
+ pixel_y = 12
},
/turf/simulated/floor/tiled/dark,
/area/shuttle/administration)
@@ -6599,7 +6595,6 @@
"apE" = (
/obj/machinery/door/airlock/centcom{
name = "Telecommunications Monitoring";
- req_access = null;
req_one_access = list(106,108,109)
},
/turf/unsimulated/floor{
@@ -6940,8 +6935,7 @@
"aqQ" = (
/obj/machinery/door/airlock/hatch{
dir = 1;
- name = "Lounge";
- req_access = null
+ name = "Lounge"
},
/turf/simulated/floor/wood,
/area/merchant_station)
@@ -9272,7 +9266,6 @@
/obj/machinery/computer/shuttle_control{
can_rename_ship = 1;
dir = 4;
- req_access = null;
req_one_access = list(38,72);
shuttle_tag = "SCC Shuttle"
},
@@ -9856,7 +9849,6 @@
"ayG" = (
/obj/machinery/door/window/northright{
name = "dispensary";
- req_access = null;
req_one_access = list(33,104)
},
/obj/effect/floor_decal/corner/orange/diagonal,
@@ -9872,7 +9864,6 @@
/obj/effect/floor_decal/corner/orange/diagonal,
/obj/machinery/door/window/eastleft{
name = "dispensary";
- req_access = null;
req_one_access = list(33,104)
},
/obj/item/reagent_containers/glass/beaker/large,
@@ -10199,7 +10190,6 @@
/obj/effect/floor_decal/corner/orange/diagonal,
/obj/machinery/door/window/eastright{
name = "dispensary";
- req_access = null;
req_one_access = list(33,104)
},
/obj/item/reagent_containers/dropper,
@@ -12711,8 +12701,7 @@
/obj/machinery/door/airlock/glass_centcom{
dir = 4;
icon = 'icons/obj/doors/Doorglass.dmi';
- name = "To: Mendell City Shuttle Terminal";
- req_access = null
+ name = "To: Mendell City Shuttle Terminal"
},
/turf/unsimulated/floor,
/area/centcom/holding)
@@ -13689,7 +13678,6 @@
name = "VIP Shuttle Access";
pixel_x = -7;
pixel_y = -23;
- req_access = null;
req_one_access = list(108,109)
},
/turf/unsimulated/floor,
@@ -13827,8 +13815,7 @@
/area/centcom/ferry)
"aJc" = (
/obj/machinery/door/airlock/centcom{
- name = "Hangar Access";
- req_access = null
+ name = "Hangar Access"
},
/obj/machinery/door/blast/odin{
dir = 4;
@@ -13840,8 +13827,7 @@
"aJd" = (
/obj/machinery/door/airlock/centcom{
dir = 1;
- name = "Entertainment Wing";
- req_access = null
+ name = "Entertainment Wing"
},
/turf/unsimulated/floor,
/area/centcom/holding)
@@ -13870,7 +13856,6 @@
dir = 1;
icon = 'icons/obj/doors/Doorglass.dmi';
name = "To: Upper Shuttle Terminal";
- req_access = null;
req_one_access = list(108,109)
},
/turf/unsimulated/floor,
@@ -14321,7 +14306,6 @@
/obj/machinery/door/airlock/glass_centcom{
dir = 4;
name = "Diplomatic Waiting Lounge";
- req_access = null;
req_one_access = list(38,72)
},
/obj/effect/floor_decal/spline/fancy/wood/corner{
@@ -14821,8 +14805,7 @@
/area/centcom/suppy)
"aMf" = (
/obj/machinery/door/airlock/centcom{
- name = "Auxillary Cryogenics";
- req_access = null
+ name = "Auxillary Cryogenics"
},
/turf/unsimulated/floor{
icon_state = "dark_preview"
@@ -14870,7 +14853,6 @@
dir = 4;
icon = 'icons/obj/doors/Doorglass.dmi';
name = "To: Lower Shuttle Terminal";
- req_access = null;
req_one_access = list(108,109)
},
/turf/unsimulated/floor,
@@ -14976,7 +14958,6 @@
dir = 4;
icon = 'icons/obj/doors/Doorglass.dmi';
name = "To: Lower Shuttle Terminal";
- req_access = null;
req_one_access = list(108,109)
},
/turf/unsimulated/floor,
@@ -15043,7 +15024,6 @@
"aMS" = (
/obj/machinery/door/window/eastleft{
name = "cockpit";
- req_access = null;
req_one_access = list(38,72)
},
/turf/simulated/floor/tiled/ramp{
@@ -20026,8 +20006,7 @@
/area/centcom/legion)
"aYR" = (
/obj/machinery/door/airlock/engineering{
- name = "Aft Thrusters Access - Deck 1";
- req_access = null
+ name = "Aft Thrusters Access - Deck 1"
},
/turf/unsimulated/floor/plating,
/area/centcom/legion)
@@ -24324,7 +24303,6 @@
req_access = list(150)
},
/obj/machinery/button/remote/blast_door{
- dir = 2;
id = "burglar_blast";
layer = 3;
name = "blast door";
@@ -29055,8 +29033,7 @@
id = "mercworkshop";
name = "shutter";
pixel_x = 10;
- pixel_y = -22;
- req_access = null
+ pixel_y = -22
},
/obj/machinery/light,
/obj/effect/floor_decal/corner/red/diagonal,
@@ -30239,7 +30216,6 @@
name = "blast door"
},
/obj/machinery/button/remote/blast_door{
- dir = 2;
id = "raiderblastdoor";
name = "blast door";
pixel_x = 25;
@@ -35220,6 +35196,12 @@
name = "overgrowth"
},
/area/horizon/holodeck/source_moghes)
+"cst" = (
+/obj/effect/landmark/lobby_mobs_location,
+/turf/unsimulated/floor,
+/area/centcom/start{
+ name = "Romanovich Cloud, Tau Ceti"
+ })
"cvH" = (
/obj/effect/decal{
anchored = 1;
@@ -37779,16 +37761,14 @@
id = "merchant_windows";
name = "viewing shutters";
pixel_x = -7;
- pixel_y = 25;
- req_access = null
+ pixel_y = 25
},
/obj/machinery/button/remote/blast_door{
dir = 1;
id = "merchant_airlock";
name = "external airlock shutter";
pixel_x = -7;
- pixel_y = 35;
- req_access = null
+ pixel_y = 35
},
/turf/simulated/floor/wood,
/area/shuttle/merchant)
@@ -40615,16 +40595,14 @@
id = "merchant_windows";
name = "viewing shutters";
pixel_x = -7;
- pixel_y = 25;
- req_access = null
+ pixel_y = 25
},
/obj/machinery/button/remote/blast_door{
dir = 1;
id = "merchant_airlock";
name = "external airlock shutter";
pixel_x = -7;
- pixel_y = 35;
- req_access = null
+ pixel_y = 35
},
/turf/simulated/floor/tiled/dark,
/area/shuttle/merchant)
@@ -41436,8 +41414,8 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+aNQ
+aNQ
aNQ
aNQ
aNQ
@@ -41693,8 +41671,8 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+aNQ
+cst
aNQ
aOg
aOg
@@ -41950,8 +41928,8 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+aNQ
+aNQ
aNQ
aOg
aOg