diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 66db476442e..ed72e597120 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -142,9 +142,11 @@ GLOBAL_REAL(Master, /datum/controller/master) = new else var/list/subsytem_types = subtypesof(/datum/controller/subsystem) tim_sort(subsytem_types, GLOBAL_PROC_REF(cmp_subsystem_init)) - for(var/I in subsytem_types) - var/datum/controller/subsystem/S = new I - _subsystems += S + for(var/datum/controller/subsystem/ss_path as anything in subsytem_types) + if(ss_path.abstract_type == ss_path) + continue + var/datum/controller/subsystem/ss_instance = new ss_path + _subsystems += ss_instance Master = src /** diff --git a/code/controllers/subsystem/processing/circuits.dm b/code/controllers/subsystem/processing/circuits.dm index 52ded6c5325..3e9a5358c1e 100644 --- a/code/controllers/subsystem/processing/circuits.dm +++ b/code/controllers/subsystem/processing/circuits.dm @@ -6,6 +6,7 @@ PROCESSING_SUBSYSTEM_DEF(circuit) name = "Circuit" init_order = INIT_ORDER_CIRCUIT subsystem_flags = SS_NO_FIRE + stat_tag = "P_CIRCUIT" var/cipherkey diff --git a/code/controllers/subsystem/processing/instruments.dm b/code/controllers/subsystem/processing/instruments.dm index 129506f2c5f..b16a523a94e 100644 --- a/code/controllers/subsystem/processing/instruments.dm +++ b/code/controllers/subsystem/processing/instruments.dm @@ -5,6 +5,7 @@ PROCESSING_SUBSYSTEM_DEF(instruments) init_stage = INIT_STAGE_EARLY subsystem_flags = SS_KEEP_TIMING priority = FIRE_PRIORITY_INSTRUMENTS + stat_tag = "P_INST" var/static/list/datum/instrument/instrument_data = list() //id = datum var/static/list/datum/song/songs = list() var/static/musician_maxlines = 600 diff --git a/code/controllers/subsystem/processing/moving_cameras.dm b/code/controllers/subsystem/processing/moving_cameras.dm index 683c11e854c..1017789b900 100644 --- a/code/controllers/subsystem/processing/moving_cameras.dm +++ b/code/controllers/subsystem/processing/moving_cameras.dm @@ -1,4 +1,4 @@ PROCESSING_SUBSYSTEM_DEF(moving_cameras) name = "Camera Movement" - wait = 5 + wait = 0.5 SECONDS stat_tag = "MCAM" diff --git a/code/controllers/subsystem/processing/obj.dm b/code/controllers/subsystem/processing/obj.dm index 4eaf7f16111..be68872cc35 100644 --- a/code/controllers/subsystem/processing/obj.dm +++ b/code/controllers/subsystem/processing/obj.dm @@ -1,5 +1,9 @@ +/** + * General object processing subsystem. Fires once per 2 seconds. + */ PROCESSING_SUBSYSTEM_DEF(obj) name = "Objects" priority = FIRE_PRIORITY_OBJ subsystem_flags = SS_NO_INIT - wait = 20 + wait = 2 SECONDS + stat_tag = "P_OBJ" diff --git a/code/controllers/subsystem/processing/process_20fps.dm b/code/controllers/subsystem/processing/process_20fps.dm index 3afd5b018d4..fa48d76cba9 100644 --- a/code/controllers/subsystem/processing/process_20fps.dm +++ b/code/controllers/subsystem/processing/process_20fps.dm @@ -3,5 +3,5 @@ */ PROCESSING_SUBSYSTEM_DEF(process_20fps) name = "Processing - 20 fps" - wait = 0.5 - stat_tag = "P20" + wait = (1 / 20) SECONDS + stat_tag = "P_20" diff --git a/code/controllers/subsystem/processing/process_5fps.dm b/code/controllers/subsystem/processing/process_5fps.dm index 05dc2d48d89..6217bbe5602 100644 --- a/code/controllers/subsystem/processing/process_5fps.dm +++ b/code/controllers/subsystem/processing/process_5fps.dm @@ -3,5 +3,5 @@ */ PROCESSING_SUBSYSTEM_DEF(process_5fps) name = "Processing - 5 FPS" - wait = 2 - stat_tag = "P5" + wait = (1 / 5) SECONDS + stat_tag = "P_5" diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index c890b4a67e3..5c5db778971 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -1,12 +1,13 @@ -//Used to process objects. - +/** + * Base of processing subsystems. + * This is a generic processing subsystem that ticks once per second. + */ SUBSYSTEM_DEF(processing) - name = "Processing - 1 FPS" priority = FIRE_PRIORITY_PROCESS subsystem_flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT wait = 1 SECONDS - var/stat_tag = "P1" //Used for logging + var/stat_tag = "P_DEF" //Used for logging var/list/processing = list() var/list/currentrun = list() diff --git a/code/controllers/subsystem/processing/projectiles.dm b/code/controllers/subsystem/processing/projectiles.dm index bfbd8d5221e..7fecab98cb6 100644 --- a/code/controllers/subsystem/processing/projectiles.dm +++ b/code/controllers/subsystem/processing/projectiles.dm @@ -1,7 +1,10 @@ +/** + * A very fast-ticking subsystem that runs projectiles. + */ PROCESSING_SUBSYSTEM_DEF(projectiles) name = "Projectiles" - wait = 0.5 - stat_tag = "PP" + wait = (1 / 20) SECONDS + stat_tag = "P_PROJ" priority = FIRE_PRIORITY_PROJECTILES subsystem_flags = SS_NO_INIT | SS_KEEP_TIMING