Updates subsystem definitions to new standards. (#17470)

* My heart is dragging me down into...

...oblivion!

* drifting closer to the edge but she won't have me

* ever round me we are dead before we meet her

* for the last time

* wake up in sweat

* n

* fff

* uff

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
Matt Atlas
2023-10-01 14:24:40 +00:00
committed by GitHub
co-authored by Matt Atlas
parent aff9d2a1f3
commit baeb7c6afd
127 changed files with 406 additions and 720 deletions
+1 -1
View File
@@ -67,7 +67,7 @@
// Subsystems that cmd_ss_panic can hard-restart.
// *MUST* have New() use NEW_SS_GLOBAL.
var/list/panic_targets = list(
"Garbage" = /datum/controller/subsystem/garbage_collector,
"Garbage" = /datum/controller/subsystem/garbage,
"Air" = /datum/controller/subsystem/air,
"Explosives" = /datum/controller/subsystem/explosives,
"Game Ticker" = /datum/controller/subsystem/ticker,
+8 -1
View File
@@ -48,11 +48,18 @@
var/static/list/failure_strikes //How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out! This is an assoc list indexed by type.
//Do not override
///datum/controller/subsystem/New()
// Used to initialize the subsystem BEFORE the map has loaded
/datum/controller/subsystem/New()
// Called AFTER Recover if that is called
// Prefer to use Initialize if possible
/datum/controller/subsystem/proc/PreInit()
return
//This is used so the mc knows when the subsystem sleeps. do not override.
/datum/controller/subsystem/proc/ignite(resumed = 0)
SHOULD_NOT_OVERRIDE(TRUE)
set waitfor = 0
. = SS_SLEEPING
fire(resumed)
@@ -1,14 +1,9 @@
var/global/datum/controller/subsystem/ai_obfuscation/SSai_obfuscation
/datum/controller/subsystem/ai_obfuscation
SUBSYSTEM_DEF(ai_obfuscation)
name = "AI Obfuscation"
flags = SS_NO_FIRE
var/list/image/obfuscation_images = list()
/datum/controller/subsystem/ai_obfuscation/New()
NEW_SS_GLOBAL(SSai_obfuscation)
/datum/controller/subsystem/ai_obfuscation/proc/add_obfuscation_image(var/image/added_image)
if(!istype(added_image))
return
@@ -30,4 +25,4 @@ var/global/datum/controller/subsystem/ai_obfuscation/SSai_obfuscation
A.client.images -= removed_image
/datum/controller/subsystem/ai_obfuscation/proc/get_obfuscation_images()
return obfuscation_images
return obfuscation_images
+1 -6
View File
@@ -1,5 +1,3 @@
/var/datum/controller/subsystem/air/SSair
/*
Overview:
@@ -63,7 +61,7 @@ Class Procs:
*/
/datum/controller/subsystem/air
SUBSYSTEM_DEF(air)
name = "Air"
priority = SS_PRIORITY_AIR
init_order = SS_INIT_AIR
@@ -129,9 +127,6 @@ Class Procs:
msg = "TtU:[tiles_to_update.len] ZtU:[zones_to_update.len] AFZ:[active_fire_zones.len] AH:[active_hotspots.len] AE:[active_edges.len]"
return msg
/datum/controller/subsystem/air/New()
NEW_SS_GLOBAL(SSair)
/datum/controller/subsystem/air/Initialize(timeofday, simulate = TRUE)
var/starttime = REALTIMEOFDAY
+1 -6
View File
@@ -1,12 +1,10 @@
var/datum/controller/subsystem/alarm/SSalarm
/var/global/datum/alarm_handler/atmosphere/atmosphere_alarm = new()
/var/global/datum/alarm_handler/camera/camera_alarm = new()
/var/global/datum/alarm_handler/fire/fire_alarm = new()
/var/global/datum/alarm_handler/motion/motion_alarm = new()
/var/global/datum/alarm_handler/power/power_alarm = new()
/datum/controller/subsystem/alarm
SUBSYSTEM_DEF(alarm)
name = "Alarms"
init_order = SS_INIT_MISC_FIRST
priority = SS_PRIORITY_ALARMS
@@ -17,9 +15,6 @@ var/datum/controller/subsystem/alarm/SSalarm
var/tmp/list/active_alarm_cache = list()
/datum/controller/subsystem/alarm/New()
NEW_SS_GLOBAL(SSalarm)
/datum/controller/subsystem/alarm/Initialize(timeofday)
all_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
+1 -6
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/ao/SSocclusion
/datum/controller/subsystem/ao
SUBSYSTEM_DEF(ao)
name = "Ambient Occlusion"
init_order = SS_INIT_AO
wait = 1
@@ -9,9 +7,6 @@
var/list/queue = list()
/datum/controller/subsystem/ao/New()
NEW_SS_GLOBAL(SSocclusion)
/datum/controller/subsystem/ao/stat_entry(msg)
msg = "P:[queue.len]"
return ..()
+1 -6
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/arrivals/SSarrivals
/datum/controller/subsystem/arrivals
SUBSYSTEM_DEF(arrivals)
name = "Arrivals"
flags = SS_NO_INIT | SS_BACKGROUND
priority = SS_PRIORITY_ARRIVALS
@@ -13,9 +11,6 @@
var/list/current_mobs = list()
var/shuttle_launch_countdown = 30 SECONDS
/datum/controller/subsystem/arrivals/New()
NEW_SS_GLOBAL(SSarrivals)
/datum/controller/subsystem/arrivals/fire()
post_signal("arrivals")
if (wait_for_launch)
+1 -6
View File
@@ -1,18 +1,13 @@
/// Allows us to lazyload asset datums
/// Anything inserted here will fully load if directly gotten
/// So this just serves to remove the requirement to load assets fully during init
var/datum/controller/subsystem/asset_loading/SSasset_loading
/datum/controller/subsystem/asset_loading
SUBSYSTEM_DEF(asset_loading)
name = "Asset Loading"
priority = SS_PRIORITY_ASSET
flags = SS_NO_INIT
runlevels = RUNLEVEL_LOBBY|RUNLEVELS_DEFAULT
var/list/datum/asset/generate_queue = list()
/datum/controller/subsystem/asset_loading/New()
NEW_SS_GLOBAL(SSasset_loading)
/datum/controller/subsystem/asset_loading/fire(resumed)
while(length(generate_queue))
var/datum/asset/to_load = generate_queue[generate_queue.len]
+1 -6
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/assets/SSassets
/datum/controller/subsystem/assets
SUBSYSTEM_DEF(assets)
name = "Assets"
init_order = SS_INIT_ASSETS
flags = SS_NO_FIRE
@@ -9,9 +7,6 @@
var/list/preload = list()
var/datum/asset_transport/transport = new()
/datum/controller/subsystem/assets/New()
NEW_SS_GLOBAL(SSassets)
/datum/controller/subsystem/assets/Initialize()
var/newtransporttype = /datum/asset_transport
switch (config.asset_transport)
@@ -4,9 +4,7 @@
#define BATTLE_MONSTERS_GEN_TRAP 4
#define BATTLE_MONSTERS_GEN_SPELL 5
var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
/datum/controller/subsystem/battle_monsters
SUBSYSTEM_DEF(battle_monsters)
name = "Battle Monsters"
init_order = SS_INIT_MISC_FIRST
flags = SS_NO_FIRE
@@ -25,10 +23,6 @@ var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
var/list/traps_rng
var/list/spells_rng
/datum/controller/subsystem/battle_monsters/New()
NEW_SS_GLOBAL(SSbattlemonsters)
/datum/controller/subsystem/battle_monsters/Initialize()
GenerateDatum(BATTLE_MONSTERS_GEN_PREFIX)
GenerateDatum(BATTLE_MONSTERS_GEN_ROOT)
@@ -369,7 +363,7 @@ var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
/datum/controller/subsystem/battle_monsters/proc/FormatMonsterText(var/text,var/datum/battle_monsters/element/prefix_datum,var/datum/battle_monsters/monster/root_datum,var/datum/battle_monsters/title/suffix_datum, var/include_description = TRUE)
var/list/generated_stats = SSbattlemonsters.GenerateMonsterStats(prefix_datum,root_datum,suffix_datum)
var/list/generated_stats = SSbattle_monsters.GenerateMonsterStats(prefix_datum,root_datum,suffix_datum)
if(!generated_stats || generated_stats.len == 0)
return "Something went wrong... go bother the monsterous devs about it."
@@ -411,7 +405,7 @@ var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
return text
/datum/controller/subsystem/battle_monsters/proc/FormatSpellText(var/text,var/datum/battle_monsters/spell_datum,var/include_description = TRUE)
var/list/generated_stats = SSbattlemonsters.GenerateSpellStats(spell_datum)
var/list/generated_stats = SSbattle_monsters.GenerateSpellStats(spell_datum)
if(!generated_stats || generated_stats.len == 0)
return "Something went wrong... go bother the wizardly devs about it."
+1 -9
View File
@@ -4,9 +4,7 @@
#define SUPPLY_STATION_AREATYPE /area/supply/station //Type of the supply shuttle area for station
#define SUPPLY_DOCK_AREATYPE /area/supply/dock //Type of the supply shuttle area for dock
var/datum/controller/subsystem/cargo/SScargo
/datum/controller/subsystem/cargo
SUBSYSTEM_DEF(cargo)
name = "Cargo"
wait = 30 SECONDS
flags = SS_NO_FIRE
@@ -90,12 +88,6 @@ var/datum/controller/subsystem/cargo/SScargo
qdel(spawner)
..()
/datum/controller/subsystem/cargo/New()
NEW_SS_GLOBAL(SScargo)
/*
Loading Data
*/
+1 -3
View File
@@ -5,9 +5,7 @@ var/regex/is_http_protocol = regex("^https?://")
* SPDX-License-Identifier: MIT
*/
var/datum/controller/subsystem/chat/SSchat
/datum/controller/subsystem/chat
SUBSYSTEM_DEF(chat)
name = "Chat"
flags = SS_TICKER
wait = 1
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/chemistry/SSchemistry
/datum/controller/subsystem/chemistry
SUBSYSTEM_DEF(chemistry)
name = "Chemistry"
priority = SS_PRIORITY_CHEMISTRY
init_order = SS_INIT_MISC_FIRST
@@ -82,9 +80,6 @@ var/datum/controller/subsystem/chemistry/SSchemistry
msg = "AH:[active_holders.len]"
return ..()
/datum/controller/subsystem/chemistry/New()
NEW_SS_GLOBAL(SSchemistry)
/datum/controller/subsystem/chemistry/Initialize()
initialize_chemical_reactions()
initialize_codex_data()
+4 -9
View File
@@ -1,7 +1,5 @@
#define DEFAULT_MAX_RUNES 40
/var/datum/controller/subsystem/cult/SScult
/datum/controller/subsystem/cult
SUBSYSTEM_DEF(cult)
name = "Cult"
flags = SS_NO_FIRE
@@ -16,9 +14,6 @@
var/rune_boost = 0
var/tome_data = ""
/datum/controller/subsystem/cult/New()
NEW_SS_GLOBAL(SScult)
/datum/controller/subsystem/cult/Initialize()
. = ..()
for(var/rune in subtypesof(/datum/rune))
@@ -31,7 +26,7 @@
if(R.max_number_allowed)
tome_data += "This rune has a special limit of <b><i>[R.max_number_allowed]</b></i> runes.<br><hr>"
limited_runes[R.type] = R.max_number_allowed //The runes created will tick the counter down to zero.
tome_data += "</div>"
tome_data += "</div>"
/datum/controller/subsystem/cult/proc/add_rune(var/datum/rune/R)
if(check_rune_limit(R))
@@ -46,9 +41,9 @@
if(current_runes > 0)
limited_runes[rune_type]--
return FALSE
else
else
return TRUE
else
else
return ((length(rune_list) + rune_boost + length(cult.current_antagonists)) >= rune_limit)
/datum/controller/subsystem/cult/proc/remove_rune(var/datum/rune/R)
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/docs/SSdocs
/datum/controller/subsystem/docs
SUBSYSTEM_DEF(docs)
name = "Documents"
wait = 30 SECONDS
flags = SS_NO_FIRE
@@ -29,9 +27,6 @@ var/datum/controller/subsystem/docs/SSdocs
..()
/datum/controller/subsystem/docs/New()
NEW_SS_GLOBAL(SSdocs)
/*
Fetching Data
*/
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/economy/SSeconomy
/datum/controller/subsystem/economy
SUBSYSTEM_DEF(economy)
name = "Economy"
wait = 30 SECONDS
flags = SS_NO_FIRE
@@ -11,9 +9,6 @@ var/datum/controller/subsystem/economy/SSeconomy
var/num_financial_terminals = 1
var/next_account_number = 0
/datum/controller/subsystem/economy/New()
NEW_SS_GLOBAL(SSeconomy)
/datum/controller/subsystem/economy/Initialize(timeofday)
next_account_number = rand(111111, 999999)
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/effects/SSeffects
/datum/controller/subsystem/effects
SUBSYSTEM_DEF(effects)
name = "Effects Master"
wait = 1 // Deciseconds.
flags = SS_NO_INIT
@@ -12,9 +10,6 @@ var/datum/controller/subsystem/effects/SSeffects
var/tmp/list/processing_effects = list()
var/tmp/list/processing_visuals = list()
/datum/controller/subsystem/effects/New()
NEW_SS_GLOBAL(SSeffects)
/datum/controller/subsystem/effects/fire(resumed = FALSE)
if (!resumed)
processing_effects = effect_systems
+1 -4
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/evac/SSevac
/datum/controller/subsystem/evac
SUBSYSTEM_DEF(evac)
name = "Evacuation"
priority = SS_PRIORITY_EVAC
//Initializes at default time
@@ -15,4 +13,3 @@ var/datum/controller/subsystem/evac/SSevac
/datum/controller/subsystem/evac/fire()
evacuation_controller.process()
+1 -7
View File
@@ -1,7 +1,4 @@
var/datum/controller/subsystem/events/SSevents
/datum/controller/subsystem/events
// Subsystem stuff.
SUBSYSTEM_DEF(events)
name = "Events"
priority = SS_PRIORITY_EVENT
@@ -28,9 +25,6 @@ var/datum/controller/subsystem/events/SSevents
var/initialized = FALSE
/datum/controller/subsystem/events/New()
NEW_SS_GLOBAL(SSevents)
/datum/controller/subsystem/events/Initialize()
allEvents = subtypesof(/datum/event)
event_containers = list(
+1 -8
View File
@@ -3,11 +3,7 @@
#define EXPLFX_SHAKE 1
#define EXPLFX_NONE 0
var/datum/controller/subsystem/explosives/SSexplosives
// yes, let's move the laggiest part of the game to a process
// nothing could go wrong -- Lohikar
/datum/controller/subsystem/explosives
SUBSYSTEM_DEF(explosives)
name = "Explosives"
wait = 1
flags = SS_NO_INIT | SS_BACKGROUND | SS_POST_FIRE_TIMING
@@ -23,9 +19,6 @@ var/datum/controller/subsystem/explosives/SSexplosives
var/mc_notified = FALSE
/datum/controller/subsystem/explosives/New()
NEW_SS_GLOBAL(SSexplosives)
/datum/controller/subsystem/explosives/Recover()
work_queue = SSexplosives.work_queue
explosion_in_progress = SSexplosives.explosion_in_progress
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/fail2topic/SSfail2topic
/datum/controller/subsystem/fail2topic
SUBSYSTEM_DEF(fail2topic)
name = "Fail2Topic"
init_order = SS_INIT_MISC_FIRST
flags = SS_BACKGROUND
@@ -14,9 +12,6 @@ var/datum/controller/subsystem/fail2topic/SSfail2topic
var/max_fails
var/enabled = FALSE
/datum/controller/subsystem/fail2topic/New()
NEW_SS_GLOBAL(SSfail2topic)
/datum/controller/subsystem/fail2topic/Initialize(timeofday)
rate_limit = config.fail2topic_rate_limit
max_fails = config.fail2topic_max_fails
+1 -6
View File
@@ -4,9 +4,7 @@
if (MC_TICK_CHECK) return; \
continue;
/var/datum/controller/subsystem/falling/SSfalling
/datum/controller/subsystem/falling
SUBSYSTEM_DEF(falling)
name = "Falling"
flags = SS_NO_INIT
wait = 1
@@ -14,9 +12,6 @@
var/list/falling = list()
var/list/currentrun
/datum/controller/subsystem/falling/New()
NEW_SS_GLOBAL(SSfalling)
/datum/controller/subsystem/falling/stat_entry(msg)
msg = "F:[falling.len]"
return ..()
+10 -15
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/garbage_collector/SSgarbage
/datum/controller/subsystem/garbage_collector
SUBSYSTEM_DEF(garbage)
name = "Garbage"
priority = SS_PRIORITY_GARBAGE
wait = 2 SECONDS
@@ -40,10 +38,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
var/list/reference_find_on_fail = list()
#endif
/datum/controller/subsystem/garbage_collector/New()
NEW_SS_GLOBAL(SSgarbage)
/datum/controller/subsystem/garbage_collector/stat_entry(msg)
/datum/controller/subsystem/garbage/stat_entry(msg)
msg = "W:[tobequeued.len]|Q:[queue.len]|D:[delslasttick]|G:[gcedlasttick]|"
msg += "GR:"
if (!(delslasttick+gcedlasttick))
@@ -58,7 +53,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
msg += "TGR:[round((totalgcs/(totaldels+totalgcs))*100, 0.01)]%"
return ..()
/datum/controller/subsystem/garbage_collector/fire()
/datum/controller/subsystem/garbage/fire()
HandleToBeQueued()
if(state == SS_RUNNING)
HandleQueue()
@@ -68,7 +63,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
//If you see this proc high on the profile, what you are really seeing is the garbage collection/soft delete overhead in byond.
//Don't attempt to optimize, not worth the effort.
/datum/controller/subsystem/garbage_collector/proc/HandleToBeQueued()
/datum/controller/subsystem/garbage/proc/HandleToBeQueued()
var/list/tobequeued = src.tobequeued
var/starttime = world.time
var/starttimeofday = world.timeofday
@@ -83,7 +78,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
if (idex > 1)
tobequeued.Cut(1, idex)
/datum/controller/subsystem/garbage_collector/proc/HandleQueue()
/datum/controller/subsystem/garbage/proc/HandleQueue()
delslasttick = 0
gcedlasttick = 0
var/time_to_kill = world.time - collection_timeout // Anything qdel() but not GC'd BEFORE this time needs to be manually del()
@@ -149,12 +144,12 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
if (idex > 1)
queue.Cut(1, idex)
/datum/controller/subsystem/garbage_collector/proc/QueueForQueuing(datum/A)
/datum/controller/subsystem/garbage/proc/QueueForQueuing(datum/A)
if (istype(A) && A.gcDestroyed == GC_CURRENTLY_BEING_QDELETED)
tobequeued += A
A.gcDestroyed = GC_QUEUED_FOR_QUEUING
/datum/controller/subsystem/garbage_collector/proc/Queue(datum/A)
/datum/controller/subsystem/garbage/proc/Queue(datum/A)
if (!istype(A) || (!isnull(A.gcDestroyed) && A.gcDestroyed >= 0))
return
if (A.gcDestroyed == GC_QUEUED_FOR_HARD_DEL)
@@ -171,7 +166,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
queue[refid] = gctime
// For profiling.
/datum/controller/subsystem/garbage_collector/proc/HardDelete(datum/A)
/datum/controller/subsystem/garbage/proc/HardDelete(datum/A)
var/time = world.timeofday
var/tick = world.tick_usage
var/ticktime = world.time
@@ -194,12 +189,12 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
message_admins("Error: [type]([refID]) took longer then 1 second to delete (took [time/10] seconds to delete).")
postpone(time/5)
/datum/controller/subsystem/garbage_collector/proc/HardQueue(datum/A)
/datum/controller/subsystem/garbage/proc/HardQueue(datum/A)
if (istype(A) && A.gcDestroyed == GC_CURRENTLY_BEING_QDELETED)
tobequeued += A
A.gcDestroyed = GC_QUEUED_FOR_HARD_DEL
/datum/controller/subsystem/garbage_collector/Recover()
/datum/controller/subsystem/garbage/Recover()
if (istype(SSgarbage.queue))
queue |= SSgarbage.queue
if (istype(SSgarbage.tobequeued))
+3 -8
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/ghostroles/SSghostroles
/datum/controller/subsystem/ghostroles
SUBSYSTEM_DEF(ghostroles)
name = "Ghost Roles"
flags = SS_NO_FIRE
init_order = SS_INIT_GHOSTROLES
@@ -19,9 +17,6 @@
src.spawnpoints = SSghostroles.spawnpoints
src.spawners = SSghostroles.spawners
/datum/controller/subsystem/ghostroles/New()
NEW_SS_GLOBAL(SSghostroles)
/datum/controller/subsystem/ghostroles/Initialize(start_timeofday)
. = ..()
for(var/spawner in subtypesof(/datum/ghostspawner))
@@ -104,10 +99,10 @@
return get_turf(P)
/datum/controller/subsystem/ghostroles/ui_state(mob/user)
return always_state
return always_state
/datum/controller/subsystem/ghostroles/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
return UI_INTERACTIVE
/datum/controller/subsystem/ghostroles/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
@@ -1,14 +1,9 @@
var/datum/controller/subsystem/listener/SSlistener
/datum/controller/subsystem/listener
SUBSYSTEM_DEF(listener)
name = "Global Listener"
flags = SS_NO_INIT | SS_NO_FIRE
var/list/listeners = list()
/datum/controller/subsystem/listener/New()
NEW_SS_GLOBAL(SSlistener)
/datum/controller/subsystem/listener/Recover()
listeners = SSlistener.listeners
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/hallucinations/SShallucinations
/datum/controller/subsystem/hallucinations
SUBSYSTEM_DEF(hallucinations)
name = "Hallucinations"
flags = SS_NO_FIRE
@@ -14,9 +12,6 @@
"what have you DONE?", "Miranda Trasen", "Central Command", "AI", "maintenance drone", "Unknown", "I don't want to die")
var/list/all_hallucinations = list()
/datum/controller/subsystem/hallucinations/New()
NEW_SS_GLOBAL(SShallucinations)
/datum/controller/subsystem/hallucinations/Initialize()
. = ..()
for(var/T in subtypesof(/datum/hallucination))
@@ -33,4 +28,4 @@
candidates += H
if(candidates.len)
var/datum/hallucination/D = pick(candidates)
return D
return D
+1 -6
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/icon_cache/SSicon_cache
/datum/controller/subsystem/icon_cache
SUBSYSTEM_DEF(icon_cache)
name = "Icon Cache"
flags = SS_NO_FIRE
init_order = SS_INIT_MISC_FIRST
@@ -71,9 +69,6 @@
var/list/istate_cache = list()
/datum/controller/subsystem/icon_cache/New()
NEW_SS_GLOBAL(SSicon_cache)
/datum/controller/subsystem/icon_cache/Initialize()
build_dust_cache()
build_space_cache()
+1 -6
View File
@@ -15,9 +15,7 @@
can_fire = TRUE; \
}
var/datum/controller/subsystem/icon_smooth/SSicon_smooth
/datum/controller/subsystem/icon_smooth
SUBSYSTEM_DEF(icon_smooth)
name = "Icon Smoothing"
init_order = SS_INIT_SMOOTHING
wait = 1
@@ -30,9 +28,6 @@ var/datum/controller/subsystem/icon_smooth/SSicon_smooth
var/explosion_in_progress = FALSE
/datum/controller/subsystem/icon_smooth/New()
NEW_SS_GLOBAL(SSicon_smooth)
/datum/controller/subsystem/icon_smooth/Recover()
smooth_queue = SSicon_smooth.smooth_queue
+5 -7
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/icon/SSicon_update
/datum/controller/subsystem/icon
SUBSYSTEM_DEF(icon_update)
name = "Icon Updates"
wait = 1 // ticks
flags = SS_TICKER
@@ -9,18 +7,18 @@
var/list/queue = list()
/datum/controller/subsystem/icon/New()
/datum/controller/subsystem/icon_update/New()
NEW_SS_GLOBAL(SSicon_update)
/datum/controller/subsystem/icon/stat_entry(msg)
/datum/controller/subsystem/icon_update/stat_entry(msg)
msg = "QU:[queue.len]"
return ..()
/datum/controller/subsystem/icon/Initialize()
/datum/controller/subsystem/icon_update/Initialize()
fire(FALSE, TRUE)
..()
/datum/controller/subsystem/icon/fire(resumed = FALSE, no_mc_tick = FALSE)
/datum/controller/subsystem/icon_update/fire(resumed = FALSE, no_mc_tick = FALSE)
var/list/curr = queue
if (!curr.len)
@@ -2,9 +2,7 @@
var/datum/map/current_map // Whatever map is currently loaded. Null until SSatlas Initialize() starts.
var/datum/controller/subsystem/atlas/SSatlas
/datum/controller/subsystem/atlas
SUBSYSTEM_DEF(atlas)
name = "Atlas"
flags = SS_NO_FIRE
init_order = SS_INIT_MAPLOAD
@@ -141,9 +139,6 @@ var/datum/controller/subsystem/atlas/SSatlas
msg = "W:{X:[world.maxx] Y:[world.maxy] Z:[world.maxz]} ZL:[z_levels]"
return ..()
/datum/controller/subsystem/atlas/New()
NEW_SS_GLOBAL(SSatlas)
/datum/controller/subsystem/atlas/Initialize(timeofday)
// Quick sanity check.
if (world.maxx != WORLD_MIN_SIZE || world.maxy != WORLD_MIN_SIZE || world.maxz != 1)
@@ -1,13 +1,11 @@
#define SUBSYSTEM_INIT_SOURCE "subsystem init"
var/datum/controller/subsystem/atoms/SSatoms
#define BAD_INIT_QDEL_BEFORE 1
#define BAD_INIT_DIDNT_INIT 2
#define BAD_INIT_SLEPT 4
#define BAD_INIT_NO_HINT 8
/datum/controller/subsystem/atoms
SUBSYSTEM_DEF(atoms)
name = "Atoms"
init_order = SS_INIT_ATOMS
flags = SS_NO_FIRE
@@ -28,9 +26,6 @@ var/datum/controller/subsystem/atoms/SSatoms
var/list/BadInitializeCalls = list()
/datum/controller/subsystem/atoms/New()
NEW_SS_GLOBAL(SSatoms)
/datum/controller/subsystem/atoms/Initialize(timeofday)
initialized = INITIALIZATION_INNEW_MAPLOAD
InitializeAtoms()
@@ -1,9 +1,7 @@
// Minimap generation system adapted from vorestation, adapted from /vg/.
// Seems to be much simpler/saner than /vg/'s implementation.
/var/datum/controller/subsystem/holomap/SSholomap
/datum/controller/subsystem/holomap
SUBSYSTEM_DEF(holomap)
name = "Holomap"
flags = SS_NO_FIRE
init_order = SS_INIT_HOLOMAP
@@ -12,9 +10,6 @@
var/list/extra_minimaps = list()
var/list/station_holomaps = list()
/datum/controller/subsystem/holomap/New()
NEW_SS_GLOBAL(SSholomap)
/datum/controller/subsystem/holomap/Initialize()
holo_minimaps.len = world.maxz
for (var/z in 1 to world.maxz)
@@ -1,6 +1,6 @@
// The area list is put together here, because some things need it early on. Turrets controls, for example.
/datum/controller/subsystem/finalize
SUBSYSTEM_DEF(finalize)
name = "Map Finalization"
flags = SS_NO_FIRE | SS_NO_DISPLAY
init_order = SS_INIT_MAPFINALIZE
@@ -1,7 +1,7 @@
// This is one of the first subsystems initialized by the MC.
// Stuff that should be loaded before everything else that isn't significant enough to get its own SS goes here.
/datum/controller/subsystem/misc_early
SUBSYSTEM_DEF(misc_early)
name = "Early Miscellaneous Init"
init_order = SS_INIT_MISC_FIRST
flags = SS_NO_FIRE | SS_NO_DISPLAY
@@ -1,6 +1,6 @@
// This subsystem loads later in the init process. Not last, but after most major things are done.
/datum/controller/subsystem/misc_late
SUBSYSTEM_DEF(misc_late)
name = "Late Miscellaneous Init"
init_order = SS_INIT_MISC
flags = SS_NO_FIRE | SS_NO_DISPLAY
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/persistent_configuration/SSpersist_config = null
/datum/controller/subsystem/persistent_configuration
SUBSYSTEM_DEF(persistent_configuration)
name = "Persistent Configuration"
init_order = SS_INIT_PERSISTENT_CONFIG
flags = SS_NO_FIRE
@@ -17,7 +15,7 @@
var/forced_awaymission = FALSE
/datum/controller/subsystem/persistent_configuration/Initialize(timeofday)
SSpersist_config = src
SSpersistent_configuration = src
load_from_file("data/persistent_config.json")
@@ -25,7 +23,7 @@
var/file = file2text(filename)
if (!file)
log_config("SSpersist_config: file [filename] not found, falling back to default values.")
log_config("SSpersistent_configuration: file [filename] not found, falling back to default values.")
return
var/list/decoded = null
@@ -1,12 +1,10 @@
var/datum/controller/subsystem/xenoarch/SSxenoarch
#define XENOARCH_SPAWN_CHANCE 0.5
#define DIGSITESIZE_LOWER 4
#define DIGSITESIZE_UPPER 12
#define ARTIFACTSPAWNNUM_LOWER 6
#define ARTIFACTSPAWNNUM_UPPER 12
/datum/controller/subsystem/xenoarch
SUBSYSTEM_DEF(xenoarch)
name = "Xenoarchaeology"
flags = SS_NO_FIRE
init_order = SS_INIT_XENOARCH
@@ -14,11 +12,8 @@ var/datum/controller/subsystem/xenoarch/SSxenoarch
var/list/artifact_spawning_turfs = list()
var/list/digsite_spawning_turfs = list()
/datum/controller/subsystem/xenoarch/New()
NEW_SS_GLOBAL(SSxenoarch)
/datum/controller/subsystem/xenoarch/Initialize(timeofday)
set background=1
set background = TRUE
//create digsites
for(var/turf/TIW in world)
+3 -8
View File
@@ -1,18 +1,13 @@
var/datum/controller/subsystem/ipintel/SSipintel
/datum/controller/subsystem/ipintel
SUBSYSTEM_DEF(ipintel)
name = "XKeyScore"
init_order = SS_INIT_MISC_FIRST
flags = SS_NO_FIRE
var/enabled = 0 //disable at round start to avoid checking reconnects
var/enabled = FALSE //disable at round start to avoid checking reconnects
var/throttle = 0
var/errors = 0
var/list/cache = list()
/datum/controller/subsystem/ipintel/New()
NEW_SS_GLOBAL(SSipintel)
/datum/controller/subsystem/ipintel/Initialize()
enabled = 1
enabled = TRUE
. = ..()
+1 -9
View File
@@ -1,11 +1,6 @@
/var/datum/controller/subsystem/jobs/SSjobs
#define BE_ASSISTANT 0
#define RETURN_TO_LOBBY 1
#define Debug(text) if (Debug2) {job_debug += text}
/datum/controller/subsystem/jobs
SUBSYSTEM_DEF(jobs)
// Subsystem stuff.
name = "Jobs"
flags = SS_NO_FIRE
@@ -26,9 +21,6 @@
var/safe_to_sanitize = FALSE
var/list/deferred_preference_sanitizations = list()
/datum/controller/subsystem/jobs/New()
NEW_SS_GLOBAL(SSjobs)
/datum/controller/subsystem/jobs/Initialize()
..()
+1 -6
View File
@@ -1,6 +1,4 @@
/var/global/datum/controller/subsystem/law/SSlaw
/datum/controller/subsystem/law
SUBSYSTEM_DEF(law)
name = "Law"
flags = SS_NO_FIRE
@@ -9,9 +7,6 @@
var/list/med_severity = list()
var/list/high_severity = list()
/datum/controller/subsystem/law/New()
NEW_SS_GLOBAL(SSlaw)
/datum/controller/subsystem/law/Initialize(timeofday)
if(config.sql_enabled)
load_from_sql()
+1 -6
View File
@@ -1,9 +1,7 @@
var/datum/controller/subsystem/lighting/SSlighting
/var/lighting_profiling = FALSE
/var/lighting_overlays_initialized = FALSE
/datum/controller/subsystem/lighting
SUBSYSTEM_DEF(lighting)
name = "Lighting"
wait = LIGHTING_INTERVAL
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
@@ -34,9 +32,6 @@ var/datum/controller/subsystem/lighting/SSlighting
var/force_override = FALSE // For admins.
#endif
/datum/controller/subsystem/lighting/New()
NEW_SS_GLOBAL(SSlighting)
/datum/controller/subsystem/lighting/stat_entry(msg)
var/list/out = list(
#ifdef USE_INTELLIGENT_LIGHTING_UPDATES
+1 -6
View File
@@ -33,9 +33,7 @@ if(Datum.isprocessing) {\
#define START_PROCESSING_POWER_OBJECT(Datum) START_PROCESSING_IN_LIST(Datum, power_objects)
#define STOP_PROCESSING_POWER_OBJECT(Datum) STOP_PROCESSING_IN_LIST(Datum, power_objects)
/var/datum/controller/subsystem/machinery/SSmachinery
/datum/controller/subsystem/machinery
SUBSYSTEM_DEF(machinery)
name = "Machinery"
priority = SS_PRIORITY_MACHINERY
init_order = SS_INIT_MACHINERY
@@ -84,9 +82,6 @@ if(Datum.isprocessing) {\
all_receivers = SSmachinery.all_receivers
current_step = SSMACHINERY_PIPENETS
/datum/controller/subsystem/machinery/New()
NEW_SS_GLOBAL(SSmachinery)
/datum/controller/subsystem/machinery/Initialize(timeofday)
makepowernets()
build_rcon_lists()
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/mapping/SSmapping
/datum/controller/subsystem/mapping
SUBSYSTEM_DEF(mapping)
name = "Mapping"
init_order = SS_INIT_AWAY_MAPS
flags = SS_NO_FIRE
@@ -12,9 +10,6 @@ var/datum/controller/subsystem/mapping/SSmapping
var/list/submaps = list()
var/list/submap_archetypes = list()
/datum/controller/subsystem/mapping/New()
NEW_SS_GLOBAL(SSmapping)
/datum/controller/subsystem/mapping/Initialize(timeofday)
// Load templates and build away sites.
preloadTemplates()
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/materials/SSmaterials
/datum/controller/subsystem/materials
SUBSYSTEM_DEF(materials)
name = "Materials"
init_order = SS_INIT_MISC_FIRST
flags = SS_NO_FIRE
@@ -11,9 +9,6 @@ var/datum/controller/subsystem/materials/SSmaterials
var/list/autolathe_recipes
var/list/autolathe_categories
/datum/controller/subsystem/materials/New()
NEW_SS_GLOBAL(SSmaterials)
/datum/controller/subsystem/materials/Initialize()
create_material_lists()
. = ..()
+3 -8
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/mobs/SSmob
/datum/controller/subsystem/mobs
SUBSYSTEM_DEF(mobs)
name = "Mobs - Life"
init_order = SS_INIT_MISC // doesn't really matter when we init
priority = SS_PRIORITY_MOB
@@ -43,9 +41,6 @@
/mob/living/simple_animal/penguin/holodeck
)
/datum/controller/subsystem/mobs/New()
NEW_SS_GLOBAL(SSmob)
/datum/controller/subsystem/mobs/Initialize()
// Some setup work for the eat-types lists.
mtl_synthetic = typecacheof(mtl_synthetic) + list(
@@ -93,7 +88,7 @@
var/mob/M = thing
if (QDELETED(M))
LOG_DEBUG("SSmob: QDELETED mob [DEBUG_REF(M)] left in processing list!")
LOG_DEBUG("SSmobs: QDELETED mob [DEBUG_REF(M)] left in processing list!")
// We can just go ahead and remove them from all the mob lists.
mob_list -= M
dead_mob_list -= M
@@ -111,7 +106,7 @@
if (time != world.time && !slept[M.type])
slept[M.type] = TRUE
var/diff = world.time - time
LOG_DEBUG("SSmob: Type '[M.type]' slept for [diff] ds in Life()! Suppressing further warnings.")
LOG_DEBUG("SSmobs: Type '[M.type]' slept for [diff] ds in Life()! Suppressing further warnings.")
if (MC_TICK_CHECK)
return
+1 -6
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/mob_ai/SSmob_ai
/datum/controller/subsystem/mob_ai
SUBSYSTEM_DEF(mob_ai)
name = "Mobs - AI"
flags = SS_NO_INIT
priority = SS_PRIORITY_MOB
@@ -10,9 +8,6 @@
var/list/currentrun = list()
var/list/slept = list()
/datum/controller/subsystem/mob_ai/New()
NEW_SS_GLOBAL(SSmob_ai)
/datum/controller/subsystem/mob_ai/stat_entry(msg)
msg = "P:[processing.len]"
return ..()
+1 -6
View File
@@ -1,8 +1,3 @@
/var/datum/controller/subsystem/mob_ai/fast/SSmob_fast_ai
/datum/controller/subsystem/mob_ai/fast
MOB_AI_SUBSYSTEM_DEF(mob_fast_ai)
name = "Mobs - Fast AI"
wait = 5
/datum/controller/subsystem/mob_ai/fast/New()
NEW_SS_GLOBAL(SSmob_fast_ai)
+1 -6
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/news/SSnews
/datum/controller/subsystem/news
SUBSYSTEM_DEF(news)
name = "News"
flags = SS_NO_FIRE
var/list/datum/feed_channel/network_channels = list()
@@ -11,9 +9,6 @@
src.network_channels = SSnews.network_channels
src.wanted_issue = SSnews.wanted_issue
/datum/controller/subsystem/news/New()
NEW_SS_GLOBAL(SSnews)
/datum/controller/subsystem/news/Initialize(timeofday)
CreateFeedChannel("Station Announcements", "Automatic Announcement System", 1, 1, "New Station Announcement Available")
CreateFeedChannel("Tau Ceti Daily", "CentComm Minister of Information", 1, 1)
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/nightlight/SSnightlight
/datum/controller/subsystem/nightlight
SUBSYSTEM_DEF(nightlight)
name = "Night Lighting"
wait = 5 MINUTES
init_order = SS_INIT_NIGHT
@@ -10,9 +8,6 @@ var/datum/controller/subsystem/nightlight/SSnightlight
var/isactive = FALSE
var/disable_type = NL_NOT_DISABLED
/datum/controller/subsystem/nightlight/New()
NEW_SS_GLOBAL(SSnightlight)
/datum/controller/subsystem/nightlight/stat_entry(msg)
msg = "A:[isactive] T:[worldtime2hours()] D:[disable_type]"
return ..()
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/orbit/SSorbit
/datum/controller/subsystem/orbit
SUBSYSTEM_DEF(orbit)
name = "Orbits"
priority = SS_PRIORITY_ORBIT
wait = 2
@@ -10,9 +8,6 @@ var/datum/controller/subsystem/orbit/SSorbit
var/list/currentrun = list()
var/list/processing = list()
/datum/controller/subsystem/orbit/New()
NEW_SS_GLOBAL(SSorbit)
/datum/controller/subsystem/orbit/Recover()
src.processing = SSorbit.processing
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/overlays/SSoverlays
/datum/controller/subsystem/overlays
SUBSYSTEM_DEF(overlays)
name = "Overlay"
flags = SS_TICKER
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
@@ -19,9 +17,6 @@ var/datum/controller/subsystem/overlays/SSoverlays
msg = "Ov:[processing.len - (idex - 1)]"
return ..()
/datum/controller/subsystem/overlays/New()
NEW_SS_GLOBAL(SSoverlays)
/datum/controller/subsystem/overlays/Initialize()
initialized = TRUE
Flush()
+4 -7
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/pai/SSpai
/datum/controller/subsystem/pai
SUBSYSTEM_DEF(pai)
name = "pAI"
init_order = SS_INIT_MISC_FIRST
flags = SS_NO_FIRE
@@ -15,8 +13,7 @@
var/askDelay = 1 MINUTE
/datum/controller/subsystem/pai/New()
NEW_SS_GLOBAL(SSpai)
/datum/controller/subsystem/pai/PreInit()
LAZYINITLIST(pai_software_by_key)
LAZYINITLIST(default_pai_software)
@@ -25,10 +22,10 @@
default_pai_software = SSpai.default_pai_software
/datum/controller/subsystem/pai/ui_state(mob/user)
return always_state
return always_state
/datum/controller/subsystem/pai/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
return UI_INTERACTIVE
/datum/controller/subsystem/pai/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
+1 -1
View File
@@ -1,4 +1,4 @@
/datum/controller/subsystem/ping
SUBSYSTEM_DEF(ping)
name = "Ping"
priority = SS_PRIORITY_PING
init_order = SS_INIT_PING
+1 -6
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/plants/SSplants
/datum/controller/subsystem/plants
SUBSYSTEM_DEF(plants)
name = "Seeds & Plants"
flags = 0 // Override parent's flags.
wait = 75
@@ -21,9 +19,6 @@
var/list/processing = list()
var/list/current = list()
/datum/controller/subsystem/plants/New()
NEW_SS_GLOBAL(SSplants)
/datum/controller/subsystem/plants/stat_entry(msg)
msg = "P:[processing.len]"
return ..()
@@ -1,5 +1,3 @@
/var/datum/controller/subsystem/processing/airflow/SSairflow
#define CLEAR_OBJECT(TARGET) \
processing -= TARGET; \
TARGET.airflow_dest = null; \
@@ -10,15 +8,12 @@
TARGET.density = 0; \
}
/datum/controller/subsystem/processing/airflow
PROCESSING_SUBSYSTEM_DEF(airflow)
name = "Airflow"
wait = 1
flags = SS_NO_INIT
priority = SS_PRIORITY_AIRFLOW
/datum/controller/subsystem/processing/airflow/New()
NEW_SS_GLOBAL(SSairflow)
/datum/controller/subsystem/processing/airflow/fire(resumed = FALSE)
if (!resumed)
currentrun = processing.Copy() // Defined in parent.
@@ -1,13 +1,8 @@
// This is a separate processor so the MC can schedule singuloth/tesla/Nar-sie independent from other objects.
var/datum/controller/subsystem/processing/calamity/SScalamity
/datum/controller/subsystem/processing/calamity
PROCESSING_SUBSYSTEM_DEF(calamity)
name = "Calamity"
flags = SS_NO_INIT | SS_POST_FIRE_TIMING
priority = SS_PRIORITY_CALAMITY
var/list/singularities = list()
/datum/controller/subsystem/processing/calamity/New()
NEW_SS_GLOBAL(SScalamity)
@@ -1,14 +1,9 @@
/var/datum/controller/subsystem/processing/dcs/SSdcs
/datum/controller/subsystem/processing/dcs
PROCESSING_SUBSYSTEM_DEF(dcs)
name = "Datum Component System"
flags = SS_NO_INIT
var/list/elements_by_type = list()
/datum/controller/subsystem/processing/dcs/New()
NEW_SS_GLOBAL(SSdcs)
/datum/controller/subsystem/processing/dcs/Recover()
comp_lookup = SSdcs.comp_lookup
@@ -1,9 +1,4 @@
var/datum/controller/subsystem/processing/disease/SSdisease
/datum/controller/subsystem/processing/disease
PROCESSING_SUBSYSTEM_DEF(disease)
name = "Diseases"
flags = SS_KEEP_TIMING | SS_NO_INIT
priority = SS_PRIORITY_DISEASE
/datum/controller/subsystem/processing/disease/New()
NEW_SS_GLOBAL(SSdisease)
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/processing/disposals/SSdisposals
/datum/controller/subsystem/processing/disposals
PROCESSING_SUBSYSTEM_DEF(disposals)
name = "Disposals"
wait = 1 // deciseconds
flags = SS_NO_INIT | SS_BACKGROUND
@@ -9,6 +7,5 @@
// Reference list for disposal sort junctions. Filled by sorting junctions' initialize().
var/list/tagger_locations
/datum/controller/subsystem/processing/disposals/New()
NEW_SS_GLOBAL(SSdisposals)
/datum/controller/subsystem/processing/disposals/PreInit()
LAZYINITLIST(tagger_locations)
@@ -1,9 +1,7 @@
#define IC_SPAWN_DEFAULT 1 // If the circuit comes in the default circuit box and able to be printed in the IC printer.
#define IC_SPAWN_RESEARCH 2 // If the circuit design will be available in the IC printer after upgrading it.
/var/datum/controller/subsystem/processing/electronics/SSelectronics
/datum/controller/subsystem/processing/electronics
PROCESSING_SUBSYSTEM_DEF(electronics)
name = "Electronics"
wait = 2 SECONDS
priority = SS_PRIORITY_ELECTRONICS
@@ -16,9 +14,6 @@
var/list/printer_recipe_list_upgraded = list()
var/list/found_categories = list()
/datum/controller/subsystem/processing/electronics/New()
NEW_SS_GLOBAL(SSelectronics)
/datum/controller/subsystem/processing/electronics/Initialize(timeofday)
init_subtypes(/obj/item/integrated_circuit, all_integrated_circuits)
@@ -1,10 +1,4 @@
/var/datum/controller/subsystem/processing/fast/SSfast_process
// Not really much to it, literally just a faster-ticking SSprocessing.
/datum/controller/subsystem/processing/fast
/// Not really much to it, literally just a faster-ticking SSprocessing.
PROCESSING_SUBSYSTEM_DEF(fast_process)
name = "Processing (Fast)"
wait = 5
/datum/controller/subsystem/processing/fast/New()
NEW_SS_GLOBAL(SSfast_process)
@@ -1,9 +1,6 @@
var/datum/controller/subsystem/processing/modifiers/SSmodifiers
/datum/controller/subsystem/processing/modifiers
PROCESSING_SUBSYSTEM_DEF(modifiers)
name = "Modifiers"
wait = 1 SECOND
flags = SS_NO_INIT
priority = SS_PRIORITY_MODIFIER
/datum/controller/subsystem/processing/modifiers/New()
NEW_SS_GLOBAL(SSmodifiers)
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/processing/nanoui/SSnanoui
/datum/controller/subsystem/processing/nanoui
PROCESSING_SUBSYSTEM_DEF(nanoui)
// Subsystem stuff.
name = "NanoUI"
flags = SS_NO_INIT
@@ -10,9 +8,6 @@ var/datum/controller/subsystem/processing/nanoui/SSnanoui
// NanoUI stuff.
var/list/open_uis = list()
/datum/controller/subsystem/processing/nanoui/New()
NEW_SS_GLOBAL(SSnanoui)
/**
* Get an open /nanoui ui for the current user, src_object and ui_key and try to update it with data
*
@@ -1,9 +1,7 @@
var/datum/controller/subsystem/processing/ntsl2/SSntsl2
/*
NTSL2 deamon management subsystem, responsible for handling events from deamon and it's connection state.
*/
/datum/controller/subsystem/processing/ntsl2
PROCESSING_SUBSYSTEM_DEF(ntsl2)
name = "NTSL2"
flags = 0
init_order = SS_INIT_MISC
@@ -13,9 +11,6 @@ NTSL2 deamon management subsystem, responsible for handling events from deamon a
var/list/tasks = list()
var/current_task_id = 1
/datum/controller/subsystem/processing/ntsl2/New()
NEW_SS_GLOBAL(SSntsl2)
/datum/controller/subsystem/processing/ntsl2/Initialize(timeofday)
attempt_connect()
..()
@@ -1,14 +1,9 @@
var/datum/controller/subsystem/processing/obj_tab_items/SSobj_tab_items
/datum/controller/subsystem/processing/obj_tab_items
PROCESSING_SUBSYSTEM_DEF(obj_tab_items)
name = "Obj Tab Items"
flags = SS_NO_INIT
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
wait = 0.1 SECONDS
/datum/controller/subsystem/processing/obj_tab_items/New()
NEW_SS_GLOBAL(SSobj_tab_items)
// I know this is mostly copypasta, but I want to change the processing logic
// Sorry bestie :(
/datum/controller/subsystem/processing/obj_tab_items/fire(resumed = FALSE)
@@ -1,11 +1,6 @@
var/datum/controller/subsystem/processing/overmap/SSovermap
/datum/controller/subsystem/processing/overmap
PROCESSING_SUBSYSTEM_DEF(overmap)
name = "Overmap"
stat_tag = "OVRM"
priority = SS_PRIORITY_OVERMAP
flags = SS_TICKER|SS_NO_INIT
wait = 7
/datum/controller/subsystem/processing/overmap/New()
NEW_SS_GLOBAL(SSovermap)
@@ -1,7 +1,5 @@
//Used to process objects. Fires once every two seconds.
var/datum/controller/subsystem/processing/SSprocessing
/datum/controller/subsystem/processing
SUBSYSTEM_DEF(processing)
name = "Processing"
priority = SS_PRIORITY_PROCESSING
flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT
@@ -10,9 +8,6 @@ var/datum/controller/subsystem/processing/SSprocessing
var/list/processing = list()
var/list/currentrun = list()
/datum/controller/subsystem/processing/New()
NEW_SS_GLOBAL(SSprocessing)
/datum/controller/subsystem/processing/stat_entry(msg)
msg = "[stat_tag]:[processing.len]"
return ..()
@@ -1,12 +1,7 @@
var/datum/controller/subsystem/processing/projectiles/SSprojectiles
/datum/controller/subsystem/processing/projectiles
PROCESSING_SUBSYSTEM_DEF(projectiles)
name = "Projectiles"
stat_tag = "PROJ"
priority = SS_PRIORITY_PROJECTILES
flags = SS_TICKER|SS_NO_INIT
wait = 1
var/global_max_tick_moves = 10
/datum/controller/subsystem/processing/projectiles/New()
NEW_SS_GLOBAL(SSprojectiles)
@@ -1,8 +1,6 @@
var/global/list/psychic_ranks_to_strings = list("Psionically Sensitive", "Psionically Harmonious", "Psionic Apex", "Limitless")
/var/datum/controller/subsystem/processing/psi/SSpsi
/datum/controller/subsystem/processing/psi
PROCESSING_SUBSYSTEM_DEF(psi)
name = "Psionics"
priority = SS_PRIORITY_PSYCHICS
flags = SS_BACKGROUND
@@ -16,9 +14,6 @@ var/global/list/psychic_ranks_to_strings = list("Psionically Sensitive", "Psioni
var/list/all_aura_images = list()
var/list/all_psi_complexes = list()
/datum/controller/subsystem/processing/psi/New()
NEW_SS_GLOBAL(SSpsi)
/datum/controller/subsystem/processing/psi/fire(resumed)
..()
if((world.time >= (last_nlom_awareness_check + 30 MINUTES)) && !checking_nlom && !completing_nlom)
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/shuttle/SSshuttle
/datum/controller/subsystem/shuttle
SUBSYSTEM_DEF(shuttle)
name = "Shuttle"
wait = 2 SECONDS
priority = SS_PRIORITY_SHUTTLE
@@ -28,9 +26,6 @@ var/datum/controller/subsystem/shuttle/SSshuttle
var/tmp/list/working_shuttles
/datum/controller/subsystem/shuttle/New()
NEW_SS_GLOBAL(SSshuttle)
/datum/controller/subsystem/shuttle/Initialize()
last_landmark_registration_time = world.time
for(var/shuttle_type in subtypesof(/datum/shuttle)) // This accounts for most shuttles, though away maps can queue up more.
@@ -10,9 +10,7 @@
*
*/
var/datum/controller/subsystem/processing/tgui/SStgui
/datum/controller/subsystem/processing/tgui
PROCESSING_SUBSYSTEM_DEF(tgui)
name = "tgui"
wait = 9
flags = SS_NO_INIT
+1 -7
View File
@@ -1,7 +1,4 @@
var/datum/controller/subsystem/profiler/SSprofiler
/datum/controller/subsystem/profiler
SUBSYSTEM_DEF(profiler)
name = "Profiler"
wait = 1
priority = SS_PRIORITY_PROFILE
@@ -15,9 +12,6 @@ var/datum/controller/subsystem/profiler/SSprofiler
var/next_restart = 0
var/restart_period = 0
/datum/controller/subsystem/profiler/New()
NEW_SS_GLOBAL(SSprofiler)
/datum/controller/subsystem/profiler/Initialize()
if (!config.profiler_is_enabled)
..()
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/radiation/SSradiation
/datum/controller/subsystem/radiation
SUBSYSTEM_DEF(radiation)
name = "Radiation"
wait = 2 SECONDS
priority = SS_PRIORITY_RADIATION
@@ -14,9 +12,6 @@ var/datum/controller/subsystem/radiation/SSradiation
var/list/current_res_cache = list()
var/list/listeners = list()
/datum/controller/subsystem/radiation/New()
NEW_SS_GLOBAL(SSradiation)
/datum/controller/subsystem/radiation/fire(resumed = FALSE)
if (!resumed)
current_sources = sources.Copy()
+43 -48
View File
@@ -5,59 +5,59 @@
Note that walkie-talkie, intercoms and headsets handle transmission using nonstandard way.
procs:
add_object(obj/device as obj, var/new_frequency as num, var/filter as text|null = null)
Adds listening object.
parameters:
device - device receiving signals, must have proc receive_signal (see description below).
one device may listen several frequencies, but not same frequency twice.
new_frequency - see possibly frequencies below;
filter - thing for optimization. Optional, but recommended.
All filters should be consolidated in this file, see defines later.
Device without listening filter will receive all signals (on specified frequency).
Device with filter will receive any signals sent without filter.
Device with filter will not receive any signals sent with different filter.
returns:
Reference to frequency object.
add_object(obj/device as obj, var/new_frequency as num, var/filter as text|null = null)
Adds listening object.
parameters:
device - device receiving signals, must have proc receive_signal (see description below).
one device may listen several frequencies, but not same frequency twice.
new_frequency - see possibly frequencies below;
filter - thing for optimization. Optional, but recommended.
All filters should be consolidated in this file, see defines later.
Device without listening filter will receive all signals (on specified frequency).
Device with filter will receive any signals sent without filter.
Device with filter will not receive any signals sent with different filter.
returns:
Reference to frequency object.
remove_object (obj/device, old_frequency)
Obliviously, after calling this proc, device will not receive any signals on old_frequency.
Other frequencies will left unaffected.
remove_object (obj/device, old_frequency)
Obliviously, after calling this proc, device will not receive any signals on old_frequency.
Other frequencies will left unaffected.
return_frequency(var/frequency as num)
returns:
Reference to frequency object. Use it if you need to send and do not need to listen.
returns:
Reference to frequency object. Use it if you need to send and do not need to listen.
radio_frequency is a global object maintaining list of devices that listening specific frequency.
procs:
post_signal(obj/source as obj|null, datum/signal/signal, var/filter as text|null = null, var/range as num|null = null)
Sends signal to all devices that wants such signal.
parameters:
source - object, emitted signal. Usually, devices will not receive their own signals.
signal - see description below.
filter - described above.
range - radius of regular byond's square circle on that z-level. null means everywhere, on all z-levels.
post_signal(obj/source as obj|null, datum/signal/signal, var/filter as text|null = null, var/range as num|null = null)
Sends signal to all devices that wants such signal.
parameters:
source - object, emitted signal. Usually, devices will not receive their own signals.
signal - see description below.
filter - described above.
range - radius of regular byond's square circle on that z-level. null means everywhere, on all z-levels.
obj/proc/receive_signal(datum/signal/signal, var/receive_method as num, var/receive_param)
Handler from received signals. By default does nothing. Define your own for your object.
Avoid of sending signals directly from this proc, use spawn(-1). DO NOT use sleep() here or call procs that sleep please. If you must, use spawn()
parameters:
signal - see description below. Extract all needed data from the signal before doing sleep(), spawn() or return!
receive_method - may be TRANSMISSION_WIRE or TRANSMISSION_RADIO.
TRANSMISSION_WIRE is currently unused.
receive_param - for TRANSMISSION_RADIO here comes frequency.
Handler from received signals. By default does nothing. Define your own for your object.
Avoid of sending signals directly from this proc, use spawn(-1). DO NOT use sleep() here or call procs that sleep please. If you must, use spawn()
parameters:
signal - see description below. Extract all needed data from the signal before doing sleep(), spawn() or return!
receive_method - may be TRANSMISSION_WIRE or TRANSMISSION_RADIO.
TRANSMISSION_WIRE is currently unused.
receive_param - for TRANSMISSION_RADIO here comes frequency.
datum/signal
vars:
source
an object that emitted signal. Used for debug and bearing.
data
list with transmitting data. Usual use pattern:
data["msg"] = "hello world"
encryption
Some number symbolizing "encryption key".
Note that game actually do not use any cryptography here.
If receiving object don't know right key, it must ignore encrypted signal in its receive_signal.
vars:
source
an object that emitted signal. Used for debug and bearing.
data
list with transmitting data. Usual use pattern:
data["msg"] = "hello world"
encryption
Some number symbolizing "encryption key".
Note that game actually do not use any cryptography here.
If receiving object don't know right key, it must ignore encrypted signal in its receive_signal.
*/
@@ -96,17 +96,12 @@ On the map:
1455 for AI access
*/
var/datum/controller/subsystem/radio/SSradio
/datum/controller/subsystem/radio
SUBSYSTEM_DEF(radio)
name = "Radio"
flags = SS_NO_FIRE | SS_NO_INIT
var/list/datum/radio_frequency/frequencies = list()
/datum/controller/subsystem/radio/New()
NEW_SS_GLOBAL(SSradio)
/datum/controller/subsystem/radio/stat_entry(msg)
msg = "F:[frequencies.len]"
return ..()
+2 -5
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/records/SSrecords
/datum/controller/subsystem/records
SUBSYSTEM_DEF(records)
name = "Records"
flags = SS_NO_FIRE
@@ -30,7 +28,7 @@
InitializeReligions()
InitializeAccents()
/datum/controller/subsystem/records/New()
/datum/controller/subsystem/records/PreInit()
records = list()
records_locked = list()
warrants = list()
@@ -39,7 +37,6 @@
excluded_fields = list()
localized_fields = list()
manifest = list()
NEW_SS_GLOBAL(SSrecords)
var/datum/D = new()
for(var/v in D.vars)
excluded_fields[v] = v
+3 -6
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/distress/SSdistress
/datum/controller/subsystem/distress
SUBSYSTEM_DEF(distress)
name = "Distress"
flags = SS_NO_FIRE
@@ -18,9 +16,8 @@
/datum/controller/subsystem/distress/Recover()
send_emergency_team = SSdistress.send_emergency_team
/datum/controller/subsystem/distress/New()
NEW_SS_GLOBAL(SSdistress)
feedback_set("responseteam_count",0)
/datum/controller/subsystem/distress/PreInit()
feedback_set("responseteam_count", 0)
/datum/controller/subsystem/distress/Initialize(start_timeofday)
. = ..()
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/skybox/SSskybox
/datum/controller/subsystem/skybox
SUBSYSTEM_DEF(skybox)
name = "Space skybox"
init_order = SS_INIT_PARALLAX
flags = SS_NO_FIRE
@@ -31,9 +29,6 @@ var/datum/controller/subsystem/skybox/SSskybox
space_appearance_cache[i + 1] = space.appearance
background_color = SSatlas.current_sector.starlight_color
/datum/controller/subsystem/skybox/New()
NEW_SS_GLOBAL(SSskybox)
/datum/controller/subsystem/skybox/Initialize()
. = ..()
build_space_appearances()
@@ -96,9 +96,7 @@
* as of right now this system operates on a subset of the important_recursive_contents list for atom/movable, specifically
* [RECURSIVE_CONTENTS_HEARING_SENSITIVE] and [RECURSIVE_CONTENTS_CLIENT_MOBS] because both are those are both 1. important and 2. commonly searched for
*/
/var/datum/controller/subsystem/spatial_grid/SSspatial_grid
/datum/controller/subsystem/spatial_grid
SUBSYSTEM_DEF(spatial_grid)
name = "Spatial Grid"
flags = SS_NO_FIRE
@@ -118,9 +116,6 @@
///how many pregenerated /mob/abstract/oranges_ear instances currently exist. this should hopefully never exceed its starting value
var/number_of_oranges_ears = NUMBER_OF_PREGENERATED_ORANGES_EARS
/datum/controller/subsystem/spatial_grid/New()
NEW_SS_GLOBAL(SSspatial_grid)
/datum/controller/subsystem/spatial_grid/Initialize(start_timeofday)
. = ..()
+24 -29
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/statistics/SSfeedback
/datum/controller/subsystem/statistics
SUBSYSTEM_DEF(statistics)
name = "Statistics & Inactivity"
wait = 1 MINUTE
flags = SS_NO_TICK_CHECK | SS_BACKGROUND
@@ -33,9 +31,6 @@
var/status_needs_update = FALSE
/datum/controller/subsystem/statistics/New()
NEW_SS_GLOBAL(SSfeedback)
/datum/controller/subsystem/statistics/Initialize(timeofday)
for (var/type in subtypesof(/datum/statistic) - list(/datum/statistic/numeric, /datum/statistic/grouped))
var/datum/statistic/S = new type
@@ -84,21 +79,21 @@
status_needs_update = TRUE
/datum/controller/subsystem/statistics/Recover()
src.messages = SSfeedback.messages
src.messages_admin = SSfeedback.messages_admin
src.messages = SSstatistics.messages
src.messages_admin = SSstatistics.messages_admin
src.msg_common = SSfeedback.msg_common
src.msg_science = SSfeedback.msg_science
src.msg_command = SSfeedback.msg_command
src.msg_medical = SSfeedback.msg_medical
src.msg_engineering = SSfeedback.msg_engineering
src.msg_security = SSfeedback.msg_security
src.msg_deathsquad = SSfeedback.msg_deathsquad
src.msg_syndicate = SSfeedback.msg_syndicate
src.msg_cargo = SSfeedback.msg_cargo
src.msg_service = SSfeedback.msg_service
src.msg_common = SSstatistics.msg_common
src.msg_science = SSstatistics.msg_science
src.msg_command = SSstatistics.msg_command
src.msg_medical = SSstatistics.msg_medical
src.msg_engineering = SSstatistics.msg_engineering
src.msg_security = SSstatistics.msg_security
src.msg_deathsquad = SSstatistics.msg_deathsquad
src.msg_syndicate = SSstatistics.msg_syndicate
src.msg_cargo = SSstatistics.msg_cargo
src.msg_service = SSstatistics.msg_service
src.feedback = SSfeedback.feedback
src.feedback = SSstatistics.feedback
/datum/controller/subsystem/statistics/proc/find_feedback_datum(variable)
for (var/datum/feedback_variable/FV in feedback)
@@ -179,58 +174,58 @@
return text
/proc/feedback_set(var/variable,var/value)
if(!SSfeedback)
if(!SSstatistics)
return
variable = sql_sanitize_text(variable)
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
if(!FV) return
FV.set_value(value)
/proc/feedback_inc(var/variable,var/value)
if(!SSfeedback) return
if(!SSstatistics) return
variable = sql_sanitize_text(variable)
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
if(!FV) return
FV.inc(value)
/proc/feedback_dec(var/variable,var/value)
if(!SSfeedback) return
if(!SSstatistics) return
variable = sql_sanitize_text(variable)
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
if(!FV) return
FV.dec(value)
/proc/feedback_set_details(var/variable,var/details)
if(!SSfeedback) return
if(!SSstatistics) return
variable = sql_sanitize_text(variable)
details = sql_sanitize_text(details)
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
if(!FV) return
FV.set_details(details)
/proc/feedback_add_details(var/variable,var/details)
if(!SSfeedback) return
if(!SSstatistics) return
variable = sql_sanitize_text(variable)
details = sql_sanitize_text(details)
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
if(!FV) return
+1 -6
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/statpanels/SSstatpanels
/datum/controller/subsystem/statpanels
SUBSYSTEM_DEF(statpanels)
name = "Stat Panels"
wait = 4
init_order = SS_INIT_MISC_FIRST
@@ -21,9 +19,6 @@ var/datum/controller/subsystem/statpanels/SSstatpanels
///how many full runs this subsystem has completed. used for variable rate refreshes.
var/num_fires = 0
/datum/controller/subsystem/statpanels/New()
NEW_SS_GLOBAL(SSstatpanels)
/datum/controller/subsystem/statpanels/fire(resumed = FALSE)
if (!resumed)
num_fires++
+1 -6
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/stickyban/SSstickyban
/datum/controller/subsystem/stickyban
SUBSYSTEM_DEF(stickyban)
name = "PRISM"
init_order = SS_INIT_MISC_FIRST
flags = SS_NO_FIRE
@@ -10,9 +8,6 @@
var/list/confirmed_exempt = list()
var/dbcacheexpire = 0
/datum/controller/subsystem/stickyban/New()
NEW_SS_GLOBAL(SSstickyban)
/datum/controller/subsystem/stickyban/Initialize(timeofday)
var/list/bannedkeys = sticky_banned_ckeys()
//sanitize the sticky ban list
+2 -5
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/sun/sun
/datum/controller/subsystem/sun
SUBSYSTEM_DEF(sun)
name = "Sun"
flags = SS_NO_INIT | SS_POST_FIRE_TIMING | SS_BACKGROUND
wait = 1 MINUTE
@@ -15,8 +13,7 @@ var/datum/controller/subsystem/sun/sun
var/tmp/list/updating_solars
var/solar_next_update // last time the sun position was checked and adjusted
/datum/controller/subsystem/sun/New()
NEW_SS_GLOBAL(sun)
/datum/controller/subsystem/sun/PreInit()
LAZYINITLIST(solars)
rate = rand(50,200)/100 // 50% - 200% of standard rotation
+1 -6
View File
@@ -1,8 +1,6 @@
#ifdef ENABLE_SUNLIGHT
/var/datum/controller/subsystem/sunlight/SSsunlight
/datum/controller/subsystem/sunlight
SUBSYSTEM_DEF(sunlight)
name = "Sunlight"
flags = SS_NO_FIRE
init_order = SS_INIT_SUNLIGHT
@@ -12,9 +10,6 @@
var/list/presets
/datum/controller/subsystem/sunlight/New()
NEW_SS_GLOBAL(SSsunlight)
/datum/controller/subsystem/sunlight/stat_entry(msg)
msg = "A:[config.sun_accuracy] LP:[light_points.len] Z:[config.sun_target_z]"
return ..()
+1 -1
View File
@@ -311,7 +311,7 @@ var/datum/controller/subsystem/ticker/SSticker
for(var/i in total_antagonists)
log_game("[i]s[total_antagonists[i]].")
SSfeedback.print_round_end_message()
SSstatistics.print_round_end_message()
return 1
+2 -5
View File
@@ -16,9 +16,7 @@
* lists. The object at a given index in bucket_list is a /datum/timedevent, the head of a circular list, which has prev
* and next references for the respective elements in that bucket's circular list.
*/
var/datum/controller/subsystem/timer/SStimer
/datum/controller/subsystem/timer
SUBSYSTEM_DEF(timer)
name = "Timer"
wait = 1 //SS_TICKER subsystem, so wait is in ticks
priority = SS_PRIORITY_TIMER
@@ -55,8 +53,7 @@ var/datum/controller/subsystem/timer/SStimer
/// How many times bucket was reset
var/bucket_reset_count = 0
/datum/controller/subsystem/timer/New()
NEW_SS_GLOBAL(SStimer)
/datum/controller/subsystem/timer/PreInit()
bucket_list.len = BUCKET_LEN
head_offset = world.time
bucket_resolution = world.tick_lag
+1 -6
View File
@@ -1,15 +1,10 @@
/var/global/datum/controller/subsystem/trade/SStrade
/datum/controller/subsystem/trade
SUBSYSTEM_DEF(trade)
name = "Trade"
wait = 1 MINUTE
flags = SS_NO_TICK_CHECK
runlevels = RUNLEVELS_PLAYING
var/list/traders = list() //List of all nearby traders
/datum/controller/subsystem/trade/New()
NEW_SS_GLOBAL(SStrade)
/datum/controller/subsystem/trade/Initialize()
for(var/i in 1 to rand(1,3))
generateTrader(1)
+1 -4
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/typing/SStyping
/datum/controller/subsystem/typing
SUBSYSTEM_DEF(typing)
name = "Typing"
flags = SS_BACKGROUND
wait = 0.5 SECONDS
@@ -37,7 +35,6 @@ var/datum/controller/subsystem/typing/SStyping
*/
/datum/controller/subsystem/typing/Initialize(start_timeofday)
NEW_SS_GLOBAL(SStyping)
match_verbs = regex("^(Me|Say|Whisper) +\"?\\w+")
. = ..()
@@ -1,6 +1,4 @@
/var/global/datum/controller/subsystem/virtualreality/SSvirtualreality
/datum/controller/subsystem/virtualreality
SUBSYSTEM_DEF(virtualreality)
name = "Virtual Reality"
init_order = SS_INIT_MISC_FIRST
flags = SS_NO_FIRE
@@ -17,9 +15,6 @@
var/list/boundnetworks = list(REMOTE_AI_ROBOT)
var/list/list/bounded = list()
/datum/controller/subsystem/virtualreality/New()
NEW_SS_GLOBAL(SSvirtualreality)
/datum/controller/subsystem/virtualreality/Initialize()
for(var/network in mechnetworks)
mechs[network] = list()
+4 -9
View File
@@ -1,6 +1,4 @@
var/datum/controller/subsystem/vote/SSvote
/datum/controller/subsystem/vote
SUBSYSTEM_DEF(vote)
name = "Voting"
wait = 1 SECOND
flags = SS_KEEP_TIMING | SS_NO_TICK_CHECK
@@ -22,9 +20,6 @@ var/datum/controller/subsystem/vote/SSvote
var/list/round_voters = list()
/datum/controller/subsystem/vote/New()
NEW_SS_GLOBAL(SSvote)
/datum/controller/subsystem/vote/Initialize(timeofday)
next_transfer_time = config.vote_autotransfer_initial
@@ -159,7 +154,7 @@ var/datum/controller/subsystem/vote/SSvote
restart = 1
if("gamemode")
if(master_mode != .)
SSpersist_config.last_gamemode = .
SSpersistent_configuration.last_gamemode = .
if(SSticker.mode)
restart = 1
else
@@ -326,10 +321,10 @@ var/datum/controller/subsystem/vote/SSvote
)
/datum/controller/subsystem/vote/ui_state(mob/user)
return always_state
return always_state
/datum/controller/subsystem/vote/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
return UI_INTERACTIVE
/datum/controller/subsystem/vote/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
+1 -3
View File
@@ -1,6 +1,4 @@
/var/datum/controller/subsystem/zcopy/SSzcopy
/datum/controller/subsystem/zcopy
SUBSYSTEM_DEF(zcopy)
name = "Z-Copy"
wait = 1
init_order = SS_INIT_ZCOPY