From 5567a1a245fdf2176fb3a91df4c4e10d2c8ed974 Mon Sep 17 00:00:00 2001
From: CHOMPStation2StaffMirrorBot
<94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com>
Date: Wed, 18 Mar 2026 16:20:05 -0700
Subject: [PATCH] [MIRROR] next globs (#12552)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
---
code/__defines/js_snippets.dm | 81 +++++++++++
code/_helpers/global_lists.dm | 22 +--
code/controllers/subsystems/events.dm | 4 +-
code/controllers/subsystems/skybox.dm | 4 +-
code/game/dna/dna2_helpers.dm | 6 +-
code/game/gamemodes/events/clang.dm | 2 +-
code/game/gamemodes/setupgame.dm | 6 +-
code/game/machinery/computer/ai_core.dm | 2 +-
code/game/machinery/computer/message.dm | 4 +-
code/game/mecha/equipment/tools/sleeper.dm | 2 +-
.../game/mecha/equipment/tools/syringe_gun.dm | 2 +-
code/game/mecha/mecha.dm | 4 +-
.../devices/communicator/communicator.dm | 7 +-
.../items/devices/communicator/messaging.dm | 2 +-
.../items/devices/communicator/phone.dm | 6 +-
code/game/objects/items/weapons/AI_modules.dm | 2 +-
.../game/objects/structures/watercloset_vr.dm | 2 +-
code/js/byjax.dm | 24 ----
code/js/menus.dm | 37 -----
code/modules/admin/modify_robot.dm | 2 +-
code/modules/admin/verbs/debug.dm | 2 +-
.../admin/view_variables/debug_variables.dm | 9 ++
.../preference_setup/loadout/02_loadout.dm | 16 +--
code/modules/events/aurora_caelus.dm | 2 +-
code/modules/events/carp_migration.dm | 2 +-
code/modules/events/dust.dm | 2 +-
code/modules/events/event.dm | 2 +-
code/modules/events/gnat_migration.dm | 2 +-
code/modules/events/jellyfish_migration.dm | 2 +-
code/modules/events/meteors.dm | 2 +-
code/modules/events/money_spam.dm | 2 +-
code/modules/events/ray_migration.dm | 2 +-
code/modules/events/shark_migration.dm | 2 +-
code/modules/events/spacefish_migration.dm | 2 +-
.../event2/events/everyone/pda_spam.dm | 2 +-
.../integrated_electronics/subtypes/input.dm | 2 +-
code/modules/media/media_player_html5.dm | 27 ----
code/modules/mob/living/living.dm | 2 +-
.../modules/mob/living/silicon/robot/robot.dm | 2 +-
code/modules/mob/mob_helpers.dm | 7 +-
code/modules/overmap/overmap_object.dm | 2 +-
code/modules/overmap/sectors.dm | 40 +++---
code/modules/overmap/ships/computers/helm.dm | 2 +-
code/modules/overmap/spacetravel.dm | 8 +-
code/modules/overmap/turfs.dm | 10 +-
code/modules/paperwork/faxmachine.dm | 2 +-
code/modules/pda/messenger.dm | 10 +-
code/modules/pda/pda.dm | 5 +-
code/modules/shuttles/shuttle_autodock.dm | 2 +-
code/modules/shuttles/shuttle_specops.dm | 2 +-
code/modules/tgui/modules/law_manager.dm | 17 +--
maps/~map_system/maps.dm | 1 -
tgui/packages/tgui/interfaces/LawManager.tsx | 132 +++++++++---------
.../MessageMonitor/MessageMonitorTabs.tsx | 4 +-
.../Pda/pda_screens/pda_messenger.tsx | 54 +++----
.../bay_prefs/loadout/SubtabLoadout.tsx | 126 +++++++++--------
vorestation.dme | 3 +-
57 files changed, 367 insertions(+), 365 deletions(-)
create mode 100644 code/__defines/js_snippets.dm
delete mode 100644 code/js/menus.dm
delete mode 100644 code/modules/media/media_player_html5.dm
diff --git a/code/__defines/js_snippets.dm b/code/__defines/js_snippets.dm
new file mode 100644
index 0000000000..9b089c54d2
--- /dev/null
+++ b/code/__defines/js_snippets.dm
@@ -0,0 +1,81 @@
+#define PLAYER_HTML5_HTML "\n \
+\n \
+
\n \
+\n \
+\n \
+\n \
+\n \
+ \n \
+\n \
+\n"
+
+#define JS_BYJAX "function replaceContent() {\n \
+ var args = Array.prototype.slice.call(arguments);\n \
+ var id = args\[0\];\n \
+ var content = args\[1\];\n \
+ var callback = null;\n \
+ if(args\[2\]){\n \
+ callback = args\[2\];\n \
+ if(args\[3\]){\n \
+ args = args.slice(3);\n \
+ }\n \
+ }\n \
+ var parent = document.getElementById(id);\n \
+ if(typeof(parent)!=='undefined' && parent!=null){\n \
+ parent.innerHTML = content?content:'';\n \
+ }\n \
+ if(callback && window\[callback\]){\n \
+ window\[callback\].apply(null,args);\n \
+ }\n \
+}"
+
+#define JS_DROPDOWN "function dropdowns() {\n \
+ var divs = document.getElementsByTagName('div');\n \
+ var headers = new Array();\n \
+ var links = new Array();\n \
+ for(var i=0;i=0) {\n \
+ elem.className = elem.className.replace('visible','hidden');\n \
+ this.className = this.className.replace('open','closed');\n \
+ this.innerHTML = this.innerHTML.replace('-','+');\n \
+ }\n \
+ else {\n \
+ elem.className = elem.className.replace('hidden','visible');\n \
+ this.className = this.className.replace('closed','open');\n \
+ this.innerHTML = this.innerHTML.replace('+','-');\n \
+ }\n \
+ return false;\n \
+ }\n \
+ })(links\[i\]);\n \
+ }\n \
+ }\n \
+}"
diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm
index 5812f20a61..864f2488ea 100644
--- a/code/_helpers/global_lists.dm
+++ b/code/_helpers/global_lists.dm
@@ -19,8 +19,8 @@ GLOBAL_LIST_EMPTY(surgery_steps) //list of all surgery steps |BS12
GLOBAL_LIST_EMPTY(joblist) //list of all jobstypes, minus borg and AI
GLOBAL_LIST_EMPTY(mechas_list) //list of all mechs. Used by hostile mobs target tracking.
-var/global/list/obj/item/pda/PDAs = list()
-var/global/list/obj/item/communicator/all_communicators = list()
+GLOBAL_LIST_EMPTY_TYPED(PDAs, /obj/item/pda)
+GLOBAL_LIST_EMPTY_TYPED(all_communicators, /obj/item/communicator)
// Those networks can only be accessed by pre-existing terminals. AIs and new terminals can't use them.
GLOBAL_LIST_INIT(restricted_camera_networks, list(NETWORK_ERT,NETWORK_MERCENARY,"Secret", NETWORK_COMMUNICATORS))
@@ -275,11 +275,17 @@ GLOBAL_LIST_EMPTY(mannequins)
GLOB.wing_styles_list[path] = instance
paths = typesof(/datum/digest_mode)
- for(var/T in paths)
- var/datum/digest_mode/DM = new T
+ for(var/path in paths)
+ var/datum/digest_mode/DM = new path
GLOB.digest_modes[DM.id] = DM
init_crafting_recipes(GLOB.crafting_recipes)
+ paths = subtypesof(/datum/ai_laws)
+ for(var/path in paths)
+ var/datum/ai_laws/laws = new path
+ GLOB.admin_laws += laws
+ if(laws.selectable)
+ GLOB.player_laws += laws
/*
// Custom species traits
paths = subtypesof(/datum/trait)
@@ -613,10 +619,10 @@ GLOBAL_LIST_INIT(changeling_fabricated_clothing, list(
// This is to make some of the more OP superpowers a larger PITA to activate,
// and to tell our new DNA datum which values to set in order to turn something
// on or off.
-var/global/list/dna_activity_bounds[DNA_SE_LENGTH]
+GLOBAL_ALIST_EMPTY(dna_activity_bounds)
// Used to determine what each block means (admin hax and species stuff on /vg/, mostly)
-var/global/list/assigned_blocks[DNA_SE_LENGTH]
+GLOBAL_ALIST_EMPTY(assigned_blocks)
GLOBAL_LIST_EMPTY(gear_distributed_to)
GLOBAL_LIST_EMPTY(overlay_cache) //cache recent overlays
@@ -1399,8 +1405,8 @@ GLOBAL_LIST_INIT(finds_as_strings, list(
//tgui law manager
-var/global/list/datum/ai_laws/admin_laws
-var/global/list/datum/ai_laws/player_laws
+GLOBAL_LIST_EMPTY_TYPED(admin_laws, /datum/ai_laws)
+GLOBAL_LIST_EMPTY_TYPED(player_laws, /datum/ai_laws)
//shield_gen/external
GLOBAL_LIST_INIT(external_shield_gen_blockedturfs, list(
diff --git a/code/controllers/subsystems/events.dm b/code/controllers/subsystems/events.dm
index 4269abdd0c..0efcf5573e 100644
--- a/code/controllers/subsystems/events.dm
+++ b/code/controllers/subsystems/events.dm
@@ -22,8 +22,8 @@ SUBSYSTEM_DEF(events)
/*EVENT_LEVEL_MODERATE = */ new/datum/event_container/moderate,
/*EVENT_LEVEL_MAJOR = */ new/datum/event_container/major
)
- if(global.using_map.use_overmap)
- GLOB.overmap_event_handler.create_events(global.using_map.overmap_z, global.using_map.overmap_size, global.using_map.overmap_event_areas)
+ if(using_map.use_overmap)
+ GLOB.overmap_event_handler.create_events(using_map.overmap_z, using_map.overmap_size, using_map.overmap_event_areas)
return SS_INIT_SUCCESS
/datum/controller/subsystem/events/fire(resumed)
diff --git a/code/controllers/subsystems/skybox.dm b/code/controllers/subsystems/skybox.dm
index ce0ad8d3da..a515855825 100644
--- a/code/controllers/subsystems/skybox.dm
+++ b/code/controllers/subsystems/skybox.dm
@@ -96,7 +96,7 @@ SUBSYSTEM_DEF(skybox)
return skybox_cache["[z]"]
/datum/controller/subsystem/skybox/proc/generate_skybox(z)
- var/datum/skybox_settings/settings = global.using_map.get_skybox_datum(z)
+ var/datum/skybox_settings/settings = using_map.get_skybox_datum(z)
var/new_overlays = list()
@@ -113,7 +113,7 @@ SUBSYSTEM_DEF(skybox)
new_overlays += base
- if(global.using_map.use_overmap && settings.use_overmap_details)
+ if(using_map.use_overmap && settings.use_overmap_details)
var/obj/effect/overmap/visitable/O = get_overmap_sector(z)
if(istype(O))
var/image/self_image = O.generate_skybox(z)
diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm
index 950808873d..32e7685509 100644
--- a/code/game/dna/dna2_helpers.dm
+++ b/code/game/dna/dna2_helpers.dm
@@ -15,10 +15,10 @@
// DNA Gene activation boundaries, see dna2.dm.
// Returns a list object with 4 numbers.
/proc/GetDNABounds(var/block)
- var/list/BOUNDS=dna_activity_bounds[block]
- if(!istype(BOUNDS))
+ var/list/bounds = GLOB.dna_activity_bounds[block]
+ if(!istype(bounds))
return DNA_DEFAULT_BOUNDS
- return BOUNDS
+ return bounds
// Give Random Bad Mutation to M
/proc/randmutb(var/mob/living/M)
diff --git a/code/game/gamemodes/events/clang.dm b/code/game/gamemodes/events/clang.dm
index 3e43aa761f..47fb4255a8 100644
--- a/code/game/gamemodes/events/clang.dm
+++ b/code/game/gamemodes/events/clang.dm
@@ -12,7 +12,7 @@
GLOB.command_announcement.Announce("What the fuck was that?!", "General Alert")
/datum/event/clang/start()
- affecting_z = global.using_map.station_levels
+ affecting_z = using_map.station_levels
var/startz = pick(affecting_z)
var/startx = 0
diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm
index 5e3293703a..c50ce6f8fe 100644
--- a/code/game/gamemodes/setupgame.dm
+++ b/code/game/gamemodes/setupgame.dm
@@ -10,7 +10,7 @@
var/I = 0
while(++I < DNA_SE_LENGTH)
blocks_remaining.Add(I)
- assigned_blocks[I] = "" // setup a clean list
+ GLOB.assigned_blocks[I] = "" // setup a clean list
for(var/TI in trait_list)
var/datum/trait/T = trait_list[TI]
if(T.is_genetrait)
@@ -23,10 +23,10 @@
G.name = "[copytext(tex,1,min( 8, length(tex)+1 ))]:[G.block]"
T.linked_gene = G
G.linked_trait = T
- dna_activity_bounds[G.block]=T.activity_bounds
+ GLOB.dna_activity_bounds[G.block] = T.activity_bounds
// Handle global block data
log_world("DNA2: Assigned [G.name] - Linked to trait [T.name].")
- assigned_blocks[G.block]=G.name
+ GLOB.assigned_blocks[G.block] = G.name
GLOB.trait_to_dna_genes[T.type] = G
GLOB.dna_genes.Add(G)
blocks_remaining.Remove(G.block)
diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm
index 0c3b490338..939a13b8fb 100644
--- a/code/game/machinery/computer/ai_core.dm
+++ b/code/game/machinery/computer/ai_core.dm
@@ -14,7 +14,7 @@
/obj/structure/AIcore/Initialize(mapload)
. = ..()
if(mapload)
- laws = new global.using_map.default_law_type
+ laws = new using_map.default_law_type
// VOREstation edit end
/obj/structure/AIcore/attackby(obj/item/P as obj, mob/user as mob)
diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm
index 9d98a42637..4d829ef643 100644
--- a/code/game/machinery/computer/message.dm
+++ b/code/game/machinery/computer/message.dm
@@ -136,7 +136,7 @@
//Get out list of viable PDAs
var/list/obj/item/pda/sendPDAs = list()
- for(var/obj/item/pda/P in PDAs)
+ for(var/obj/item/pda/P in GLOB.PDAs)
if(!P.owner || P.hidden)
continue
var/datum/data/pda/app/messenger/M = P.find_program(/datum/data/pda/app/messenger)
@@ -299,7 +299,7 @@
return TRUE
var/obj/item/pda/PDARec = null
- for(var/obj/item/pda/P in PDAs)
+ for(var/obj/item/pda/P in GLOB.PDAs)
if(!P.owner || P.hidden)
continue
var/datum/data/pda/app/messenger/M = P.find_program(/datum/data/pda/app/messenger)
diff --git a/code/game/mecha/equipment/tools/sleeper.dm b/code/game/mecha/equipment/tools/sleeper.dm
index ea2964306c..e25a834be6 100644
--- a/code/game/mecha/equipment/tools/sleeper.dm
+++ b/code/game/mecha/equipment/tools/sleeper.dm
@@ -104,7 +104,7 @@
[occupant] statistics
-
-
-
-
-