[DNM] Fixes the codebase (#2556)

* fixes stuff

* goddamnit flags
This commit is contained in:
kevinz000
2017-08-30 00:08:40 -07:00
committed by GitHub
parent 3847312367
commit 93647d77ad
48 changed files with 75 additions and 75 deletions
+6 -6
View File
@@ -6,7 +6,7 @@
var/wait = 20 //time to wait (in deciseconds) between each call to fire(). Must be a positive integer.
var/priority = 50 //When mutiple subsystems need to run in the same tick, higher priority subsystems will run first and be given a higher share of the tick before MC_TICK_CHECK triggers a sleep
var/flags_1 = 0 //see MC.dm in __DEFINES Most flags_1 must be set on world start to take full effect. (You can also restart the mc to force them to process again)
var/flags = 0 //see MC.dm in __DEFINES Most flags must be set on world start to take full effect. (You can also restart the mc to force them to process again)
//set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later
// use the SS_NO_FIRE flag instead for systems that never fire to keep it from even being added to the list
@@ -61,13 +61,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 = 0)
flags_1 |= SS_NO_FIRE
flags |= SS_NO_FIRE
throw EXCEPTION("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_1 |= SS_NO_FIRE
flags |= SS_NO_FIRE
Master.subsystems -= src
@@ -76,14 +76,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_1
var/SS_flags = 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_1
queue_node_flags = queue_node.flags
if (queue_node_flags & SS_TICKER)
if (!(SS_flags & SS_TICKER))
@@ -170,7 +170,7 @@
if(can_fire && !(SS_NO_FIRE in flags_1))
if(can_fire && !(SS_NO_FIRE in flags))
msg = "[round(cost,1)]ms|[round(tick_usage,1)]%([round(tick_overrun,1)]%)|[round(ticks,0.1)]\t[msg]"
else
msg = "OFFLINE\t[msg]"
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(acid)
name = "Acid"
priority = 40
flags_1 = SS_NO_INIT|SS_BACKGROUND
flags = SS_NO_INIT|SS_BACKGROUND
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/currentrun = list()
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(assets)
name = "Assets"
init_order = INIT_ORDER_ASSETS
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
var/list/cache = list()
var/list/preload = list()
+1 -1
View File
@@ -6,7 +6,7 @@
SUBSYSTEM_DEF(atoms)
name = "Atoms"
init_order = INIT_ORDER_ATOMS
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
var/initialized = INITIALIZATION_INSSATOMS
var/old_initialized
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(augury)
name = "Augury"
flags_1 = SS_NO_INIT
flags = SS_NO_INIT
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/watchers = list()
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(blackbox)
name = "Blackbox"
wait = 6000
flags_1 = SS_NO_TICK_CHECK | SS_NO_INIT
flags = SS_NO_TICK_CHECK | SS_NO_INIT
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
init_order = INIT_ORDER_BLACKBOX
+1 -1
View File
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(communications)
name = "Communications"
flags_1 = SS_NO_INIT | SS_NO_FIRE
flags = SS_NO_INIT | SS_NO_FIRE
var/silicon_message_cooldown
var/nonsilicon_message_cooldown
+3 -3
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(dbcore)
name = "Database"
flags_1 = SS_NO_INIT|SS_NO_FIRE
flags = SS_NO_INIT|SS_NO_FIRE
init_order = INIT_ORDER_DBCORE
var/const/FAILED_DB_CONNECTION_CUTOFF = 5
@@ -251,7 +251,7 @@ Delayed insert mode was removed in mysql 7 and only works with MyISAM type table
var/table
var/position //1-based index into item data
var/sql_type
var/flags_1
var/flags
var/length
var/max_length
//types
@@ -275,7 +275,7 @@ Delayed insert mode was removed in mysql 7 and only works with MyISAM type table
table = table_handler
position = position_handler
sql_type = type_handler
flags_1 = flag_handler
flags = flag_handler
length = length_handler
max_length = max_length_handler
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(disease)
name = "Disease"
flags_1 = SS_NO_FIRE | SS_NO_INIT
flags = SS_NO_FIRE | SS_NO_INIT
var/list/active_diseases = list() //List of Active disease in all mobs; purely for quick referencing.
var/list/diseases
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(explosion)
priority = 99
wait = 1
flags_1 = SS_TICKER|SS_NO_INIT
flags = SS_TICKER|SS_NO_INIT
var/list/explosions
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(fire_burning)
name = "Fire Burning"
priority = 40
flags_1 = SS_NO_INIT|SS_BACKGROUND
flags = SS_NO_INIT|SS_BACKGROUND
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/currentrun = list()
+1 -1
View File
@@ -3,7 +3,7 @@ SUBSYSTEM_DEF(icon_smooth)
init_order = INIT_ORDER_ICON_SMOOTHING
wait = 1
priority = 35
flags_1 = SS_TICKER
flags = SS_TICKER
var/list/smooth_queue = list()
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(inbounds)
name = "Inbounds"
priority = 40
flags_1 = SS_NO_INIT
flags = SS_NO_INIT
runlevels = RUNLEVEL_GAME
var/list/processing = list()
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(ipintel)
name = "XKeyScore"
init_order = INIT_ORDER_XKEYSCORE
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
var/enabled = 0 //disable at round start to avoid checking reconnects
var/throttle = 0
var/errors = 0
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(job)
name = "Jobs"
init_order = INIT_ORDER_JOBS
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
var/list/occupations = list() //List of all jobs
var/list/name_occupations = list() //Dict of all jobs, keys are titles
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(language)
name = "Language"
init_order = INIT_ORDER_LANGUAGE
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
/datum/controller/subsystem/language/Initialize(timeofday)
for(var/L in subtypesof(/datum/language))
+1 -1
View File
@@ -6,7 +6,7 @@ SUBSYSTEM_DEF(lighting)
name = "Lighting"
wait = 2
init_order = INIT_ORDER_LIGHTING
flags_1 = SS_TICKER
flags = SS_TICKER
var/initialized = FALSE
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(machines)
name = "Machines"
init_order = INIT_ORDER_MACHINES
flags_1 = SS_KEEP_TIMING
flags = SS_KEEP_TIMING
var/list/processing = list()
var/list/currentrun = list()
var/list/powernets = list()
+2 -2
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(mapping)
name = "Mapping"
init_order = INIT_ORDER_MAPPING
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
var/list/nuke_tiles = list()
var/list/nuke_threats = list()
@@ -84,7 +84,7 @@ SUBSYSTEM_DEF(mapping)
C.update_icon()
/datum/controller/subsystem/mapping/Recover()
flags_1 |= SS_NO_INIT
flags |= SS_NO_INIT
map_templates = SSmapping.map_templates
ruins_templates = SSmapping.ruins_templates
space_ruins_templates = SSmapping.space_ruins_templates
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(minimap)
name = "Minimap"
init_order = INIT_ORDER_MINIMAP
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
var/const/MINIMAP_SIZE = 2048
var/const/TILE_SIZE = 8
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(mobs)
name = "Mobs"
priority = 100
flags_1 = SS_KEEP_TIMING|SS_NO_INIT
flags = SS_KEEP_TIMING|SS_NO_INIT
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/currentrun = list()
+1 -1
View File
@@ -5,7 +5,7 @@
SUBSYSTEM_DEF(npcpool)
name = "NPC Pool"
flags_1 = SS_POST_FIRE_TIMING|SS_NO_INIT|SS_BACKGROUND
flags = SS_POST_FIRE_TIMING|SS_NO_INIT|SS_BACKGROUND
priority = 20
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
+1 -1
View File
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(orbit)
name = "Orbits"
priority = 35
wait = 2
flags_1 = SS_NO_INIT|SS_TICKER
flags = SS_NO_INIT|SS_TICKER
var/list/currentrun = list()
var/list/processing = list()
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(pai)
name = "pAI"
flags_1 = SS_NO_INIT|SS_NO_FIRE
flags = SS_NO_INIT|SS_NO_FIRE
var/list/candidates = list()
var/ghost_spam = FALSE
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(parallax)
name = "Parallax"
wait = 2
flags_1 = SS_POST_FIRE_TIMING | SS_BACKGROUND | SS_NO_INIT
flags = SS_POST_FIRE_TIMING | SS_BACKGROUND | SS_NO_INIT
priority = 65
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/list/currentrun
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(persistence)
name = "Persistence"
init_order = INIT_ORDER_PERSISTENCE
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
var/savefile/secret_satchels
var/list/satchel_blacklist = list() //this is a typecache
var/list/new_secret_satchels = list() //these are objects
+1 -1
View File
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(ping)
name = "Ping"
wait = 6
flags_1 = SS_POST_FIRE_TIMING|SS_FIRE_IN_LOBBY
flags = SS_POST_FIRE_TIMING|SS_FIRE_IN_LOBBY
priority = 10
var/list/currentrun
@@ -2,5 +2,5 @@ PROCESSING_SUBSYSTEM_DEF(fields)
name = "Fields"
wait = 2
priority = 40
flags_1 = SS_KEEP_TIMING | SS_NO_INIT
flags = SS_KEEP_TIMING | SS_NO_INIT
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
@@ -3,7 +3,7 @@ PROCESSING_SUBSYSTEM_DEF(flightpacks)
priority = 30
wait = 2
stat_tag = "FM"
flags_1 = SS_NO_INIT|SS_TICKER|SS_KEEP_TIMING
flags = SS_NO_INIT|SS_TICKER|SS_KEEP_TIMING
var/flightsuit_processing = FLIGHTSUIT_PROCESSING_FULL
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(obj)
name = "Objects"
priority = 40
flags_1 = SS_NO_INIT
flags = SS_NO_INIT
var/list/processing = list()
var/list/currentrun = list()
@@ -1,6 +1,6 @@
PROCESSING_SUBSYSTEM_DEF(overlays)
name = "Overlay"
flags_1 = SS_TICKER
flags = SS_TICKER
wait = 1
priority = 500
init_order = INIT_ORDER_OVERLAY
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(processing)
name = "Processing"
priority = 25
flags_1 = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT
flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT
wait = 10
var/stat_tag = "P" //Used for logging
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(radio)
name = "Radio"
flags_1 = SS_NO_FIRE|SS_NO_INIT
flags = SS_NO_FIRE|SS_NO_INIT
var/list/datum/radio_frequency/frequencies = list()
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(religion)
name = "Religion"
flags_1 = SS_NO_FIRE|SS_NO_INIT
flags = SS_NO_FIRE|SS_NO_INIT
var/religion
var/deity
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(shuttle)
name = "Shuttle"
wait = 10
init_order = INIT_ORDER_SHUTTLE
flags_1 = SS_KEEP_TIMING|SS_NO_TICK_CHECK
flags = SS_KEEP_TIMING|SS_NO_TICK_CHECK
runlevels = RUNLEVEL_SETUP | RUNLEVEL_GAME
var/list/mobile = list()
+1 -1
View File
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(spacedrift)
name = "Space Drift"
priority = 30
wait = 5
flags_1 = SS_NO_INIT|SS_KEEP_TIMING
flags = SS_NO_INIT|SS_KEEP_TIMING
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/currentrun = list()
+1 -1
View File
@@ -5,7 +5,7 @@
SUBSYSTEM_DEF(squeak)
name = "Squeak"
init_order = INIT_ORDER_SQUEAK
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
var/list/exposed_wires = list()
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(stickyban)
name = "Sticky Ban"
init_order = INIT_ORDER_STICKY_BAN
flags_1 = SS_NO_FIRE
flags = SS_NO_FIRE
var/list/cache = list()
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(sun)
name = "Sun"
wait = 600
flags_1 = SS_NO_TICK_CHECK|SS_NO_INIT
flags = SS_NO_TICK_CHECK|SS_NO_INIT
var/angle
var/dx
var/dy
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(tgui)
name = "tgui"
wait = 9
flags_1 = SS_NO_INIT
flags = SS_NO_INIT
priority = 110
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(throwing)
name = "Throwing"
priority = 25
wait = 1
flags_1 = SS_NO_INIT|SS_KEEP_TIMING|SS_TICKER
flags = SS_NO_INIT|SS_KEEP_TIMING|SS_TICKER
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/currentrun
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(ticker)
init_order = INIT_ORDER_TICKER
priority = 200
flags_1 = SS_KEEP_TIMING
flags = SS_KEEP_TIMING
runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME
var/current_state = GAME_STATE_STARTUP //state of current round (used by process()) Use the defines GAME_STATE_* !
+1 -1
View File
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(time_track)
name = "Time Tracking"
wait = 600
flags_1 = SS_NO_INIT|SS_NO_TICK_CHECK
flags = SS_NO_INIT|SS_NO_TICK_CHECK
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/time_dilation_current = 0
+20 -20
View File
@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(timer)
wait = 1 //SS_TICKER subsystem, so wait is in ticks
init_order = INIT_ORDER_TIMER
flags_1 = SS_TICKER|SS_NO_INIT
flags = SS_TICKER|SS_NO_INIT
var/list/datum/timedevent/processing = list()
var/list/hashes = list()
@@ -215,7 +215,7 @@ SUBSYSTEM_DEF(timer)
var/datum/callback/callBack
var/timeToRun
var/hash
var/list/flags_1
var/list/flags
var/spent = FALSE //set to true right before running.
var/name //for easy debugging.
//cicular doublely linked list
@@ -224,16 +224,16 @@ SUBSYSTEM_DEF(timer)
var/static/nextid = 1
/datum/timedevent/New(datum/callback/callBack, timeToRun, flags_1, hash)
/datum/timedevent/New(datum/callback/callBack, timeToRun, flags, hash)
id = TIMER_ID_NULL
src.callBack = callBack
src.timeToRun = timeToRun
src.flags_1 = flags_1
src.flags = flags
src.hash = hash
if (flags_1 & TIMER_UNIQUE)
if (flags & TIMER_UNIQUE)
SStimer.hashes[hash] = src
if (flags_1 & TIMER_STOPPABLE)
if (flags & TIMER_STOPPABLE)
do
if (nextid >= TIMER_ID_MAX)
nextid = 1
@@ -241,12 +241,12 @@ SUBSYSTEM_DEF(timer)
while(SStimer.timer_id_dict["timerid" + num2text(id, 8)])
SStimer.timer_id_dict["timerid" + num2text(id, 8)] = src
name = "Timer: " + num2text(id, 8) + ", TTR: [timeToRun], Flags: [jointext(bitfield2list(flags_1, list("TIMER_UNIQUE", "TIMER_OVERRIDE", "TIMER_CLIENT_TIME", "TIMER_STOPPABLE", "TIMER_NO_HASH_WAIT")), ", ")], callBack: \ref[callBack], callBack.object: [callBack.object]\ref[callBack.object]([getcallingtype()]), callBack.delegate:[callBack.delegate]([callBack.arguments ? callBack.arguments.Join(", ") : ""])"
name = "Timer: " + num2text(id, 8) + ", TTR: [timeToRun], Flags: [jointext(bitfield2list(flags, list("TIMER_UNIQUE", "TIMER_OVERRIDE", "TIMER_CLIENT_TIME", "TIMER_STOPPABLE", "TIMER_NO_HASH_WAIT")), ", ")], callBack: \ref[callBack], callBack.object: [callBack.object]\ref[callBack.object]([getcallingtype()]), callBack.delegate:[callBack.delegate]([callBack.arguments ? callBack.arguments.Join(", ") : ""])"
if (callBack.object != GLOBAL_PROC)
LAZYADD(callBack.object.active_timers, src)
if (flags_1 & TIMER_CLIENT_TIME)
if (flags & TIMER_CLIENT_TIME)
//sorted insert
var/list/ctts = SStimer.clienttime_timers
var/cttl = length(ctts)
@@ -291,7 +291,7 @@ SUBSYSTEM_DEF(timer)
/datum/timedevent/Destroy()
..()
if (flags_1 & TIMER_UNIQUE)
if (flags & TIMER_UNIQUE)
SStimer.hashes -= hash
@@ -301,10 +301,10 @@ SUBSYSTEM_DEF(timer)
callBack = null
if (flags_1 & TIMER_STOPPABLE)
if (flags & TIMER_STOPPABLE)
SStimer.timer_id_dict -= "timerid" + num2text(id, 8)
if (flags_1 & TIMER_CLIENT_TIME)
if (flags & TIMER_CLIENT_TIME)
SStimer.clienttime_timers -= src
return QDEL_HINT_IWILLGC
@@ -346,7 +346,7 @@ SUBSYSTEM_DEF(timer)
else
. = "[callBack.object.type]"
/proc/addtimer(datum/callback/callback, wait, flags_1)
/proc/addtimer(datum/callback/callback, wait, flags)
if (!callback)
return
@@ -354,12 +354,12 @@ SUBSYSTEM_DEF(timer)
var/hash
if (flags_1 & TIMER_UNIQUE)
if (flags & TIMER_UNIQUE)
var/list/hashlist
if(flags_1 & TIMER_NO_HASH_WAIT)
hashlist = list(callback.object, "(\ref[callback.object])", callback.delegate, flags_1 & TIMER_CLIENT_TIME)
if(flags & TIMER_NO_HASH_WAIT)
hashlist = list(callback.object, "(\ref[callback.object])", callback.delegate, flags & TIMER_CLIENT_TIME)
else
hashlist = list(callback.object, "(\ref[callback.object])", callback.delegate, wait, flags_1 & TIMER_CLIENT_TIME)
hashlist = list(callback.object, "(\ref[callback.object])", callback.delegate, wait, flags & TIMER_CLIENT_TIME)
hashlist += callback.arguments
hash = hashlist.Join("|||||||")
@@ -370,19 +370,19 @@ SUBSYSTEM_DEF(timer)
SStimer.hashes -= hash
else
if (flags_1 & TIMER_OVERRIDE)
if (flags & TIMER_OVERRIDE)
qdel(hash_timer)
else
if (hash_timer.flags_1 & TIMER_STOPPABLE)
if (hash_timer.flags & TIMER_STOPPABLE)
. = hash_timer.id
return
var/timeToRun = world.time + wait
if (flags_1 & TIMER_CLIENT_TIME)
if (flags & TIMER_CLIENT_TIME)
timeToRun = REALTIMEOFDAY + wait
var/datum/timedevent/timer = new(callback, timeToRun, flags_1, hash)
var/datum/timedevent/timer = new(callback, timeToRun, flags, hash)
return timer.id
/proc/deltimer(id)
+1 -1
View File
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(title)
name = "Title Screen"
flags_1 = SS_NO_FIRE|SS_NO_INIT
flags = SS_NO_FIRE|SS_NO_INIT
var/file_path
var/icon/icon
+1 -1
View File
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(vote)
name = "Vote"
wait = 10
flags_1 = SS_KEEP_TIMING|SS_NO_INIT
flags = SS_KEEP_TIMING|SS_NO_INIT
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
+1 -1
View File
@@ -1,7 +1,7 @@
//Used for all kinds of weather, ex. lavaland ash storms.
SUBSYSTEM_DEF(weather)
name = "Weather"
flags_1 = SS_BACKGROUND
flags = SS_BACKGROUND
wait = 10
runlevels = RUNLEVEL_GAME
var/list/processing = list()