Gives subsystem controllers a bitfield def to make vv easier, renames their flags var (#95439)

This commit is contained in:
LemonInTheDark
2026-03-22 19:06:30 -04:00
committed by GitHub
parent d2b41c670f
commit f2360d64fd
116 changed files with 142 additions and 132 deletions
+9 -9
View File
@@ -191,7 +191,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
"last_fire" = subsystem.last_fire,
"next_fire" = subsystem.next_fire,
"can_fire" = subsystem.can_fire,
"doesnt_fire" = !!(subsystem.flags & SS_NO_FIRE),
"doesnt_fire" = !!(subsystem.ss_flags & SS_NO_FIRE),
"cost_ms" = subsystem.cost,
"tick_usage" = subsystem.tick_usage,
"usage_per_tick" = average,
@@ -305,7 +305,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
FireHim = TRUE
if(3)
msg = "The [BadBoy.name] subsystem seems to be destabilizing the MC and will be put offline."
BadBoy.flags |= SS_NO_FIRE
BadBoy.ss_flags |= SS_NO_FIRE
if(msg)
to_chat(GLOB.admins, span_boldannounce("[msg]"))
log_world(msg)
@@ -494,7 +494,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
SS_INIT_NO_MESSAGE,
)
if ((subsystem.flags & SS_NO_INIT) || subsystem.initialized) //Don't init SSs with the corresponding flag or if they already are initialized
if ((subsystem.ss_flags & SS_NO_INIT) || subsystem.initialized) //Don't init SSs with the corresponding flag or if they already are initialized
subsystem.initialized = TRUE // set initialized to TRUE, because the value of initialized may still be checked on SS_NO_INIT subsystems as an "is this ready" check
return
@@ -599,7 +599,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
var/timer = world.time
for (var/thing in subsystems)
var/datum/controller/subsystem/SS = thing
if (SS.flags & SS_NO_FIRE)
if (SS.ss_flags & SS_NO_FIRE)
continue
if (SS.init_stage > init_stage)
continue
@@ -607,7 +607,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
SS.queue_next = null
SS.queue_prev = null
SS.state = SS_IDLE
if ((SS.flags & (SS_TICKER|SS_BACKGROUND)) == SS_TICKER)
if ((SS.ss_flags & (SS_TICKER|SS_BACKGROUND)) == SS_TICKER)
tickersubsystems += SS
// Timer subsystems aren't allowed to bunch up, so we offset them a bit
timer += TICKS2DS(rand(0, 1))
@@ -618,7 +618,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
if(SS.init_stage == init_stage - 1 && (SS.runlevels & current_runlevel))
// Give em a random offset so things don't clump up too bad
var/delay = SS.wait
if(SS.flags & SS_TICKER)
if(SS.ss_flags & SS_TICKER)
delay = TICKS2DS(delay)
// Gotta convert to ticks cause rand needs integers
SS.next_fire = world.time + TICKS2DS(rand(0, DS2TICKS(min(delay, 2 SECONDS))))
@@ -720,7 +720,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
continue
// If they're new, give em a random offset so things don't clump up too bad
var/delay = SS.wait
if(SS.flags & SS_TICKER)
if(SS.ss_flags & SS_TICKER)
delay = TICKS2DS(delay)
SS.next_fire = world.time + TICKS2DS(rand(0, DS2TICKS(min(delay, 2 SECONDS))))
@@ -813,7 +813,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
continue
if (SS.next_fire > world.time)
continue
SS_flags = SS.flags
SS_flags = SS.ss_flags
if (SS_flags & SS_NO_FIRE)
subsystemstocheck -= SS
continue
@@ -855,7 +855,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
while (queue_node)
if (ran && TICK_USAGE > TICK_LIMIT_RUNNING)
break
queue_node_flags = queue_node.flags
queue_node_flags = queue_node.ss_flags
queue_node_priority = queue_node.queued_priority
if (!(queue_node_flags & SS_TICKER) && skip_ticks)
+8 -8
View File
@@ -34,8 +34,8 @@
/// Priority Weight: When multiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems
var/priority = FIRE_PRIORITY_DEFAULT
/// [Subsystem Flags][SS_NO_INIT] to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)
var/flags = NONE
/// [Subsystem flags][SS_NO_INIT] to control binary behavior. ss_flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)
var/ss_flags = NONE
/// Which stage does this subsystem init at. Earlier stages can fire while later stages init.
var/init_stage = INITSTAGE_MAIN
@@ -161,13 +161,13 @@
///fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds.
///Sleeping in here prevents future fires until returned.
/datum/controller/subsystem/proc/fire(resumed = FALSE)
flags |= SS_NO_FIRE
ss_flags |= SS_NO_FIRE
CRASH("Subsystem [src]([type]) does not fire() but did not set the SS_NO_FIRE flag. Please add the SS_NO_FIRE flag to any subsystem that doesn't fire so it doesn't get added to the processing list and waste cpu.")
/datum/controller/subsystem/Destroy()
dequeue()
can_fire = 0
flags |= SS_NO_FIRE
ss_flags |= SS_NO_FIRE
if (Master)
Master.subsystems -= src
return ..()
@@ -177,7 +177,7 @@
* reset_time (bool) - Ignore things that would normally alter the next fire, like tick_overrun, and last_fire. (also resets postpone)
*/
/datum/controller/subsystem/proc/update_nextfire(reset_time = FALSE)
var/queue_node_flags = flags
var/queue_node_flags = ss_flags
if (reset_time)
postponed_fires = 0
@@ -202,14 +202,14 @@
/// (this lets us sort our run order correctly without having to re-sort the entire already sorted list)
/datum/controller/subsystem/proc/enqueue()
var/SS_priority = priority
var/SS_flags = flags
var/SS_flags = ss_flags
var/datum/controller/subsystem/queue_node
var/queue_node_priority
var/queue_node_flags
for (queue_node = Master.queue_head; queue_node; queue_node = queue_node.queue_next)
queue_node_priority = queue_node.queued_priority
queue_node_flags = queue_node.flags
queue_node_flags = queue_node.ss_flags
if (queue_node_flags & (SS_TICKER|SS_BACKGROUND) == SS_TICKER)
if ((SS_flags & (SS_TICKER|SS_BACKGROUND)) != SS_TICKER)
@@ -290,7 +290,7 @@
return SS_INIT_NONE
/datum/controller/subsystem/stat_entry(msg)
if(can_fire && !(SS_NO_FIRE & flags) && init_stage <= Master.init_stage_completed)
if(can_fire && !(SS_NO_FIRE & ss_flags) && init_stage <= Master.init_stage_completed)
msg = "[round(cost,1)]ms|[round(tick_usage,1)]%([round(tick_overrun,1)]%)|[round(ticks,0.1)] [msg]"
else
msg = "OFFLINE\t[msg]"
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(achievements)
name = "Achievements"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
var/achievements_enabled = FALSE
///List of achievements
+1 -1
View File
@@ -2,7 +2,7 @@ GENERAL_PROTECT_DATUM(/datum/controller/subsystem/admin_verbs)
SUBSYSTEM_DEF(admin_verbs)
name = "Admin Verbs"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
init_stage = INITSTAGE_EARLY
/// A list of all admin verbs indexed by their type.
var/list/datum/admin_verb/admin_verbs_by_type = list()
+1 -1
View File
@@ -1,7 +1,7 @@
/// The subsystem used to tick [/datum/ai_controllers] instances. Handling the re-checking of plans.
SUBSYSTEM_DEF(ai_controllers)
name = "AI Controller Ticker"
flags = SS_POST_FIRE_TIMING|SS_BACKGROUND
ss_flags = SS_POST_FIRE_TIMING|SS_BACKGROUND
priority = FIRE_PRIORITY_NPC
dependencies = list(
/datum/controller/subsystem/movement/ai_movement,
@@ -1,6 +1,6 @@
AI_CONTROLLER_SUBSYSTEM_DEF(ai_idle_controllers)
name = "AI Idle Controllers"
flags = SS_POST_FIRE_TIMING | SS_BACKGROUND
ss_flags = SS_POST_FIRE_TIMING | SS_BACKGROUND
priority = FIRE_PRIORITY_IDLE_NPC
dependencies = list(
/datum/controller/subsystem/ai_controllers,
+1 -1
View File
@@ -6,7 +6,7 @@ SUBSYSTEM_DEF(air)
)
priority = FIRE_PRIORITY_AIR
wait = 0.5 SECONDS
flags = SS_BACKGROUND
ss_flags = SS_BACKGROUND
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/cached_cost = 0
+1 -1
View File
@@ -1,7 +1,7 @@
/// The subsystem used to play ambience to users every now and then, makes them real excited.
SUBSYSTEM_DEF(ambience)
name = "Ambience"
flags = SS_BACKGROUND|SS_NO_INIT
ss_flags = SS_BACKGROUND|SS_NO_INIT
priority = FIRE_PRIORITY_AMBIENCE
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
wait = 1 SECONDS
+1 -1
View File
@@ -8,7 +8,7 @@
*/
SUBSYSTEM_DEF(area_contents)
name = "Area Contents"
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
runlevels = RUNLEVEL_LOBBY|RUNLEVELS_DEFAULT
var/list/currentrun
var/list/area/marked_for_clearing = list()
+1 -1
View File
@@ -4,7 +4,7 @@
SUBSYSTEM_DEF(asset_loading)
name = "Asset Loading"
priority = FIRE_PRIORITY_ASSETS
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
runlevels = RUNLEVEL_LOBBY|RUNLEVELS_DEFAULT
var/list/datum/asset/generate_queue = list()
var/assets_generating = 0
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(assets)
/datum/controller/subsystem/persistent_paintings,
/datum/controller/subsystem/greyscale_previews,
)
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
var/list/datum/asset_cache_item/cache = list()
var/list/preload = list()
var/datum/asset_transport/transport = new()
+1 -1
View File
@@ -6,7 +6,7 @@ SUBSYSTEM_DEF(atoms)
/datum/controller/subsystem/mapping,
/datum/controller/subsystem/job,
)
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/// A stack of list(source, desired initialized state)
/// We read the source of init changes from the last entry, and assert that all changes will come with a reset
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(augury)
name = "Augury"
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/watchers = list()
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(ban_cache)
/datum/controller/subsystem/ban_cache
name = "Ban Cache"
init_stage = INITSTAGE_LAST
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
var/query_started = FALSE
/datum/controller/subsystem/ban_cache/Initialize()
+1 -1
View File
@@ -5,7 +5,7 @@
*/
PROCESSING_SUBSYSTEM_DEF(blood_drying)
name = "Blood Drying"
flags = SS_NO_INIT | SS_BACKGROUND
ss_flags = SS_NO_INIT | SS_BACKGROUND
priority = FIRE_PRIORITY_BLOOD_DRYING
runlevels = RUNLEVEL_GAME
wait = 4 SECONDS
+1 -1
View File
@@ -1,7 +1,7 @@
/// Manages the security cameras and camera chunks
SUBSYSTEM_DEF(cameras)
name = "Cameras"
flags = SS_BACKGROUND
ss_flags = SS_BACKGROUND
priority = FIRE_PRIORITY_CAMERAS
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
wait = 2 MINUTES
+1 -1
View File
@@ -5,7 +5,7 @@
SUBSYSTEM_DEF(chat)
name = "Chat"
flags = SS_TICKER|SS_NO_INIT
ss_flags = SS_TICKER|SS_NO_INIT
wait = 1
priority = FIRE_PRIORITY_CHAT
init_stage = INITSTAGE_LAST
+1 -1
View File
@@ -1,7 +1,7 @@
#define SHUTDOWN_QUERY_TIMELIMIT (1 MINUTES)
SUBSYSTEM_DEF(dbcore)
name = "Database"
flags = SS_TICKER
ss_flags = SS_TICKER
init_stage = INITSTAGE_FIRST
wait = 10 // Not seconds because we're running on SS_TICKER
runlevels = RUNLEVEL_LOBBY|RUNLEVELS_DEFAULT
+1 -1
View File
@@ -1,6 +1,6 @@
PROCESSING_SUBSYSTEM_DEF(dcs)
name = "Datum Component System"
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
wait = 1 SECONDS
var/list/elements_by_type = list()
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(disease)
name = "Disease"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
var/list/active_diseases = list() //List of Active disease in all mobs; purely for quick referencing.
var/list/diseases
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(dynamic)
name = "Dynamic"
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
wait = 5 MINUTES
// These vars just exist for admins interfacing with dynamic
+1 -1
View File
@@ -14,7 +14,7 @@ SUBSYSTEM_DEF(early_assets)
/datum/controller/subsystem/atoms,
)
init_stage = INITSTAGE_EARLY
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/datum/controller/subsystem/early_assets/Initialize()
var/init_source = "early assets"
+1 -1
View File
@@ -9,7 +9,7 @@ SUBSYSTEM_DEF(explosions)
name = "Explosions"
priority = FIRE_PRIORITY_EXPLOSIONS
wait = 1
flags = SS_TICKER|SS_NO_INIT
ss_flags = SS_TICKER|SS_NO_INIT
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/cost_lowturf = 0
+1 -1
View File
@@ -20,7 +20,7 @@
SUBSYSTEM_DEF(fluids)
name = "Fluid"
wait = 0 // Will be autoset to whatever makes the most sense given the spread and effect waits.
flags = SS_KEEP_TIMING
ss_flags = SS_KEEP_TIMING
runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME
priority = FIRE_PRIORITY_FLUIDS
+1 -1
View File
@@ -25,7 +25,7 @@ SUBSYSTEM_DEF(garbage)
name = "Garbage"
priority = FIRE_PRIORITY_GARBAGE
wait = 2 SECONDS
flags = SS_POST_FIRE_TIMING|SS_BACKGROUND|SS_NO_INIT
ss_flags = SS_POST_FIRE_TIMING|SS_BACKGROUND|SS_NO_INIT
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
init_stage = INITSTAGE_FIRST
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(greyscale_previews)
name = "Greyscale Previews"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
init_stage = INITSTAGE_EARLY
dependencies = list(
/datum/controller/subsystem/processing/greyscale,
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(icon_smooth)
)
wait = 1
priority = FIRE_PRIORITY_SMOOTHING
flags = SS_TICKER
ss_flags = SS_TICKER
///Blueprints assemble an image of what pipes/manifolds/wires look like on initialization, and thus should be taken after everything's been smoothed
var/list/blueprint_queue = list()
+1 -1
View File
@@ -5,7 +5,7 @@
SUBSYSTEM_DEF(init_profiler)
name = "Init Profiler"
init_stage = INITSTAGE_LAST
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/datum/controller/subsystem/init_profiler/Initialize()
if(CONFIG_GET(flag/auto_profile))
+1 -1
View File
@@ -1,7 +1,7 @@
VERB_MANAGER_SUBSYSTEM_DEF(input)
name = "Input"
init_stage = INITSTAGE_EARLY
flags = SS_TICKER
ss_flags = SS_TICKER
priority = FIRE_PRIORITY_INPUT
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(ipintel)
name = "XKeyScore"
flags = SS_NO_INIT|SS_NO_FIRE
ss_flags = SS_NO_INIT|SS_NO_FIRE
/// The threshold for probability to be considered a VPN and/or bad IP
var/probability_threshold
+1 -1
View File
@@ -3,7 +3,7 @@ SUBSYSTEM_DEF(job)
dependencies = list(
/datum/controller/subsystem/processing/station,
)
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/// List of all jobs.
var/list/datum/job/all_occupations = list()
+1 -1
View File
@@ -1,7 +1,7 @@
/// The subsystem for controlling drastic performance enhancements aimed at reducing server load for a smoother albeit slightly duller gaming experience
SUBSYSTEM_DEF(lag_switch)
name = "Lag Switch"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/// If the lag switch measures should attempt to trigger automatically, TRUE if a config value exists
var/auto_switch = FALSE
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(library)
/datum/controller/subsystem/atoms,
/datum/controller/subsystem/mapping,
)
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/// List of bookselves to prefill with books
var/list/shelves_to_load = list()
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(lighting)
/datum/controller/subsystem/mapping,
)
wait = 2
flags = SS_TICKER
ss_flags = SS_TICKER
var/static/list/sources_queue = list() // List of lighting sources queued for update.
var/static/list/corners_queue = list() // List of lighting corners queued for update.
var/static/list/objects_queue = list() // List of lighting objects queued for update.
+1 -1
View File
@@ -3,7 +3,7 @@ SUBSYSTEM_DEF(machines)
dependencies = list(
/datum/controller/subsystem/atoms,
)
flags = SS_KEEP_TIMING
ss_flags = SS_KEEP_TIMING
wait = 2 SECONDS
/// Assosciative list of all machines that exist.
+1 -1
View File
@@ -2,7 +2,7 @@
SUBSYSTEM_DEF(map_vote)
name = "Map Vote"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/// Has an admin specifically set a map.
var/admin_override = FALSE
+1 -1
View File
@@ -351,7 +351,7 @@ Used by the AI doomsday and the self-destruct nuke.
/datum/controller/subsystem/mapping/Recover()
flags |= SS_NO_INIT
ss_flags |= SS_NO_INIT
initialized = SSmapping.initialized
map_templates = SSmapping.map_templates
ruins_templates = SSmapping.ruins_templates
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(market)
name = "Market"
flags = SS_BACKGROUND
ss_flags = SS_BACKGROUND
dependencies = list(
/datum/controller/subsystem/atoms,
)
+1 -1
View File
@@ -6,7 +6,7 @@ These materials call on_applied() on whatever item they are applied to, common e
*/
SUBSYSTEM_DEF(materials)
name = "Materials"
flags = SS_NO_FIRE | SS_NO_INIT
ss_flags = SS_NO_FIRE | SS_NO_INIT
/// Dictionary of material.id || material ref
var/list/materials
/// Flat list of materials
+1 -1
View File
@@ -6,7 +6,7 @@ SUBSYSTEM_DEF(minor_mapping)
/datum/controller/subsystem/mapping,
/datum/controller/subsystem/atoms,
)
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
///a list of vermin we pick from to spawn.
var/list/vermin_chances = list(
/mob/living/basic/mouse = 72,
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(mobs)
name = "Mobs"
priority = FIRE_PRIORITY_MOBS
flags = SS_KEEP_TIMING | SS_NO_INIT
ss_flags = SS_KEEP_TIMING | SS_NO_INIT
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
wait = 2 SECONDS
+1 -1
View File
@@ -1,5 +1,5 @@
PROCESSING_SUBSYSTEM_DEF(mood)
name = "Mood"
flags = SS_NO_INIT | SS_BACKGROUND
ss_flags = SS_NO_INIT | SS_BACKGROUND
priority = 20
wait = 1 SECONDS
+1 -1
View File
@@ -2,7 +2,7 @@
SUBSYSTEM_DEF(mouse_entered)
name = "MouseEntered"
wait = 1
flags = SS_NO_INIT | SS_TICKER
ss_flags = SS_NO_INIT | SS_TICKER
priority = FIRE_PRIORITY_MOUSE_ENTERED
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
@@ -1,7 +1,7 @@
/// The subsystem used to tick [/datum/ai_movement] instances. Handling the movement of individual AI instances
MOVEMENT_SUBSYSTEM_DEF(ai_movement)
name = "AI movement"
flags = SS_BACKGROUND|SS_TICKER
ss_flags = SS_BACKGROUND|SS_TICKER
priority = FIRE_PRIORITY_NPC_MOVEMENT
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
@@ -2,7 +2,7 @@
MOVEMENT_SUBSYSTEM_DEF(cliff_falling)
name = "Cliff Falling"
priority = FIRE_PRIORITY_CLIFF_FALLING
flags = SS_NO_INIT|SS_TICKER
ss_flags = SS_NO_INIT|SS_TICKER
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
/// Who are currently falling and with which movemanager?
@@ -2,5 +2,5 @@
MOVEMENT_SUBSYSTEM_DEF(hyperspace_drift)
name = "Hyperspace Drift"
priority = FIRE_PRIORITY_HYPERSPACE_DRIFT
flags = SS_NO_INIT|SS_TICKER
ss_flags = SS_NO_INIT|SS_TICKER
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(movement)
name = "Movement Loops"
flags = SS_NO_INIT|SS_TICKER
ss_flags = SS_NO_INIT|SS_TICKER
wait = 1 //Fire each tick
/*
A breif aside about the bucketing system here
@@ -1,7 +1,7 @@
/// The subsystem is intended to tick things related to space/newtonian movement, such as constant sources of inertia
MOVEMENT_SUBSYSTEM_DEF(newtonian_movement)
name = "Newtonian Movement"
flags = SS_NO_INIT|SS_TICKER
ss_flags = SS_NO_INIT|SS_TICKER
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/stat_tag = "P" //Used for logging
@@ -2,7 +2,7 @@
SUBSYSTEM_DEF(bitrunning)
name = "Bitrunning"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
var/list/all_domains = list()
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(circuit_component)
name = "Circuit Components"
wait = 0.1 SECONDS
priority = FIRE_PRIORITY_DEFAULT
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
var/list/callbacks_to_invoke = list()
var/list/currentrun = list()
@@ -3,7 +3,7 @@
*/
SUBSYSTEM_DEF(id_access)
name = "IDs and Access"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/// Dictionary of access flags. Keys are accesses. Values are their associated bitflags.
var/list/flags_by_access = list()
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(radio)
name = "Radio"
flags = SS_NO_FIRE|SS_NO_INIT
ss_flags = SS_NO_FIRE|SS_NO_INIT
var/list/datum/radio_frequency/frequencies = list()
var/list/saymodes = list()
@@ -7,7 +7,7 @@
**/
SUBSYSTEM_DEF(wiremod_composite)
name = "Wiremod Composite Templates"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/// The templates created and stored
var/list/templates = list()
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(npcpool)
name = "NPC Pool"
flags = SS_POST_FIRE_TIMING|SS_NO_INIT|SS_BACKGROUND
ss_flags = SS_POST_FIRE_TIMING|SS_NO_INIT|SS_BACKGROUND
priority = FIRE_PRIORITY_NPC
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(overlays)
name = "Overlay"
flags = SS_NO_FIRE|SS_NO_INIT
ss_flags = SS_NO_FIRE|SS_NO_INIT
var/list/stats
/datum/controller/subsystem/overlays/PreInit()
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(pai)
name = "pAI"
flags = SS_NO_INIT|SS_NO_FIRE
ss_flags = SS_NO_INIT|SS_NO_FIRE
/// List of pAI candidates, including those not submitted.
var/list/candidates = list()
+1 -1
View File
@@ -4,7 +4,7 @@
SUBSYSTEM_DEF(parallax)
name = "Parallax"
wait = 2
flags = SS_POST_FIRE_TIMING | SS_BACKGROUND | SS_NO_INIT
ss_flags = SS_POST_FIRE_TIMING | SS_BACKGROUND | SS_NO_INIT
priority = FIRE_PRIORITY_PARALLAX
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/list/currentrun
@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(persistence)
/datum/controller/subsystem/mapping,
/datum/controller/subsystem/atoms,
)
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
///instantiated wall engraving components
var/list/wall_engravings = list()
@@ -120,7 +120,7 @@
SUBSYSTEM_DEF(persistent_paintings)
name = "Persistent Paintings"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
dependencies = list(
/datum/controller/subsystem/persistence,
)
+1 -1
View File
@@ -8,7 +8,7 @@ SUBSYSTEM_DEF(ping)
priority = FIRE_PRIORITY_PING
init_stage = INITSTAGE_EARLY
wait = 4 SECONDS
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/list/currentrun = list()
@@ -2,7 +2,7 @@
SUBSYSTEM_DEF(points_of_interest)
name = "Points of Interest"
flags = SS_NO_FIRE | SS_NO_INIT
ss_flags = SS_NO_FIRE | SS_NO_INIT
/// List of mob POIs. This list is automatically sorted.
var/list/datum/point_of_interest/mob_poi/mob_points_of_interest = list()
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(polling)
name = "Polling"
flags = SS_BACKGROUND | SS_NO_INIT
ss_flags = SS_BACKGROUND | SS_NO_INIT
wait = 1 SECONDS
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
/// List of polls currently ongoing, to be checked on next fire()
@@ -2,5 +2,5 @@
PROCESSING_SUBSYSTEM_DEF(acid)
name = "Acid"
priority = FIRE_PRIORITY_ACID
flags = SS_NO_INIT|SS_BACKGROUND
ss_flags = SS_NO_INIT|SS_BACKGROUND
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
@@ -1,4 +1,4 @@
PROCESSING_SUBSYSTEM_DEF(basic_avoidance)
name = "Basic Avoidance"
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
wait = 2 SECONDS
@@ -1,7 +1,7 @@
/// The subsystem used to tick [/datum/ai_behavior] instances. Handling the individual actions an AI can take like punching someone in the fucking NUTS
PROCESSING_SUBSYSTEM_DEF(ai_behaviors)
name = "AI Behavior Ticker"
flags = SS_POST_FIRE_TIMING|SS_BACKGROUND
ss_flags = SS_POST_FIRE_TIMING|SS_BACKGROUND
priority = FIRE_PRIORITY_NPC_ACTIONS
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
dependencies = list(
@@ -1,6 +1,6 @@
PROCESSING_SUBSYSTEM_DEF(idle_ai_behaviors)
name = "AI Idle Behaviors"
flags = SS_BACKGROUND
ss_flags = SS_BACKGROUND
wait = 1.5 SECONDS
priority = FIRE_PRIORITY_IDLE_NPC
dependencies = list(
@@ -1,4 +1,4 @@
PROCESSING_SUBSYSTEM_DEF(antag_hud)
name = "Antag HUDs"
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
wait = 2 SECONDS
@@ -1,5 +1,5 @@
/// The subsystem used to tick auras ([/datum/component/aura_healing] and [/datum/component/damage_aura]).
PROCESSING_SUBSYSTEM_DEF(aura)
name = "Aura"
flags = SS_NO_INIT | SS_BACKGROUND | SS_KEEP_TIMING
ss_flags = SS_NO_INIT | SS_BACKGROUND | SS_KEEP_TIMING
wait = 0.3 SECONDS
@@ -1,5 +1,5 @@
/// The subsystem used to tick [/datum/component/acid] instances.
PROCESSING_SUBSYSTEM_DEF(clock_component)
name = "Clock Component"
flags = SS_NO_INIT|SS_BACKGROUND|SS_KEEP_TIMING
ss_flags = SS_NO_INIT|SS_BACKGROUND|SS_KEEP_TIMING
wait = COMP_CLOCK_DELAY
@@ -1,5 +1,5 @@
/// The subsystem used to tick digital clocks
PROCESSING_SUBSYSTEM_DEF(digital_clock)
name = "Digital Clocks"
flags = SS_NO_INIT|SS_BACKGROUND|SS_KEEP_TIMING
ss_flags = SS_NO_INIT|SS_BACKGROUND|SS_KEEP_TIMING
wait = 1 SECONDS
@@ -2,5 +2,5 @@
PROCESSING_SUBSYSTEM_DEF(burning)
name = "Burning"
priority = FIRE_PRIORITY_BURNING
flags = SS_NO_INIT|SS_BACKGROUND
ss_flags = SS_NO_INIT|SS_BACKGROUND
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
@@ -4,7 +4,7 @@ PROCESSING_SUBSYSTEM_DEF(fishing)
dependencies = list(
/datum/controller/subsystem/atoms,
)
flags = SS_BACKGROUND
ss_flags = SS_BACKGROUND
wait = 0.05 SECONDS // If you raise it to 0.1 SECONDS, you better also modify [datum/fish_movement/move_fish()]
///A list of cached fish icons
var/list/cached_fish_icons
@@ -1,6 +1,6 @@
PROCESSING_SUBSYSTEM_DEF(greyscale)
name = "Greyscale"
flags = SS_BACKGROUND
ss_flags = SS_BACKGROUND
wait = 3 SECONDS
init_stage = INITSTAGE_EARLY
var/list/datum/greyscale_config/configurations = list()
@@ -1,7 +1,7 @@
PROCESSING_SUBSYSTEM_DEF(instruments)
name = "Instruments"
wait = 0.5
flags = SS_KEEP_TIMING
ss_flags = SS_KEEP_TIMING
priority = FIRE_PRIORITY_INSTRUMENTS
/// List of all instrument data, associative id = datum
var/static/list/datum/instrument/instrument_data = list()
@@ -1,5 +1,5 @@
PROCESSING_SUBSYSTEM_DEF(newplayer_info)
name = "New Player Info"
flags = SS_NO_INIT | SS_BACKGROUND
ss_flags = SS_NO_INIT | SS_BACKGROUND
wait = 1 SECONDS
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
+1 -1
View File
@@ -1,5 +1,5 @@
PROCESSING_SUBSYSTEM_DEF(obj)
name = "Objects"
priority = FIRE_PRIORITY_OBJ
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
wait = 2 SECONDS
@@ -1,7 +1,7 @@
PROCESSING_SUBSYSTEM_DEF(personalities)
name = "Personalities"
runlevels = RUNLEVEL_GAME
flags = SS_BACKGROUND|SS_POST_FIRE_TIMING
ss_flags = SS_BACKGROUND|SS_POST_FIRE_TIMING
wait = 3 SECONDS
/// All personality singletons indexed by their type
@@ -2,4 +2,4 @@ PROCESSING_SUBSYSTEM_DEF(plumbing)
name = "Plumbing"
wait = 10
stat_tag = "FD" //its actually Fluid Ducts
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
@@ -1,6 +1,6 @@
PROCESSING_SUBSYSTEM_DEF(priority_effects)
name = "Priority Status Effects"
flags = SS_KEEP_TIMING | SS_NO_INIT
ss_flags = SS_KEEP_TIMING | SS_NO_INIT
wait = 0.2 SECONDS // Same as SSfastprocess, but can be anything, assuming you refactor all high-priority status effect intervals and durations to be a multiple of it.
priority = FIRE_PRIORITY_PRIORITY_EFFECTS
stat_tag = "PEFF"
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(processing)
name = "Processing"
priority = FIRE_PRIORITY_PROCESS
flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT
ss_flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT
wait = 1 SECONDS
var/stat_tag = "P" //Used for logging
@@ -2,7 +2,7 @@ PROCESSING_SUBSYSTEM_DEF(projectiles)
name = "Projectiles"
wait = 1
stat_tag = "PP"
flags = SS_NO_INIT|SS_TICKER
ss_flags = SS_NO_INIT|SS_TICKER
/*
* Maximum amount of pixels a projectile can pass per tick *unless* its a hitscan projectile.
* This prevents projectiles from turning into essentially hitscans if SSprojectiles starts chugging
@@ -44,7 +44,7 @@ GLOBAL_LIST_INIT(quirk_string_blacklist, generate_quirk_string_blacklist())
// - Quirk datums are stored and hold different effects, as well as being a vector for applying trait string
PROCESSING_SUBSYSTEM_DEF(quirks)
name = "Quirks"
flags = SS_BACKGROUND
ss_flags = SS_BACKGROUND
runlevels = RUNLEVEL_GAME
wait = 1 SECONDS
@@ -4,7 +4,7 @@ PROCESSING_SUBSYSTEM_DEF(reagents)
name = "Reagents"
priority = FIRE_PRIORITY_REAGENTS
wait = 0.25 SECONDS //You might think that rate_up_lim has to be set to half, but since everything is normalised around seconds_per_tick, it automatically adjusts it to be per second. Magic!
flags = SS_KEEP_TIMING
ss_flags = SS_KEEP_TIMING
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
init_stage = INITSTAGE_EARLY
///What time was it when we last ticked
@@ -1,6 +1,6 @@
PROCESSING_SUBSYSTEM_DEF(station)
name = "Station"
flags = SS_BACKGROUND
ss_flags = SS_BACKGROUND
runlevels = RUNLEVEL_GAME
wait = 5 SECONDS
@@ -1,6 +1,6 @@
/// The subsystem used for portable turrets, as they're relatively more intensive compared to most other machines, so we don't want them hogging tick usage from everything else.
PROCESSING_SUBSYSTEM_DEF(turrets)
name = "Turret Processing"
flags = SS_NO_INIT | SS_KEEP_TIMING
ss_flags = SS_NO_INIT | SS_KEEP_TIMING
wait = 2 SECONDS
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
+1 -1
View File
@@ -2,7 +2,7 @@
SUBSYSTEM_DEF(queuelinks)
name = "Queue Links"
flags = SS_NO_FIRE | SS_NO_INIT
ss_flags = SS_NO_FIRE | SS_NO_INIT
///assoc list of pending queues, id = /datum/queue_link
var/list/queues = list()
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(radiation)
name = "Radiation"
flags = SS_BACKGROUND | SS_NO_INIT
ss_flags = SS_BACKGROUND | SS_NO_INIT
wait = 0.5 SECONDS
@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(radioactive_nebula)
dependencies = list(
/datum/controller/subsystem/processing/station,
)
flags = SS_BACKGROUND
ss_flags = SS_BACKGROUND
wait = 30 SECONDS
VAR_PRIVATE
+1 -1
View File
@@ -5,7 +5,7 @@ This subsystem exists to serve as a holder for important info for the restaurant
SUBSYSTEM_DEF(restaurant)
name = "Restaurant"
wait = 20 SECONDS //Roll for new guests but don't do it too fast.
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
///All venues that exist, assoc list of type - reference
var/list/all_venues = list()
///All customer data datums that exist, assoc list of type - reference
+1 -1
View File
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(server_maint)
name = "Server Tasks"
wait = 6
flags = SS_POST_FIRE_TIMING
ss_flags = SS_POST_FIRE_TIMING
priority = FIRE_PRIORITY_SERVER_MAINT
init_stage = INITSTAGE_EARLY
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
+1 -1
View File
@@ -14,7 +14,7 @@ SUBSYSTEM_DEF(shuttle)
/datum/controller/subsystem/atoms,
/datum/controller/subsystem/air,
)
flags = SS_KEEP_TIMING
ss_flags = SS_KEEP_TIMING
runlevels = RUNLEVEL_SETUP | RUNLEVEL_GAME
/// A list of all the mobile docking ports.
+1 -1
View File
@@ -4,7 +4,7 @@ This subsystem mostly exists to populate and manage the skill singletons.
SUBSYSTEM_DEF(skills)
name = "Skills"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
///Dictionary of skill.type || skill ref
var/list/all_skills = list()
///List of level names with index corresponding to skill level
+1 -1
View File
@@ -2,7 +2,7 @@
SUBSYSTEM_DEF(sounds)
name = "Sounds"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
init_stage = INITSTAGE_EARLY
var/static/using_channels_max = CHANNEL_HIGHEST_AVAILABLE //BYOND max channels
/// Amount of channels to reserve for random usage rather than reservations being allowed to reserve all channels. Also a nice safeguard for when someone screws up.
@@ -14,7 +14,7 @@
/// A sprite accessory is something that we add to a human sprite to make them look different. This is hair, facial hair, underwear, mutant bits, etc.
SUBSYSTEM_DEF(accessories) // just 'accessories' for brevity
name = "Sprite Accessories"
flags = SS_NO_FIRE | SS_NO_INIT
ss_flags = SS_NO_FIRE | SS_NO_INIT
// HOLY SHIT COMPACT THIS INTO ASSOCIATED LISTS SO WE STOP ADDING VARIABLES
//Hairstyles
+1 -1
View File
@@ -3,7 +3,7 @@ SUBSYSTEM_DEF(statpanels)
wait = 4
priority = FIRE_PRIORITY_STATPANEL
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
var/list/currentrun = list()
var/list/global_data
var/list/mc_data
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(stickyban)
name = "PRISM"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
var/list/cache = list()
var/list/dbcache = list()
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(trading_card_game)
name = "Trading Card Game"
flags = SS_NO_FIRE
ss_flags = SS_NO_FIRE
/// Base directory for all related string files
var/card_directory = "strings/tcg"
/// List of card files to load
+1 -1
View File
@@ -13,7 +13,7 @@
SUBSYSTEM_DEF(tgui)
name = "tgui"
wait = 9
flags = SS_NO_INIT
ss_flags = SS_NO_INIT
priority = FIRE_PRIORITY_TGUI
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(throwing)
name = "Throwing"
priority = FIRE_PRIORITY_THROWING
wait = 1
flags = SS_NO_INIT|SS_KEEP_TIMING|SS_TICKER
ss_flags = SS_NO_INIT|SS_KEEP_TIMING|SS_TICKER
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/currentrun
+1 -1
View File
@@ -4,7 +4,7 @@
SUBSYSTEM_DEF(ticker)
name = "Ticker"
priority = FIRE_PRIORITY_TICKER
flags = SS_KEEP_TIMING
ss_flags = SS_KEEP_TIMING
runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME
/// state of current round (used by process()) Use the defines GAME_STATE_* !

Some files were not shown because too many files have changed in this diff Show More